Programmiersprachentheorie und abstrakte Algebra

11

Gibt es Anwendungen der Abstrakten Algebra für die Programmiersprachentheorie? Gibt es etwas, das für das Sprachdesign und die Compiler-Implementierung nützlich wäre?

n00b101
quelle

Antworten:

11

Algebra im klassischen Sinne des Wortes wird zur Modellierung von Recheneffekten als algebraische Operationen verwendet. Siehe zum Beispiel diese Folien von Gordon Plotkin, oder Sie können echte Artikel und Doktorarbeiten lesen . Thesen , wenn Sie eigentlich die Frage stellen wollten.

Und um mein eigenes Horn zu blasen, schauen Sie sich Eff an und lesen Sie darüber , eine Sprache, die auf der Idee basiert, dass Recheneffekte algebraische Operationen und Handler Homomorphismen von Algebren sind.

Andrej Bauer
quelle
1
Eff ist sehr cool - was ich über abgegrenzte Fortsetzungen verstehe, kommt hauptsächlich davon.
Neel Krishnaswami
Ich denke über eine Blog-Reaktion auf Olegs "Callcc als schädlich" nach, in der ich argumentiere, dass eff die strukturierte Art ist, mit Fortsetzungen zu arbeiten.
Andrej Bauer
Vielen Dank an alle für die Antwort. Ich musste @ AndrejBauers Antwort akzeptieren, da er seine eigene Sprache als Antwort auf die Frage
implementierte
Da ist die Reihenfolge der Dinge falsch :) Es kommt einfach so vor, dass Matija und ich eine Sprache implementiert haben, die zu Ihrer Frage passt.
Andrej Bauer
7

Ich habe gezögert zu antworten, weil jede Antwort, die über ein einfaches "Ja" hinausgeht, Bände füllen könnte und tut. Die Semantik der Programmiersprache wurde tiefgreifend von der Entwicklung der kategorialen Logik geprägt, die die Anwendung der Algebra auf die Logik darstellt.

Ich vermute jedoch, dass die beste Möglichkeit zur Beantwortung dieser Frage darin besteht, Ihnen zu sagen, dass Sie Agda lernen sollen. Die Erfahrung, das Programmieren mit abhängigen Typen zu lernen, setzt sich weitgehend damit auseinander, wie umfassend Algebra die Computerprogrammierung durchdringt.

Neel Krishnaswami
quelle
-1

Eigentlich gibt es eine Software für die theoretische abstrakte Algebra. Diese Soft-Erlaubnis berechnet einige Arten von Dingen wie Aktionsgruppen, Homomorphismus usw. Es ist Magma: http://magma.maths.usyd.edu.au/magma/

Ich hoffe das kann dir helfen.

Camilo Soler
quelle
2
Ich fürchte, Sie haben die Frage wahrscheinlich falsch verstanden.
Tsuyoshi Ito
Du denkst? Nun, mit Magma haben Sie eine Bibliothek in einem bestimmten Thema über abstrakte Algebra, eine nützliche Umgebung für die Anwendung in anderen Bereichen, zum Beispiel Programmiersprache ...
Camilo Soler
1
(1) Wenn Magma eine Bibliothek zu einem bestimmten Thema über abstrakte Algebra hat, die für die Anwendung auf die Theorie der Programmiersprache nützlich ist, sollten Sie über diese Anwendung schreiben. Ich denke nicht, dass ein Zeiger auf Magma im Kontext dieser Frage hilfreich ist. (2) Um ehrlich zu sein, bezweifle ich, dass Sie verstehen, was „Programmiersprachtheorie“ bedeutet.
Tsuyoshi Ito
OK, ich wollte meine Idee nur auf einer anderen Plattform ausdrücken, die eine Bibliothek abstrakter Algebra als Grundlage (wie zum Beispiel) für das Erstellen oder Entwerfen einer anderen "Programmiersprache" hat ... ist hier nicht einfach zu diskutieren. Es tut mir leid, wenn meine Idee schlecht oder falsch war.
Camilo Soler