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


11

Чи є додатки абстрактної алгебри до теорії мови програмування? Чи є щось, що було б корисно в мовному дизайні та реалізації компілятора?



3
Ви перевірили пов'язане вище питання? Також є чи теорія Категорії корисна для вивчення функціонального програмування? та функціональне програмування . Вони відповідають на ваше запитання?
Каве

Відповіді:


11

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

І щоб забити мій власний ріг, подивіться на Еффа та прочитайте про нього , мову, розроблену навколо ідеї, що обчислювальні ефекти - це алгебраїчні операції та що обробники - це гомоморфізми алгебр.


1
Ефф дуже крутий - те, що я розумію щодо обмеженого продовження, здебільшого походить від цього.
Neel Krishnaswami

Я розглядаю реакцію в блозі на Олег "callcc вважається шкідливим", в якому я стверджую, що eff - це структурований спосіб роботи з продовженням.
Андрій Бауер

Дякую всім за відповіді. Я повинен був прийняти відповідь @ AndrejBauer, оскільки він реалізував власну мову як відповідь на питання :)
n00b101

У вас там неправильний порядок :) Так буває, що ми з Matija реалізували мову, яка відповідає вашому питанню.
Андрій Бауер

7

Я вагаючись відповів, тому що будь-яка відповідь, що перевищує просте "так", могла і не заповнити томи. Семантика мови програмування була глибоко сформована і, у свою чергу, глибоко сформувала розвиток категоричної логіки, що є застосуванням алгебри до логіки.

Але я підозрюю, що найкращий спосіб відповісти на це запитання - це сказати вам піти вивчати Агду - досвід навчання програмуванню залежними типами в значній мірі наближається до того, як всебічно алгебра пронизує комп'ютерне програмування.


-1

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

Я сподіваюся, що це може вам допомогти.


2
Я боюся, що ви, мабуть, неправильно зрозуміли питання.
Цуйосі Іто

Ви думаєте? Що ж, з Magma у вас є бібліотека, зокрема тема абстрактної алгебри, корисне середовище для застосування в інших сферах, наприклад, мова програмування ...
Camilo Soler

1
(1) Якщо у Магми є бібліотека, зокрема тема абстрактної алгебри, яку корисно застосувати до теорії мови програмування, то слід написати про це додаток. Я не думаю, що вказівник на Магму є корисним у контексті цього питання. (Чесно кажучи), я сумніваюся, що ви розумієте, що означає "теорія мови програмування".
Цуйосі Іто

Гаразд, я просто хотів висловити свою ідею на іншій платформі, яка має бібліотеку абстрактної алгебри як основу (наприклад, приклад) для створення або проектування іншої "мови програмування" ... тут не просто обговорити. Перепрошую, якщо моя ідея була поганою чи неправильною.
Каміло Солер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.