The the principles of programming, or programming as such and not programming in a specific language is the main theme of this site.
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.
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.
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.