Sự khác nhau giữa ngôn ngữ lập trình tĩnh và động là gì? Tôi biết rằng đó là tất cả về hệ thống kiểu nhưng tôi đang tìm kiếm các giải thích rõ ràng hơn.Khác nhau giữa ngôn ngữ lập trình tĩnh và động
13
A
Trả lời
16
tĩnh Typing
gõ tĩnh có nghĩa là loại được biết đến và kiểm tra tính đúng đắn trước khi chạy chương trình của bạn. Điều này thường được thực hiện bởi trình biên dịch của ngôn ngữ. Ví dụ, phương pháp Java sau sẽ gây ra một biên dịch lỗi, trước khi bạn chạy chương trình của bạn:
public void foo() {
int x = 5;
boolean b = x;
}
động Typing
động gõ có nghĩa là loại chỉ được gọi là chương trình bạn đang chạy. Ví dụ: tập lệnh Python sau (3, nếu có vấn đề) có thể chạy mà không có sự cố:
def erroneous():
s = 'cat' - 1
print('hi!')
Nó thực sự sẽ xuất ra hi!
.Nhưng nếu chúng ta gọi là erroneous
:
def erroneous():
s = 'cat' - 1
erroneous()
print('hi!')
Một TypeError
sẽ được nâng lên tại thời gian chạy khierroneous
được gọi.
-1
tĩnh đánh máy ngôn ngữ:
- Bạn cần phải tuyên bố 'loại' của biến trước đó.
NSString *string = @"Hello";
- Bạn không thể lưu đối tượng (hoặc bê tông hoặc nguyên thủy) của loại hình khác trong biến của cùng một tên
NSString *string = @"Hello"; int string = 9; // Not legal, compile type warning
ví dụ của tĩnh ngôn ngữ đã nhập: Ja va, Objective-C, vv
tạo kiểu động Ngôn Ngữ:
- Không cần phải khai báo các loại đối tượng. nó sẽ được tìm ra trong thời gian chạy.
string = 'Hello'
- Chúng tôi được phép thay đổi loại đối tượng cho cùng một biến, như tên đang bị ràng buộc để một đối tượng với toán tử gán.
string = 'Hello' string = 9 // Allowed
ví dụ của ngôn ngữ kiểu động: Python, vv
Các vấn đề liên quan
- 1. Sự khác nhau giữa cú pháp và ngữ nghĩa của ngôn ngữ lập trình là gì?
- 2. Sự khác nhau giữa Java (ngôn ngữ lập trình) và Java (Bảng điều khiển) là gì?
- 3. Dịch mã byte Java sang các ngôn ngữ lập trình và ngôn ngữ lập trình khác
- 4. Cách kết hợp các ngôn ngữ lập trình khác nhau
- 5. Ngôn ngữ lập trình PHP hoặc ngôn ngữ lập trình?
- 6. Sự khác biệt giữa lập trình đa lõi trong Erlang và ngôn ngữ khác là gì?
- 7. Ngôn ngữ lập trình khác nhau như thế nào giữa các phần khác nhau của thế giới?
- 8. Các khái niệm ngôn ngữ lập trình khác nhau và ngôn ngữ nào hiển thị chúng theo cách thuần túy
- 9. động Hầu hết các ngôn ngữ lập trình năng động
- 10. ngôn ngữ tĩnh và Reflection
- 11. gVim và nhiều ngôn ngữ lập trình
- 12. Sự khác biệt giữa ngôn ngữ lập trình hàm và mệnh lệnh là gì?
- 13. Học cách ngôn ngữ lập trình hoạt động
- 14. Ngôn ngữ lập trình Siri
- 15. Cách tạo ngôn ngữ lập trình .Net?
- 16. C# Ngôn ngữ lập trình
- 17. Ngôn ngữ lập trình đã nhập
- 18. Tại sao một số ngôn ngữ lập trình nhanh hơn các ngôn ngữ khác?
- 19. UML cho ngôn ngữ lập trình C
- 20. Tạo ngôn ngữ lập trình với C#
- 21. ngôn ngữ lập trình không xác định
- 22. strtotime Với các ngôn ngữ khác nhau?
- 23. Tài liệu ngoại tuyến cho nhiều ngôn ngữ lập trình khác nhau?
- 24. Ngôn ngữ lập trình nền tảng
- 25. Đặt ngôn ngữ Wordpress theo lập trình?
- 26. Sự khác nhau giữa việc tạo ngôn ngữ cho en-US và en_ là gì?
- 27. Stack và đống trong ngôn ngữ lập trình
- 28. Ngôn ngữ lập trình ô tô
- 29. Hiệp phương sai và contravariance trong ngôn ngữ lập trình
- 30. Windows: Ngôn ngữ lập trình nào?
-1 Nhập tĩnh và động không có liên quan gì đến chú thích/suy luận loại. Nó như vậy xảy ra rằng nhiều ngôn ngữ gõ tĩnh cũ nhấn mạnh vào chú thích kiểu, nhưng đó là không thích hợp. Có các ngôn ngữ đánh máy tĩnh mà không có chú thích kiểu. (Haskell, ví dụ.) – sleeparrow