allgemeine Muster der Programmierung, Closure Muster, CLAM Muster, c lambda abstraction, ARSAPI Muster, Programmierung pur

Allgemeine Muster der Programmierung in ARS

Einige mächtige allgemeine Muster der Programmierung können von ARS, einer Verallgemeinerung des Lambda-Kalküls, abgeleitet werden.

Das Closure Muster

Das 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:

  • es kann abgespeichert werden,
  • es kann einer Funktion als Argument übergeben werden und
  • es kann aus einer Funktion heraus als Wert zurückgeliefert werden.
Der feine Unterschied zwischen einer Closure und einem Objekt in der Objekt-orientierten Technologie ist folgender:
  • Eine Closure ist im wesentlichen eine Funktion, die aufgerufen werden kann, in der aber alle möglichen Daten und Prozeduren verkapselt sein können.
  • Ein Objekt ist im wesentlichen ein Datenelement in dem alle möglichen Daten und Prozeduren verkapselt sein können. Eine dieser verkapselten Prozeduren (Methoden) könnte die 'apply'-Methode sein, mit deren Hilfe das Objekt 'angewandt' werden kann auf ein Menge von Argumenten, was dem Aufruf einer Funktion entspricht.

Das CLAM Muster

Das 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 Muster

Das 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 Muster

Das 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 Ordnung

In 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 Versendens

Das 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 Muster

Das Meta-Object-Protocol Muster implementiert ein dynamisches Objektmodell, in dem Methoden dynamisch erzeugt, modifiziert und entfernt werden können.

Siehe auch :ARSAPI.


Startseite

(c) Copyright 2005 lambda-bound.com



Impressum und Datenschutz