| 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: 
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:
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.
 
 
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.
 
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.
 
 
        
          | Verallgemeinerte Grundoperationen des Lambda-Kalküls (ARS): |  
          | Abstraktion: etwas einen Namen geben.
 |  
          | 
               |  
          | 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++.
           |  |