Die Verallgemeinerung besteht darin, dass der Begriff der Abstraktion allgemeiner als im Lambda-Kalkül definiert wird, nämlich als 'etwas einen Namen geben'. Hinter dem Namen verbergen sich alle Details des Definierten. Eine solche Namensvergabe setzt eine explizite Namensdefinition voraus.
Im Lambda-Kalkül dagegen ist eine explizite Vergabe eines Namens für eine Lambda-Abstraktion bei deren Bildung nicht vorgesehen. Dort erfolgt sie lediglich implizit bei einer Synthese von Lambda-Ausdrücken.
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 mit ARS
allgemeine Muster der Programmierung definiert werden, die sowohl auf
die Funktionale Programmierung als auch auf die Objekt-orientierte
und die Imperative Programmierung angewandt werden können.
Georg P. Loczewski 2003-07-18 |