Áp dụng ngữ nghĩa học thuật để thiết kế chương trình


30

Tôi đã đọc một chút về ngữ nghĩa học (DS) và tôi rất tò mò về quá trình thiết kế các chương trình máy tính nơi các loại và chức năng có ánh xạ mạnh mẽ và rõ ràng đến toán học.

Có tài nguyên nào thảo luận về thiết kế chương trình dựa trên DS một cách chi tiết không? Tôi đã thấy một vài phương pháp điều trị hời hợt của chủ đề này.

Tôi đang nói chuyện trong Haskell, Scala, Common Lisp và một chút về Đề án nên mọi tài nguyên sử dụng các ngôn ngữ đó sẽ được đánh giá cao.


7
Bạn nên xem tác phẩm của Conal Elliott: conal.net

2
Curry-Howard isomorphism là từ khóa, nếu bạn chưa biết.
pedrofurla

2
Tôi nghĩ một điều tương tự. Tôi đã cố gắng thiết kế mô phỏng số điểm, cơ thể cứng nhắc và chất lỏng. Điều này ( github.com/takagi/SimulationDSL ) là một trong những thử nghiệm của tôi trong đó tôi biểu thị đại số vectơ và phương trình từng phần trong DSL Haskell. Tôi cũng đã kiểm tra công việc của Conal Elliott.

3
Bạn nên kiểm tra LtU . Có lẽ có một số cuộc thảo luận cũ tốt ở đó, hoặc ít nhất câu hỏi của bạn sẽ phù hợp hơn ở đó so với trên SO

3
Bạn có thể muốn đọc "Một ngữ nghĩa theo định hướng thực hiện của các tổ hợp in ấn đẹp của Wadler". Nó so sánh các cách tiếp cận hoạt động và biểu thị để thực hiện một ví dụ nổi tiếng trong thế giới thực và bao gồm vận động cho một cách tiếp cận biểu thị.
tethen tetley

Câu trả lời:


13

Thiết kế biểu thị ( thiết kế chương trình bắt nguồn và chảy từ ngữ nghĩa học biểu thị) là phương pháp chính của tôi. Vài năm trước khi viết về FRP, tôi đã hiểu rõ hơn về những gì tôi đã làm. Xem lập trình phản ứng chức năng Push-pull . Để biết mô tả rõ ràng hơn về mô hình và một loạt các ví dụ, hãy xem Thiết kế biểu thị với các hình thái lớp loại . Khi tôi nhận thức được mô hình, tôi bắt đầu tìm kiếm nó ở khắp mọi nơi. Trường hợp thất bại, tôi biết tôi có một rò rỉ trừu tượng. Đối với một đầu, mô tả không chính thức, xem bài đăng blog Luke Palmer của Semantic Thiết kế .

Tôi luôn quan tâm đến các ứng dụng của thiết kế biểu thị, vì vậy tôi rất muốn nghe về những khám phá của bạn.


Cảm ơn các nguồn lực lớn. Tôi sẽ kiểm tra chúng trước khi tôi đánh dấu câu hỏi như đã trả lời.
Tim Stewart

Cảm ơn đã cho các liên kết đến công việc của bạn! Đây là lần thứ 2 tôi chuyển sang nghiên cứu nó. Thật không may, conal.net không trả lời. Có những nơi khác mà người ta có thể có được nó?
imz - Ivan Zakharyaschev


1
@ imz - IvanZakharyaschev Xin lỗi. Máy chủ web của tôi bị sập. Sao lưu ngay bây giờ. Hy vọng rằng tôi sẽ sớm di chuyển nó và nó sẽ ổn định hơn.
Conal

7

Chúng tôi đã áp dụng ngữ nghĩa học biểu thị cho chính thiết kế ngôn ngữ, lập luận rằng việc thiết kế các ngôn ngữ, đặc biệt là các ngôn ngữ dành riêng cho miền, nên bắt đầu bằng định nghĩa ngữ nghĩa. Nếu bạn quan tâm đến các chi tiết, bạn có thể muốn xem qua Semantics-Driven Design Design and Semantics First! Xem xét lại quá trình thiết kế ngôn ngữ .


Cảm ơn các nguồn lực lớn. Tôi sẽ kiểm tra chúng trước khi tôi đánh dấu câu hỏi như đã trả lời.
Tim Stewart
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.