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:
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.