next up previous contents index
Next: Name of the language Up: Purpose of A++ and Previous: Origin   Contents   Index

ARS -- Generalization of the Lambda-Calculus

\includegraphics[scale=0.30]{img/arslogo.eps}
The pure Lambda Calculus is applicable only to functional programming. A++ however is built on ARS which stands for the basic operations of the Lambda-Calculus in a generalized form. Guy L. Steele, one of the fathers of the Scheme Programming Language, praises the beauty of ARS in his foreword to [SF93] on page XV and XVI. The following phrase puts everything to a point:
\fbox{
\parbox{11.0cm}{
{\em Abstraction is all there is to talk about: it is b...
...ct
and the means of discussion.
\hspace*{\fill} {\em\bf Guy L. Steele Jr.}}
}
}

ARS provides a base for imperative programming and object-oriented programming as well and can be applied to programming in almost any programming language.

ARS, the basic operations of the Lambda Calculus in their generalized form are defined as follows:

\fbox{
\parbox{12.0cm}{
\begin{description}
\item [Abstraction:] Give somethi...
...mbine two or more abstractions to
create something new.
\end{description} }
}
These operations may sound rather trivial and abstract but taken as principles of programming they change the style and method of programming thoroughly.

The generalization of the Lambda Calculus consists in defining the concept of abstraction simply by `give something a name'. The name hides all the details of the defined. Abstraction thus defined requires an explicit definition of a name.

The Lambda Calculus does not allow for an explicit definition of a name. The only possibility to associate a name to a value in the Lambda Calculus is by calling a function with an argument. This operation corresponds to the synthesis operation however and not to the creation of an abstraction. Lambda-abstractions in the Lambda Calculus are `per se' anonymous.


next up previous contents index
Next: Name of the language Up: Purpose of A++ and Previous: Origin   Contents   Index
Georg P. Loczewski 2004-03-09