Ausgehend von den Grundoperationen des Lambda-Kalküls
gelangen wir durch einen Schritt der Verallgemeinerung
zu den drei Primitivoperationen von A++.
Der Schritt der Verallgemeinerung besteht darin, dass
den Primitiv-Operationen von A++
jedwede Einschränkung genommen wird.
- Abstraktion:
Etwas einen Namen geben
- Referenz:
Auf etwas mit seinem Namen Bezug nehmen
- Synthese:
Aus zwei oder mehr Dingen etwas Neues erzeugen
In A++ ist im Begriff der Abstraktion eine explizite
Namensvergabe an jeder beliebigen Stelle in einem Programm
erlaubt.
Im Lambda-Kalkül dagegen ist nur eine implizite Namensvergabe
im Zusammenhang mit einer Synthese von Lambda-Ausdrücken vorgesehen.
Die Auswirkungen dieses zunächst als klein erscheinenden Unterschiedes
sind gewaltig:
- Während ein Ausbau des Lambda-Kalküls immer in
die Funktionalen Programmiersprachen mündet,
- können in A++
alle drei Programmierstile zum Ausdruck gebracht werden,
nämlich der funktionale, der objekt-orientierte
und der imperative Programmierstil.
Georg Loczewski
2003-08-07