Applicative computing systems, or ACS are the systems of object calculi founded on
combinatory logic
Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic. It was introduced by Moses Schönfinkel and Haskell Curry, and has more recently been used in computer science as a theoretical model of comput ...
and
lambda calculus
Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation th ...
.
The only essential notion which is under consideration in these systems is the representation of
object
Object may refer to:
General meanings
* Object (philosophy), a thing, being, or concept
** Object (abstract), an object which does not exist at any particular time or place
** Physical object, an identifiable collection of matter
* Goal, an ai ...
. In
combinatory logic
Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic. It was introduced by Moses Schönfinkel and Haskell Curry, and has more recently been used in computer science as a theoretical model of comput ...
the only metaoperator is
application in a sense of applying one object to other. In
lambda calculus
Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation th ...
two metaoperators are used:
application – the same as in combinatory logic, and
functional abstraction which binds the only variable in one object.
Features
The objects generated in these systems are the functional entities with the following features:
# the number of argument places, or object arity is not fixed but is enabling step by step in interoperations with other objects;
# in a process of generating the compound object one of its counterparts—function—is applied to other one—argument—but in other contexts they can change their roles, i.e. functions and arguments are considered on the equal rights;
# the self-applying of functions is allowed, i.e. any object can be applied to itself.
ACS give a sound ground for
applicative approach to programming.
Research challenge
Applicative computing systems' lack of storage and history sensitivity is the basic reason they have not provided a foundation for computer design. Moreover, most applicative systems employ the substitution operation of the
lambda calculus
Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation th ...
as their basic operation. This operation is one of virtually unlimited power, but its complete and efficient realization presents great difficulties to the machine designer.
See also
*
Applicative programming language
In the classification of programming languages, an applicative programming language is built out of functions applied to arguments. Applicative languages are functional, and applicative is often used as a synonym for functional. However, conc ...
*
Categorical abstract machine
The categorical abstract machine (CAM) is a model of computation for programs''Cousineau G., Curien P.-L., Mauny M.'' The categorical abstract machine. — LNCS, 201, Functional programming languages computer architecture.-- 1985, pp.~50-64. that ...
*
Combinatory logic
Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic. It was introduced by Moses Schönfinkel and Haskell Curry, and has more recently been used in computer science as a theoretical model of comput ...
*
Functional programming
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that ...
*
Lambda calculus
Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation th ...
References
Further reading
*
H._Curry,_one_of_the_founders_of_computational_models.html" ;"title="Haskell_Curry.html" ;"title="his volume reflects the research program and philosophy of Haskell Curry">H. Curry, one of the founders of computational models">Haskell_Curry.html" ;"title="his volume reflects the research program and philosophy of Haskell Curry">H. Curry, one of the founders of computational models and the deductive framework for reasoning in terms of objects.]
*
{{DEFAULTSORT:Applicative Computing Systems
Applicative computing systems,
Models of computation
Combinatory logic
Lambda calculus