Algebraische Programmiersprache
Eine algebraische Programmiersprache erfüllt die Eigenschaften der referenziellen Transparenz. Das Konzept ist verwandt mit demjenigen funktionaler Programmiersprachen.
Termumformungen von Gleichungen und neue Sprachen
Für Termumformungen von Gleichungen in der Algebra (bzw. Programmcode in Programmiersprachen) müssen Regeln wie das Kommutativgesetz oder das Distributivgesetz gelten. Die Regeln sind allerdings für den Programmcode in vielen Programmiersprachen nicht umsetzbar, da Nebeneffekte – wie Änderung globaler Variablen und IO-Aktionen – in den Funktionen erlaubt sind und somit diese Regeln aufheben.
John W. Backus erkannte diesen Sachverhalt. Als er 1978 den Turing Award erhielt, schlug er in seinem Vortrag die FP-Systeme vor und zeigte Beispiele weiterer Termumformungsregeln.[1]
Die FP-Systeme vermieden allerdings grundsätzlich Variablen, was er in englischer Sprache „Function-level programming“ nannte. Heute wird auch der Lambda-Kalkül in rein funktionalen Programmiersprachen verwendet, es wird dann auf Variablenzuweisungen verzichtet, was es nötig macht, Schleifen durch Rekursion zu ersetzen.
Vorschlag algebraische Programmiersprache
Der Begriff algebraische Programmiersprache soll die Formulierungen function-level programming und rein funktionale Programmiersprache zusammenfassen, da algebraische Regeln und referenzielle Transparenz, die diese Regeln in Programmiersprachen ermöglicht, eng zusammenstehen.
Einzelnachweise
- John Backus: Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs. In: Communications of the ACM. Vol. 21, No. 8, August 1978, S. 613–641 (PDF; 3,0 MB ), (Archive.org; 30. Januar 2021)