Allgemeine Muster der Programmierung in ARSEinige mächtige allgemeine Muster der Programmierung können von ARS, einer Verallgemeinerung des Lambda-Kalküls, abgeleitet werden.Das Closure MusterDas grundlegendste allgemeine Muster der Programmierung, die von ARS abgeleitet werden können, ist das Closure Muster. Eine Closure ist eine Verkapselung einer Lambda-Abstraktion mit ihrer gesamten Umgebung. Diese Umgebung besteht aus allen Namen von Abstraktionen, auf die in der entsprechenden Lambda-Abstraktion zugegriffen werden kann. Der Zugriff auf Namen in einer Lambda-Abstraktion wird durch das Prinzip des 'lexical scope' geregelt. 'lexical scope' kann auch mit Kontext der Lambda-Abstraktion in dem Programmtext umschrieben werden. kann. Eine ausführliche Erläuterung des Closure Musters befindet sich in dem Buch Programmierung pur. Eine Closure ist ein first class object, d.h. ein Objekt erster Klasse, mit dem umgegangen werden kann, wie mit allen anderen Daten:
Das CLAM MusterDas CLAM Muster ist lediglich eine Abbildung des allgemeinen Closure Musters auf die Programmiersprache C. Das Muster ist im Detail in dem Buch: Programmierung pur beschrieben. Das Akronym CLAM steht für: C Lambda Abstraction. Eine CLAM ist deshalb eine Implementierung einer ARS-Lambda-Abstraktion in der Programmiersprache C. Weil eine CLAM eine Verkapselung von Daten und Prozeduren ist (die Lambda-Abstraktion mit ihrer gesamten Umgebung), kann sie mit einem Objekt in der Objekt-orientierten Technologie verglichen werden. Das leicht anzuwendende von ARS abgeleitete CLAM Muster stellt C-Programmierern all die feinen Dinge zur Verfügung, auf welche Verfechter der Funktionalen Programmierung oder der Objekt-orientierten Programmierung mit Recht so stolz sind. Das List MusterDas List Muster enthält viele Funktionen, wie Konstruktoren, Selektoren und Mutatoren, die es ermöglichen Listen zu erstellen, Elemente aus ihnen zu extrahieren, Listen zu sortieren, Elemente einzufügen, Listen zu modifizieren und Listen miteinander zu verknüpfen. Das Set MusterDas Set Muster entspricht mehr oder weniger dem List Muster mit einigen zusätzlichen Funktionen, mit denen Mengenoperationen mit Listen durchgeführt werden können. Das Muster der Funktionen höherer OrdnungIn dem Muster der Funktionen höherer Ordnung geht es um den Umgang mit Funktionen, die wiederum Funktionen als Argumente entgegennehmen, und/oder die Funktionen erzeugen und als Resultate zurückliefern. Das Muster des Botschaften VersendensDas Muster des Versendens von Botschaften implementiert das statische Objektmodell, wie es normalerweise in Java, C++ und anderen OOP-Sprachen eingesetzt wird. In diesem Modell werden Objekte erzeugt, mit denen dann über Botschaften kommuniziert wird. Das Meta-Object-Protocol MusterDas Meta-Object-Protocol Muster implementiert ein dynamisches Objektmodell, in dem Methoden dynamisch erzeugt, modifiziert und entfernt werden können. Siehe auch :ARSAPI.
|