principles of programming, abstraction reference synthesis, generalized lambda calculus, Programmierung pur

Principles of Programming - Simple and Powerful

The the principles of programming , or programming as such and not programming in a specific language is the main theme of this site.

Abstraction Reference Synthesis

The principles of programming presented here are based upon three simple concepts derived from the Lambda Calculus, i.e. abstraction reference synthesis. The system built on these fundamental concepts is independent from specific programming languages and even from programming paradigms.

This system can serve as a base for programming in most of the programming languages. This is demonstrated in the book Programmierung pur for programming in Scheme, Java, Python, C++ and C.

The independance from programming paradigms is made evident by the fact, that these principles of programming lead to functional programming, to object oriented programming and to imperative programming as well. This is also covered in detail in Programmierung pur.

This kind of programming, which is called ars based programming, liberates programmers from wasting their brain power by struggling with the syntax of a specific programming language and encourages them to apply simpler, more comprehensive and much more powerful general programming patterns.

Generalized Lambda Calculus

The concepts abstraction reference synthesis, abbreviated by the acronym ARS and providing a solid foundation for the principles of programming, are essentially a generalization of the Lambda Calculus. In ARS the term abstraction is defined as 'give something a name' . All details of the 'something' are hidden behind the name. Such a general 'name giving' calls for an explicit definition of a name .

The Lambda Calculus however does not provide an operation of explicitly giving a name to a lambda abstraction . To give something a name is only possible implicitly via a synthesis of lambda expressions.

This little difference between ARS and the Lambda Calculus may seem trivial, but in fact the consequence is significant: Extending the Lambda Calculus always leads to functional programming languages. ARS however can serve to define general programming patterns , which can be applied to functional programming as well as to object oriented programming and to imperative programming . The book Programmierung pur does not only cover the programming principles in detail, but also shows how they can be applied to five popular programming languages. Practical feasibility is demonstrated by the use of four large case studies.

ARS Based Programming

Programming based on ARS, as it is described in the book Programmierung pur, leads to ARSAPI and ARS++ .

ARSAPI , the ARS Application Programmer's Interface , is a summary of ARS based programming in Java, C++ und C.

ARS++ stands for 'ARS plus Scheme plus extensions' and is an implementation of A++ with a rich set of primitive abstractions that include the functionality of Scheme and several extensions. a fully ars-compatible version of Scheme, written in C .
ARS++ is 'properly tail-recursive' and supports 'full continuations'. It comprises AVIM , a virtual machine for the Scheme dialect 'ars++' and the compiler ACOMP . The compiler translates 'ars++' code into the code of the virtual machine AVIM. This virtual machine is designed after the model of the SECD Machine invented by J. Landing. It is different though from the 'LispKIT', another implementation of the SECD Machine.

domain access counter
(c) Copyright 2005