Теория языка программирования и абстрактная алгебра


11

Существуют ли какие-либо приложения абстрактной алгебры к теории языка программирования? Есть ли что-нибудь полезное в дизайне языка и реализации компилятора?



Ответы:


11

Алгебра в классическом смысле этого слова используется при моделировании вычислительных эффектов как алгебраических операций, см., Например, эти слайды Гордона Плоткина, или вы можете прочитать реальные статьи и докторскую степень. тезисы , если вы действительно хотели задать вопрос.

И чтобы взорвать мой собственный рог, взгляните на Eff и прочитайте об этом , языке, основанном на идее, что вычислительные эффекты - это алгебраические операции, а обработчики - это гомоморфизмы алгебр.


1
Эфф очень классный - то, что я понимаю о продолжениях с разделителями, происходит в основном из этого.
— Нил Кришнасвами

Я рассматриваю реакцию блога на «callcc, который считается вредным» Олега, в котором я утверждаю, что eff - это структурированный способ работы с продолжениями.
— Андрей Бауэр

Спасибо всем за ответы. Мне пришлось принять ответ @ AndrejBauer, так как он использовал свой собственный язык в качестве ответа на вопрос :)
— n00b101

У вас там неправильный порядок вещей :) Просто так получилось, что мы с Матей внедрили язык, который соответствует вашему вопросу.
— Андрей Бауэр

7

Я не решался ответить, потому что любой ответ, кроме простого «да», мог бы заполнить объемы. Семантика языка программирования была глубоко сформирована и, в свою очередь, глубоко повлияла на развитие категориальной логики, которая является применением алгебры к логике.

Но я подозреваю, что лучший способ ответить на этот вопрос - это рассказать вам об изучении Agda - опыт обучения программированию с зависимыми типами в значительной степени приходит к пониманию того, насколько полно алгебра проникает в компьютерное программирование.


-1

На самом деле существует программное обеспечение для теоретической абстрактной алгебры. Это программное обеспечение позволяет вычислять некоторые вещи, такие как группы действий, гомоморфизм и т. Д. Это Magma: http://magma.maths.usyd.edu.au/magma/

Я надеюсь это тебе поможет.


2
Я боюсь, что вы, вероятно, неправильно поняли вопрос.
— Tsuyoshi Ito

Думаешь? Что ж, с Magma у вас есть библиотека, посвященная конкретной теме об абстрактной алгебре, полезная среда для применения в других областях, например, в языке программирования ...
— Камило Солер,

1
(1) Если у Magma есть библиотека по конкретной теме об абстрактной алгебре, которую полезно применять к теории языка программирования, то вам следует написать об этом приложении. Я не думаю, что указатель на Магму полезен в контексте этого вопроса. (2) Если честно, я сомневаюсь, что вы понимаете, что означает «теория языка программирования».
— Цуёси Ито

Хорошо, я просто хотел выразить свою идею на другой платформе, в которой в качестве основы (например, примера) для создания или проектирования другого «языка программирования» используется библиотека абстрактной алгебры ... это не так просто обсудить здесь. Извините, если моя идея была плохой или неправильной.
— Камило Солер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.