Tôi không có chuyên gia về ngôn ngữ nhưng gần đây tôi đã sử dụng ngôn ngữ và cố gắng tìm hiểu tổng quan về các khái niệm chính và ngôn ngữ "của chúng". Điều này tương tự như another question about books. Trước tiên, khái niệm ngôn ngữ lập trình chính là gì, ví dụ: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
- cấu trúc
- thủ tục đối tượng
- định hướng
- đối tượng định hướng - nguyên mẫu dựa (ví dụ như Java Script)
- chức năng (ví dụ như Haskell)
- luận định hướng (ví dụ như Prolog)
- meta (nếu một khái niệm thuần túy của riêng nó?)
- ngăn xếp dựa trên (ví dụ: Forth)
- dựa trên toán học/mảng được định hướng (ví dụ: APL)
- declarative
- concatenative (ví dụ như PostScript)
- (chắc chắn danh sách không đầy đủ ...)
và thứ hai để có được một crasp tốt về những khái niệm, những gì sẽ là ngôn ngữ lập trình dựa trên/triển khai khái niệm cốt lõi của nó một cách tự nhiên và tinh khiết nhất?
- Ví dụ Java là OO, nhưng đây không phải là ví dụ tốt bởi vì nó không phải là OO thuần túy do nguyên tử.
- Lisp được biết đến là một ngôn ngữ chức năng, nhưng nó đa mô hình, do đó, nó không phải là tinh khiết. Nhưng Lisp có thể là một sự thực thi thuần túy "dựa trên danh sách" (nếu nó được tính là khái niệm).
- Có ngôn ngữ được cấu trúc (không có GOTO) nhưng không phải là thủ tục không? (Có thể XSLT v1.x)
Smalltalk không phải là nguyên mẫu. SELF là. Ngoài ra, một số "khái niệm" ở trên không trực giao. Người ta sẽ phải nói về * các khía cạnh cụ thể * của mỗi ngôn ngữ so với nhau (ngay cả các điều khoản trên có thể thay đổi ý nghĩa dựa trên ngữ cảnh/ngôn ngữ). SQL cũng được "đặt theo định hướng" (nhưng một "ngôn ngữ truy vấn khai báo"), không theo định hướng bảng :-) –
@pst cảm ơn, tôi đã xóa các ví dụ sai. –
Nhân tiện, cảm ơn vì đã không chọn Java làm ví dụ chính OO. – delnan