ARS Based Programming:

ars based programming, lambda-bound.com

Fundamental und ohne Grenzen

Home of Lambda-Bound | A++ | Lambda-Kalkül & A++ | ARS++ | ARSAPI | Buch über ARS | Buch über A++  (verfügbar in Englisch)  | Demo-Programme | Download | Kontakt | Links
© 1999-2005 Georg P. Loczewski. All Rights Reserved.

Andere Sprachen: English

ARS Based Programming, zu deutsch ARS-basierte Programmierung, ist auf den folgenden drei Prinzipien aufgebaut: Abstraktion, Referenz und Synthese (ARS). Diese Prinzipien sind zwar aus dem Lambda-Kalkül abgeleitet, gehen aber im Abstraktionsgrad über dieses hinaus und können deswegen allen drei großen Paradigmen der Programmierung als Grundlage dienen, nämlich der funktionalen, der objekt-orientierten und der imperativen Programmierung.

Ein Einüben in ARS-basierte Programmierung führt zu einem schnellen und tiefen Verständnis des Wesens der Programmierung und führt zu einer Vertrautheit mit mächtigen Denkmustern, die in den meisten Programmiersprachen angewandt werden können und das Erlernen dieser Sprachen wesentlich erleichtern und beschleunigen.

Dieser Ansatz in der Behandlung der Grundlagen der Programmierung wird im Detail in dem Buch Programmierung pur ausgeführt. Das Buch ist im April 2003 im S.Toeche-Mittler Verlag in Darmstadt erschienen.

Zur Untersützung der ARS-basierten Programmierung werden drei Werkzeuge angeboten:
  1. A++, eine minimalistische Programmiersprache mit einem Interpreter für die Einführung in die Programmierung, die eine rigorose Konfrontation mit dem Wesentlichen der Programmierung herbeiführt.
    Der Name A++ ist abgeleitet aus abstraction plus reference plus synthesis.
  2. ARS++, eine Programmiersprache mit einer eigenen virtuellen Maschine und einem Compiler aus A++ entwickelt wurde, und als ars-kompatible Programmiersprache mit einer über Scheme hinausgehenden Funktionalität den Anforderungen der Programmierpraxis standhalten kann.
  3. ARSAPI, eine Brücke zwischen ARS und den populären Programmiersprachen Java, C und C++, die aus Definitionen und empfohlenen Programmiermustern besteht, mit deren Hilfe ARS in die Zielsprache leicht umgesetzt werden kann.
ARS stellt eine Verallgemeinerung der drei grundlegenden Operationen im Lambda-Kalkül dar. Diese ARS begründenden verallgemeinerten Grundoperationen können folgendermaßen kurz beschrieben werden:

Verallgemeinerte Grundoperationen des Lambda-Kalküls (ARS):
Abstraktion:
etwas einen Namen geben.

ARS, ars based programming

Referenz:
auf etwas mit seinem Namen Bezug nehmen.
Synthese:
aus zwei Dingen etwas Neues erzeugen.

  

ARS stellt eine Verallgemeinerung der Grundoperationen des Lambda-Kalküs in dem Sinn dar, dass die Grundoperation der Abstraktion den vollen Sinn des Wortes 'etwas einen Namen geben' behält und dass alle drei Operationen irgendwo in einem Programm ohne Einschränkungen angewandt werden können.

Die folgenden Definitionen in EBNF notation definieren A++ als eine Programmiersprache im Gegensatz zum Lambda-Kalkül.

<expression> ::= <abstraction> |    (1)
<reference> |
<synthesis>
<abstraction> ::= '('define <variable> <expression>')' | (2)
'(lambda('{<variable>}')'
<expression> {<expression>}')'
<reference> ::= <variable> (3)
<synthesis> ::= '(' <expression> {<expression>} ')' (4)
<variable> ::= <symbol> (5)

Bezüglich weiterer Details zu A++ siehe: hier.

EBNF Notation:

  • | senkrechter Strich steht für 'oder'
  • [ ... ] eckige Klammern kennzeichnen optionale Ausdrücke
  • { ... } mittels geschweifter Klammern wird Wiederholung ausgedrückt: 0 oder n-mal
  • ' ... ' der Apostroph kennzeichnet wörtlichen zu nehmenden Text
  • ( ... ) einfache Klammern dienen der Gruppenbildung
  • < ... > kennzeichnen Terme

The Verallgemeinerung des Lambda-Kalküls erfolgt in dreifacher Hinsicht:

  • Einer gebildeten Abstraktion kann explizit ein Name vergeben werden und eine solche Abstraktion kann an beliebiger Stelle in einem Programm erfolgen.
  • Der Hauptteil einer Lambda-Abstraktion kann aus mehr als einem Lambda-Ausdruck bestehen.
  • Eine Synthese kann mehrere Lambda-Ausdrücke vereinigen.

Programmierung: fundamental und ohne Grenzen

Eine konsequente Anwendung der Grundoperationen des Lambda-Kalküls, Abstraktion, Referenz und Synthese (ARS), führt hin zu Mustern der Programmierung, die einfach und dennoch sehr mächtig sind und die sich in fast jeder Programmiersprache anwenden lassen. .
In dem Buch Programmierung pur werden die Grundlagen dieser Programmierung vorgestellt und angewandt auf fünf Programmiersprachen Scheme, Java, Python, C und C++.


Grundlagen der Programmierung Paradigmen der Programmierung Allgemeine Muster der Programmierung

Zum Anfang


domain access counter

© 1999-2005 Georg P. Loczewski. All Rights Reserved.