Có một cuộc khảo sát về ngữ nghĩa của các tính năng ngôn ngữ lập trình khác nhau?


12

Có một cuộc khảo sát (từ giấy, chương sách, hướng dẫn, liên kết, ...) về ngữ nghĩa của các tính năng ngôn ngữ lập trình khác nhau? Ban đầu tôi bị choáng ngợp bởi các tính năng của D ở đây http://www.digitalmars.com/d/2.0/comparison.html

Tôi muốn xem những gì tôi có thể nhận được từ đây, mặc dù tôi đã hỏi một câu hỏi tương tự trên stackoverflow và hiểu hai trang web này có quan điểm khác nhau.

Thực sự đánh giá cao trả lời của bạn! Nhờ Dave Clarke cho đề nghị của ông về meta !


Tôi nghĩ rằng câu hỏi này đặt ra một vấn đề thú vị: ngữ nghĩa của ngôn ngữ lập trình vẫn là một lĩnh vực nghiên cứu trong phòng thí nghiệm, hay nó đã sẵn sàng cho ánh sáng ban ngày chưa? Nếu nó đã sẵn sàng cho ánh sáng ban ngày, thì cần có phần tóm tắt nêu cách mô tả ngữ nghĩa của từng tính năng ngôn ngữ lập trình, để các nhà thiết kế ngôn ngữ trong tương lai có thể đi và tìm kiếm chúng trong khi thiết kế ngôn ngữ của họ. Tôi nghĩ rằng đáng để suy nghĩ về nơi chúng ta muốn đi từ đây.
Uday Reddy

Câu trả lời:


17

Tôi không biết về bất kỳ khảo sát nào về ngữ nghĩa của các tính năng ngôn ngữ khác nhau, mặc dù có nhiều cuốn sách liên quan đến ngữ nghĩa của ngôn ngữ lập trình. Dưới đây là một vài trong số những cái toàn diện hơn, cũng xử lý các cấu trúc ít tiêu chuẩn hơn:

  • Khái niệm thiết kế trong ngôn ngữ lập trình của Franklyn Turbak, David Gifford và Mark Sheldon. Một cuốn sách ma mút đầy đủ ngữ nghĩa của nhiều cấu trúc ngôn ngữ khác nhau.

  • Khái niệm, kỹ thuật và mô hình lập trình máy tính của Peter Van Roy và Seif Haridi. Cuốn sách này tập trung chủ yếu vào các khái niệm về ngôn ngữ Oz. Mỗi ví dụ trong cuốn sách chạy. Ở cuối cuốn sách có một hoặc hai chương thảo luận về ngữ nghĩa chính thức của các cấu trúc ngôn ngữ.

Nhiều văn bản cổ điển tập trung nhiều hơn vào các kỹ thuật ngữ nghĩa, thay vì các cấu trúc ngôn ngữ lập trình đa dạng, bao gồm:

  • Các loại và ngôn ngữ lập trình của Benjamin Pierce. Cuốn sách về các hệ thống loại. Chủ yếu tập trung vào các cấu trúc ngôn ngữ chức năng, đồng thời tăng độ tinh vi của hệ thống loại. Nó cũng bao gồm Feather weight Java, một tính toán cốt lõi của Java.

  • Chuyển tiếp và cây của Hans Huttel. Một giới thiệu tốt đẹp về ngữ nghĩa hoạt động, bao gồm nhiều cấu trúc ngôn ngữ khác nhau ngày càng phức tạp.

  • Ngữ nghĩa với các ứng dụng của Hanne Riis Nielson và Flemming Nielson. Giới thiệu về các phong cách ngữ nghĩa khác nhau, bao gồm một số ứng dụng không rõ ràng của chúng. Một đọc tuyệt vời!

  • Cấu trúc của ngôn ngữ lập trình đánh máy của David A Schmidt. Một cuốn sách nền tảng vững chắc.

  • Ngữ nghĩa của ngôn ngữ lập trình: Cấu trúc và kỹ thuật của Carl A Gunter. Một cuốn sách nền tảng vững chắc khác.

Cuối cùng, một công việc đang tiến hành, có sẵn để tải xuống, Cơ sở thực hành cho ngôn ngữ lập trình của Bob Harper bao gồm rất nhiều tính năng ngôn ngữ lập trình khác nhau, đảm bảo rằng mọi thứ đều được chính thức hóa trên đường đi.

Tôi nên nói thêm rằng nếu bạn hỏi một câu hỏi cụ thể hơn, bạn sẽ nhận được câu trả lời cụ thể hơn. Nhiều bài báo khoa học hiện đang đưa ra ngữ nghĩa cho các tính năng ngôn ngữ lập trình khác nhau. Nếu bạn quan tâm đến một tính năng cụ thể, thì tôi có thể đào một hoặc hai bài viết về tính năng đó.


11

Một cuốn sách hay khác về ngữ nghĩa hoạt động là Semantics Engineering với PLT Redex của Matthias Felleisen, Robby Findler và Matthew Flatt. Nó bắt đầu với một cuốn sách giáo khoa về ngữ nghĩa rút gọn và các máy trừu tượng, và cũng bao gồm sử dụng công cụ Redex để mô hình hóa ngữ nghĩa của các ngôn ngữ lập trình.


5
Rất vui khi thấy một người PL khác trên tàu.
Dave Clarke
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.