Lý thuyết ngôn ngữ lập trình và đại số trừu tượng


11

Có ứng dụng nào của Đại số trừu tượng cho lý thuyết ngôn ngữ lập trình không? Có bất cứ điều gì sẽ hữu ích trong thiết kế ngôn ngữ và thực hiện trình biên dịch?



3
Bạn đã kiểm tra câu hỏi liên kết ở trên? Ngoài ra Lý thuyết Danh mục có hữu ích cho việc học lập trình chức năng không? lập trình chức năng . Họ có trả lời câu hỏi của bạn không?
Kaveh

Câu trả lời:


11

Đại số theo nghĩa cổ điển của từ này được sử dụng trong mô hình hóa các hiệu ứng tính toán như các phép toán đại số, xem ví dụ các slide này của Gordon Plotkin, hoặc bạn có thể đọc các bài báo thựcPh.D. Luận văn , nếu bạn thực sự muốn đặt câu hỏi.

Và để thổi còi của riêng tôi, hãy xem Effđọc về nó , một ngôn ngữ được thiết kế xung quanh ý tưởng rằng các hiệu ứng tính toán là các phép toán đại số và các trình xử lý là đồng cấu của đại số.


1
Eff rất tuyệt - những gì tôi hiểu về các phần tiếp theo được phân định chủ yếu đến từ nó.
Neel Krishnaswami

Tôi đang xem xét một phản ứng trên blog đối với "callcc được coi là có hại" của Oleg, trong đó tôi cho rằng eff là cách làm việc có cấu trúc với các phần tiếp theo.
Andrej Bauer

Cảm ơn mọi người đã trả lời. Tôi đã phải chấp nhận câu trả lời của @ AndrejBauer vì anh ấy đã thực hiện ngôn ngữ của mình như một câu trả lời cho câu hỏi :)
n00b101

Bạn đã có thứ tự sai ở đó :) Điều đó xảy ra khi Matija và tôi thực hiện một ngôn ngữ phù hợp với câu hỏi của bạn.
Andrej Bauer

7

Tôi đã do dự để trả lời bởi vì bất kỳ câu trả lời nào ngoài một từ "có" đơn giản đều có thể và không điền vào khối lượng. Ngữ nghĩa lập trình ngôn ngữ đã được định hình sâu sắc và đến lượt nó đã định hình sâu sắc sự phát triển của logic phân loại, đó là ứng dụng của đại số vào logic.

Nhưng tôi nghi ngờ cách tốt nhất để trả lời câu hỏi này là bảo bạn đi học Agda - kinh nghiệm học lập trình với các loại phụ thuộc là rất lớn để hiểu được cách lập trình đại số toàn diện.


-1

Trên thực tế có một phần mềm cho đại số trừu tượng lý thuyết. Phần mềm này cho phép tính toán một số loại như các nhóm hành động, Đồng cấu v.v ... Đó là Magma: http://magma.maths.usyd.edu.au/magma/

Tôi hy vọng điều này có thể giúp bạn.


2
Tôi sợ rằng bạn có thể đã hiểu sai câu hỏi.
Tsuyoshi Ito

Bạn nghĩ? Chà, với Magma bạn có một thư viện đặc biệt về chủ đề đại số trừu tượng, môi trường hữu ích để áp dụng trong các lĩnh vực khác, ví dụ ngôn ngữ lập trình ...
Camilo Soler

1
(1) Nếu Magma có một thư viện trong chủ đề cụ thể về đại số trừu tượng rất hữu ích để áp dụng cho lý thuyết ngôn ngữ lập trình, thì bạn nên viết về ứng dụng đó. Tôi không nghĩ rằng một con trỏ đến Magma là hữu ích trong bối cảnh của câu hỏi này. (2) Thành thật mà nói, tôi nghi ngờ rằng bạn hiểu lý thuyết ngôn ngữ lập trình của Cameron có nghĩa là gì.
Tsuyoshi Ito

OK, tôi chỉ muốn thể hiện ý tưởng của mình trên một nền tảng khác có thư viện đại số trừu tượng làm cơ sở (ví dụ) để tạo hoặc thiết kế một "ngôn ngữ lập trình" khác ... không dễ thảo luận ở đây. Tôi xin lỗi nếu ý tưởng của tôi là xấu hoặc sai.
Camilo Soler
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.