Teoria języka programowania i algebra abstrakcyjna

11

Czy są jakieś zastosowania Algebry Abstrakcyjnej w teorii języków programowania? Czy jest coś, co byłoby przydatne w projektowaniu języka i implementacji kompilatora?

n00b101
źródło
3
Czy sprawdziłeś powyższe pytanie? Również Czy teoria Kategoria przydatny do nauki programowania funkcjonalne? i programowanie funkcjonalne . Czy odpowiadają na twoje pytanie?
Kaveh,

Odpowiedzi:

11

Algebra w klasycznym tego słowa znaczeniu służy do modelowania efektów obliczeniowych jako operacji algebraicznych, patrz na przykład slajdy Gordona Plotkina lub można przeczytać prawdziwe artykuły i doktoraty. tezy , jeśli rzeczywiście chciałeś zadać pytanie.

Aby wysadzić własny róg, spójrz na Eff i poczytaj o nim , języku stworzonym wokół idei, że efekty obliczeniowe są operacjami algebraicznymi, a programy obsługi homomorfizmami algebr.

Andrej Bauer
źródło
1
Eff jest bardzo fajny - to, co rozumiem o ograniczonych kontynuacjach, pochodzi głównie z tego.
Neel Krishnaswami
Rozważam reakcję blogu na „callcc Olega uważany za szkodliwy”, w którym twierdzę, że eff to ustrukturyzowany sposób pracy z kontynuacjami.
Andrej Bauer,
Dziękujemy wszystkim za odpowiedź. Musiałem zaakceptować odpowiedź @ AndrejBauera, ponieważ zaimplementował swój własny język jako odpowiedź na pytanie :)
n00b101
Tam źle się układa :) Tak się składa, że ​​Matija i ja wprowadziliśmy język, który pasuje do twojego pytania.
Andrej Bauer,
7

Zawahałem się odpowiedzieć, ponieważ każda odpowiedź wykraczająca poza zwykłe „tak” mogłaby wypełniać wolumeny. Semantyka języka programowania została głęboko ukształtowana, a to z kolei głęboko ukształtowało rozwój logiki kategorycznej, czyli zastosowania algebry do logiki.

Podejrzewam jednak, że najlepszym sposobem na udzielenie odpowiedzi na to pytanie jest nauczenie się Agdy - doświadczenie związane z uczeniem się programowania z typami zależnymi w dużej mierze mierzy się z wszechstronnością algebry w programowaniu komputerowym.

Neel Krishnaswami
źródło
-1

W rzeczywistości istnieje oprogramowanie do teoretycznej algebry abstrakcyjnej. Ten program pozwala obliczać niektóre rzeczy, takie jak grupy akcji, homomorfizm itp. To jest Magma: http://magma.maths.usyd.edu.au/magma/

Mam nadzieję, że ci to pomoże.

Camilo Soler
źródło
2
Obawiam się, że prawdopodobnie źle zrozumiałeś pytanie.
Tsuyoshi Ito
Myślisz? Cóż, z Magmą masz bibliotekę na konkretny temat dotyczący algebry abstrakcyjnej, przydatne środowisko do zastosowania w innych dziedzinach, na przykład w języku programowania ...
Camilo Soler
1
(1) Jeśli Magma ma konkretną bibliotekę na temat algebry abstrakcyjnej, która jest przydatna do zastosowania w teorii języka programowania, powinieneś napisać o tej aplikacji. Nie sądzę, aby wskaźnik do Magmy był pomocny w kontekście tego pytania. (2) Szczerze mówiąc, wątpię, abyś rozumiał, co oznacza „teoria języka programowania”.
Tsuyoshi Ito,
OK, chciałem po prostu wyrazić swój pomysł na innej platformie, która ma bibliotekę abstrakcyjnej algebry jako podstawę (jak przykład) do stworzenia lub zaprojektowania innego „języka programowania” ... nie jest łatwo o tym dyskutować. Przepraszam, jeśli mój pomysł był zły czy zły.
Camilo Soler,