Concatenative language/Meta-programming

Higher-order concatenative languages, such as Joy and Factor, represent quotations (anonymous functions) as lists. This means that any list manipulation operations can be used to construct new programs and run them. In Factor, the compiler itself is extensible with Macros and so new programs can be constructed at compile time. Thanks to easy meta-programming, Concatenative languages can absorb many different paradigms with ease. Factor supports Functional programming, Object-oriented programming, and Dataflow programming (with the models vocabulary).

This is similar to macro meta-programming in Lisp and Scheme. While powerful macros are often cited as the raison d'être for Lisp's parenthetical syntax and heavy nesting, concatenative languages achieve a similar level of expressive power with much "flatter" and simpler programs.

Even without explicit language support, it is often possible to write very high-level code in a concatenative style, which has a declarative feel. This is because the language is more fluid: there are no expressions and no statements, instead your program is one word after another. Any structure in the program comes from convention or from the meaning of the words, not from the syntax of the language, and so the programmer is free to invent their own conventions to achieve whatever level abstraction they want.

This revision created on Tue, 22 Nov 2016 09:45:33 by tokobunga