Jump to content

Categorical abstract machine: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
AnomieBOT (talk | contribs)
m Dating maintenance tags: {{How}}
Implementation: Fixed grammatical error.
Tags: Mobile edit Mobile web edit
Line 7: Line 7:


== Implementation ==
== Implementation ==
One of the implementation approaches to functional languages is given by the machinery based on [[Supercombinator| supercombinators]], or an SK-machine, by D. Turner. The notion of CAM gives an alternative approach. The structure of CAM consists of syntactic, semantic, and computational constituents. Syntax is based on the [[Nicolaas Govert de Bruijn | de Bruijn’s]] [[ De Bruijn notation | notation]], which overcomes the difficulties of using bound variables. The evaluations are similar to those of [[Peter J. Landin | P. Landin’s]] [[SECD machine]]. With this coverage, CAM gives a sound ground for syntax, semantics, and [[theory of computation]]. This comprehension arises as being influenced by the functional style of programming.
One of the implementation approaches to functional languages is given by the machinery based on [[Supercombinator| supercombinators]], or an SK-machine, by D. Turner. The notion of CAM gives an alternative approach. The structure of CAM consists of syntactic, semantic, and computational constituents. Syntax is based on [[Nicolaas Govert de Bruijn | de Bruijn’s]] [[ De Bruijn notation | notation]], which overcomes the difficulties of using bound variables. The evaluations are similar to those of [[Peter J. Landin | P. Landin’s]] [[SECD machine]]. With this coverage, CAM gives a sound ground for syntax, semantics, and [[theory of computation]]. This comprehension arises as being influenced by the functional style of programming.


== See also ==
== See also ==

Revision as of 21:13, 14 September 2016

The categorical abstract machine (CAM) is a model of computation for programs[1] that preserves the abilities of applicative, functional, or compositional style. It is based on the techniques of applicative computing.

Overview

The notion of the categorical abstract machine arose in the mid-1980s. It took its place in computer science as a kind of theory of computation for programmers, represented by Cartesian closed category and embedded into the combinatory logic. CAM is a transparent and sound mathematical representation for the languages of functional programming. The machine code can be optimized using the equational form of a theory of computation. Using CAM, the various mechanisms of computation such as recursion or lazy evaluation can be emulated as well as parameter passing, such as call by name, call by value, and so on. In theory, CAM preserves[how?] all the advantages of object approach towards programming or computing.

Implementation

One of the implementation approaches to functional languages is given by the machinery based on supercombinators, or an SK-machine, by D. Turner. The notion of CAM gives an alternative approach. The structure of CAM consists of syntactic, semantic, and computational constituents. Syntax is based on de Bruijn’s notation, which overcomes the difficulties of using bound variables. The evaluations are similar to those of P. Landin’s SECD machine. With this coverage, CAM gives a sound ground for syntax, semantics, and theory of computation. This comprehension arises as being influenced by the functional style of programming.

See also

References

  1. ^ Cousineau G., Curien P.-L., Mauny M. The categorical abstract machine. — LNCS, 201, Functional programming languages computer architecture.-- 1985, pp.~50-64.

Further reading

  • Wolfengagen, V.E. Combinatory Logic in Programming: Computations with Objects through Examples and Exercises. 2nd ed. M.: "Center JurInfoR" Ltd., 2003. x+337 с. ISBN 5-89158-101-9.