Applicative computing systems

Applicative computing systems

Applicative computing systems, or ACS are the systems of object calculi founded on combinatory logic and lambda calculus [Wolfengagen V.E. "Methods and means for computations with objects. Applicative Computational Systems." — M.: JurInfoR Ltd., «Center JurInfoR», 2004. — xvi+789 pp. ISBN 5-89158-100-0.] . The only essential notion which is under consideration in these systems is the representation of object. In combinatory logic the only metaoperator is application in a sense of applying one object to other. In lambda calculus two metaoperators are used: application – the same as in combinatory logic, and functional abstraction which binds the only variable in one object.

Features of ACS

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 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 [1977 Turing Award Lecture: Backus J. [http://www.stanford.edu/class/cs242/readings/backus.pdf "Can Programming Be Liberated from the von Neumann Style?] A Functional Style and Its Algebra of Programs". – Comm. of the ACM, Vol. 2, No 8, 1978. -- pp. 613-641] .

See also

* Combinatory logic
* Lambda calculus
* Categorical abstract machine
* Functional programming
* Applicative programming language

References

Further reading

* Hindley J.R., Seldin J.P. (Eds.) "To H. B. Curry: Essays on combinatory logic, lambda calculus and formalism". — Academic Press, 1980. [This volume reflects the research program and philosophy of H. Curry, one of the founders of computational models and deductive framework for reasoning in terms of objects.]

* Wolfengagen, V.E. " [http://vew.0catch.com/books/Wolfengagen_CLP-2003-En.djvu Combinatory logic in programming.] Computations with objects through examples and exercises". -- 2-nd ed. -- M.: "Center JurInfoR" Ltd., 2003. -- x+337 с. ISBN 5-89158-101-9.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Applicative Universal Grammar — Applicative Universal Grammar, or AUG, is a universal semantic metalanguage intended for studying the semantic processes in particular languages [ Shaumyan S. A Semiotic Theory of Language . Bloomington and Indianapolis: Indiana University Press …   Wikipedia

  • Citrix Systems — Logo de Citrix Systems Création 1989 Fondateurs E …   Wikipédia en Français

  • Lambda calculus — In mathematical logic and computer science, lambda calculus, also written as λ calculus, is a formal system designed to investigate function definition, function application and recursion. It was introduced by Alonzo Church and Stephen Cole… …   Wikipedia

  • Categorical abstract machine — (CAM) is the model of computation of a program [ Cousineau G., Curien P. L., Mauny M. The categorical abstract machine. LNCS, 201, Functional programming languages computer architecture. 1985, pp. 50 64.] , which preserves the abilities of… …   Wikipedia

  • Combinatory logic — Not to be confused with combinational logic, a topic in digital electronics. Combinatory logic is a notation introduced by Moses Schönfinkel and Haskell Curry to eliminate the need for variables in mathematical logic. It has more recently been… …   Wikipedia

  • C10k problem — Le c10k problem[note 1] que l on pourrait traduire en français par le problème des dix mille connexions simultanées, est un code numérique utilisé pour exprimer la limitation que la plupart des serveurs ont en termes de connexions réseaux. Cette… …   Wikipédia en Français

  • Lisp (programming language) — Infobox programming language name = Lisp paradigm = multi paradigm: functional, procedural, reflective generation = 3GL year = 1958 designer = John McCarthy developer = Steve Russell, Timothy P. Hart, and Mike Levin latest release version =… …   Wikipedia

  • Flow-based programming — In computer science, flow based programming (FBP) is a programming paradigm that defines applications as networks of black box processes, which exchange data across predefined connections by message passing. These black box processes can be… …   Wikipedia

  • CR-Klassifikation — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Das CR Classification ist eine von der ACM entwickelte und… …   Deutsch Wikipedia

  • CR Classification — Das CR Classification ist eine von der ACM entwickelte und gepflegte Fachklassifikation für die Informatik. Das System beinhaltet eine 3 Level Hierarchie mit einem weiteren Level zur Beschreibung. Die erste Version der Klassifikation erschien im… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”