Concatenative programming language

Concatenative programming language

A concatenative programming language is a point-free programming language in which all expressions denote functions and the juxtaposition of expressions denotes function composition.[1] The combination of a compositional semantics with a syntax that mirrors such a semantics makes concatenative languages highly amenable to algebraic manipulation.[2]

Much of the original work on concatenative language theory was carried out by Manfred von Thun.

Contents

Properties

The properties of concatenative languages are the result of their compositional syntax and semantics:

  • The reduction of any expression is the simplification of one function to another function; it is never necessary to deal with the application of functions to objects.[3]
  • Any subexpression can be replaced with a name that represents the same subexpression. This is referred to in the concatenative community as factoring and is used extensively to simplify programs into smaller parts.
  • The syntax and semantics of concatenative languages form the algebraic structure of a monoid.[4]
  • Concatenative languages can be made well-suited to an implementation inspired by linear logic where no garbage is ever generated.[5]

Implementations

The first concatenative programming language was Forth, although Joy was the first language to call itself concatenative. Other concatenative languages are Cat, Enchilada, Factor, Onyx, PostScript, RPL, Stappl, Trith and XY.

Most existing concatenative languages are stack-based; this is not a requirement and other models have been proposed.[6][7] Concatenative languages are currently used for embedded, desktop, and web programming, as target languages, and for research purposes.

Most concatenative languages are dynamically typed. One exception is the statically typed Cat language.[8]

See also

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • Factor (programming language) — Infobox programming language name = Factor paradigm = stack based year = 2003 developer = Slava Pestov latest release version = Continuous Builds [http://factorcode.org/binaries.fhtml] typing = strong, dynamic influenced by = Joy, Forth, Lisp,… …   Wikipedia

  • Joy (programming language) — Joy Paradigm(s) multi paradigm: functional, concatenative, stack oriented Appeared in 2001 Designed by Manfred von Thun Developer Manfred von Thun, John Cowan St …   Wikipedia

  • V (programming language) — Infobox programming language name = V logo = paradigm = multi paradigm: functional, stack oriented year = 2007 designer = Rahul developer = Rahul latest release version = Jun 1, 2007 latest release date = Jun 1, 2007 typing = dynamic… …   Wikipedia

  • Esoteric programming language — An esoteric programming language (sometimes shortened to esolang) is a programming language designed as a test of the boundaries of computer programming language design, as a proof of concept, or as a joke. There is usually no intention of the… …   Wikipedia

  • Dynamic programming language — This article is about a class of programming languages, for the method for reducing the runtime of algorithms, see Dynamic programming. Dynamic programming language is a term used broadly in computer science to describe a class of high level… …   Wikipedia

  • Onyx (programming language) — Onyx is a stack oriented programming language. External links Onyx Home Page Categories: Stack oriented programming languagesConcatenative programming languagesProgramming language topic stubs …   Wikipedia

  • Programming paradigm — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concu …   Wikipedia

  • Programming in the large and programming in the small — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computin …   Wikipedia

  • Function-level programming — In computer science, function level programming refers to one of the two contrasting programming paradigms identified by John Backus in his work on programs as mathematical objects, the other being value level programming.In his 1977 Turing award …   Wikipedia

Share the article and excerpts

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