Algebraische Programmiersprache
Eine algebraische Programmiersprache erfüllt die Eigenschaften der referenziellen Transparenz. Das Konzept ist verwandt mit demjenigen funktionaler Programmier…
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)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.