|
A++ ist eine Programmiersprache, deren Minimalismus kaum zu übertreffen ist. Ihr einziger Zweck ist es, an der Programmierung Interessierten zu helfen, so schnell und effizient wie nur möglich das Wesentliche der Programmierung zu erfassen.
Wesen und Zweck:
Ein zur Verfügung gestellter Interpreter soll dabei behilflich sein, das Gelernte anzuwenden und zu testen.
In keiner der in einführenden Kursen üblicherweise benutzten Programmiersprachen werden Lernende gezwungen sich mit dem Wesentlichen der Programmierung so intensiv auseinanderzusetzen wie in A++.
Der Vorteil dieses rigorosen Vorgehens besteht darin, dass in kurzer Zeit Denkmuster eingeübt werden, die einen befähigen, sich müheloser in die großen populären Programmiersprachen einzuarbeiten und in diesen in kurzer Zeit produktiv zu werden
Ursprung:
A++ ist aus dem Lambda-Kalkül von Alonzo Church entstanden. Der Name A++ ist eine Abkürzung von Abstraktion plus Referenz plus Synthese. Hiermit werden die drei Prinzipien von A++ benannt, die gleichzeitig ihr einziger Inhalt sind. Diese Prinzipien stellen eine Verallgemeinerung der Grundoperationen des Lambda-Kalküls dar.
Verallgemeinerung des Lambda-Kalküls:
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 Primitivoperationen 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.
|