A concatenative programming language is a point-free computer programming language in which all expressions denote functions, and the juxtaposition of expressions denotes function composition.
For example, a nesting of operations in an applicative language like the following: ...is written in a concatenative language as a sequence of functions:[2] Functions and procedures written in concatenative style are not value level, i.e. they typically do not represent the data structures they operate on with explicit names or identifiers.
[3] The combination of compositional semantics with a syntax that mirrors such a semantic makes concatenative languages highly amenable to algebraic manipulation of programs;[4] although it may be difficult to write mathematical expressions directly in them.
Other concatenative languages are dc, Factor, Onyx, PostScript, and RPL.
Most existing concatenative languages are stack-based; this is not a requirement and other models have been proposed.