275 lines
32 KiB
Markdown
275 lines
32 KiB
Markdown
# Wikipedia
|
||
|
||
**Source:** https://en.wikipedia.org/wiki/Concatenative_programming_language
|
||
|
||
Concatenative programming language - Wikipedia
|
||
|
||
[Jump to content](#bodyContent)
|
||
|
||
Main menu
|
||
|
||
Main menu
|
||
|
||
move to sidebar
|
||
hide
|
||
|
||
Navigation
|
||
|
||
* [Main page](/wiki/Main_Page "Visit the main page [z]")
|
||
* [Contents](/wiki/Wikipedia:Contents "Guides to browsing Wikipedia")
|
||
* [Current events](/wiki/Portal:Current_events "Articles related to current events")
|
||
* [Random article](/wiki/Special:Random "Visit a randomly selected article [x]")
|
||
* [About Wikipedia](/wiki/Wikipedia:About "Learn about Wikipedia and how it works")
|
||
* [Contact us](//en.wikipedia.org/wiki/Wikipedia:Contact_us "How to contact Wikipedia")
|
||
|
||
Contribute
|
||
|
||
* [Help](/wiki/Help:Contents "Guidance on how to use and edit Wikipedia")
|
||
* [Learn to edit](/wiki/Help:Introduction "Learn how to edit Wikipedia")
|
||
* [Community portal](/wiki/Wikipedia:Community_portal "The hub for editors")
|
||
* [Recent changes](/wiki/Special:RecentChanges "A list of recent changes to Wikipedia [r]")
|
||
* [Upload file](/wiki/Wikipedia:File_upload_wizard "Add images or other media for use on Wikipedia")
|
||
* [Special pages](/wiki/Special:SpecialPages "A list of all special pages [q]")
|
||
|
||
[
|
||
|
||

|
||
](/wiki/Main_Page)
|
||
|
||
[Search](/wiki/Special:Search "Search Wikipedia [f]")
|
||
|
||
Search
|
||
|
||
Appearance
|
||
|
||
* [Donate](https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en)
|
||
* [Create account](/w/index.php?title=Special:CreateAccount&returnto=Concatenative+programming+language "You are encouraged to create an account and log in; however, it is not mandatory")
|
||
* [Log in](/w/index.php?title=Special:UserLogin&returnto=Concatenative+programming+language "You're encouraged to log in; however, it's not mandatory. [o]")
|
||
|
||
Personal tools
|
||
|
||
* [Donate](https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en)
|
||
* [Create account](/w/index.php?title=Special:CreateAccount&returnto=Concatenative+programming+language "You are encouraged to create an account and log in; however, it is not mandatory")
|
||
* [Log in](/w/index.php?title=Special:UserLogin&returnto=Concatenative+programming+language "You're encouraged to log in; however, it's not mandatory. [o]")
|
||
|
||
## Contents
|
||
|
||
move to sidebar
|
||
hide
|
||
|
||
* [(Top)](#)
|
||
* [1
|
||
Example](#Example)
|
||
* [2
|
||
Properties](#Properties)
|
||
* [3
|
||
Implementations](#Implementations)
|
||
* [4
|
||
See also](#See_also)
|
||
* [5
|
||
References](#References)
|
||
* [6
|
||
External links](#External_links)
|
||
|
||
Toggle the table of contents
|
||
|
||
# Concatenative programming language
|
||
|
||
5 languages
|
||
|
||
* [Português](https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_concatenativa "Linguagem de programação concatenativa – Portuguese")
|
||
* [Русский](https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%BA%D0%B0%D1%82%D0%B5%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F "Конкатенативный язык программирования – Russian")
|
||
* [Српски / srpski](https://sr.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%BA%D0%B0%D1%82%D0%B5%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D1%98%D0%B5%D0%B7%D0%B8%D0%BA "Конкатенативни програмски језик – Serbian")
|
||
* [Українська](https://uk.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%BA%D0%B0%D1%82%D0%B5%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B0_%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F "Конкатенативна мова програмування – Ukrainian")
|
||
* [中文](https://zh.wikipedia.org/wiki/%E4%B8%B2%E6%8E%A5%E5%BC%8F%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80 "串接式编程语言 – Chinese")
|
||
|
||
[Edit links](https://www.wikidata.org/wiki/Special:EntityPage/Q4230857#sitelinks-wikipedia "Edit interlanguage links")
|
||
|
||
* [Article](/wiki/Concatenative_programming_language "View the content page [c]")
|
||
* [Talk](/wiki/Talk:Concatenative_programming_language "Discuss improvements to the content page [t]")
|
||
|
||
English
|
||
|
||
* [Read](/wiki/Concatenative_programming_language)
|
||
* [Edit](/w/index.php?title=Concatenative_programming_language&action=edit "Edit this page [e]")
|
||
* [View history](/w/index.php?title=Concatenative_programming_language&action=history "Past revisions of this page [h]")
|
||
|
||
|
||
|
||
Tools
|
||
|
||
Tools
|
||
|
||
move to sidebar
|
||
hide
|
||
|
||
Actions
|
||
|
||
* [Read](/wiki/Concatenative_programming_language)
|
||
* [Edit](/w/index.php?title=Concatenative_programming_language&action=edit "Edit this page [e]")
|
||
* [View history](/w/index.php?title=Concatenative_programming_language&action=history)
|
||
|
||
General
|
||
|
||
* [What links here](/wiki/Special:WhatLinksHere/Concatenative_programming_language "List of all English Wikipedia pages containing links to this page [j]")
|
||
* [Related changes](/wiki/Special:RecentChangesLinked/Concatenative_programming_language "Recent changes in pages linked from this page [k]")
|
||
* [Upload file](//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard "Upload files [u]")
|
||
* [Permanent link](/w/index.php?title=Concatenative_programming_language&oldid=1337586589 "Permanent link to this revision of this page")
|
||
* [Page information](/w/index.php?title=Concatenative_programming_language&action=info "More information about this page")
|
||
* [Cite this page](/w/index.php?title=Special:CiteThisPage&page=Concatenative_programming_language&id=1337586589&wpFormIdentifier=titleform "Information on how to cite this page")
|
||
* [Get shortened URL](/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FConcatenative_programming_language)
|
||
* [Download QR code](/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FConcatenative_programming_language)
|
||
|
||
Print/export
|
||
|
||
* [Download as PDF](/w/index.php?title=Special:DownloadAsPdf&page=Concatenative_programming_language&action=show-download-screen "Download this page as a PDF file")
|
||
* [Printable version](/w/index.php?title=Concatenative_programming_language&printable=yes "Printable version of this page [p]")
|
||
|
||
In other projects
|
||
|
||
* [Wikidata item](https://www.wikidata.org/wiki/Special:EntityPage/Q4230857 "Structured data on this page hosted by Wikidata [g]")
|
||
|
||
Appearance
|
||
|
||
move to sidebar
|
||
hide
|
||
|
||
From Wikipedia, the free encyclopedia
|
||
|
||
Type of programming language
|
||
|
||
A **concatenative programming language** is a [point-free](/wiki/Point-free_programming "Point-free programming") computer [programming language](/wiki/Programming_language "Programming language") in which all expressions denote [functions](/wiki/Function_(mathematics) "Function (mathematics)"), and the [juxtaposition](/wiki/Juxtaposition "Juxtaposition") of [expressions](/wiki/Expression_(computer_science) "Expression (computer science)") denotes [function composition](/wiki/Function_composition "Function composition").[[1]](#cite_note-dobbscodetalk-1) Concatenative programming replaces [function application](/wiki/Function_application "Function application"), which is common in other [programming paradigms](/wiki/Programming_paradigm "Programming paradigm"), with [function composition](/wiki/Function_composition_(computer_science) "Function composition (computer science)") as the default way to build [subroutines](/wiki/Function_(computer_programming) "Function (computer programming)").
|
||
|
||
## Example
|
||
|
||
[[edit](/w/index.php?title=Concatenative_programming_language&action=edit§ion=1 "Edit section: Example")]
|
||
|
||
For example, a nesting of operations in an applicative language like the following:
|
||
|
||
```
|
||
baz(bar(foo(x)))
|
||
```
|
||
|
||
...is written in a concatenative language as a sequence of functions:[[2]](#cite_note-2)
|
||
|
||
```
|
||
x foo bar baz
|
||
```
|
||
|
||
Functions and procedures written in concatenative style are not [value level](/wiki/Value-level_programming "Value-level programming"), i.e., they typically do not represent the data structures they operate on with explicit names or [identifiers](/wiki/Identifier#In_computer_science "Identifier"). Instead they are [function level](/wiki/Function-level_programming "Function-level programming") – a function is defined as a [pipeline](/wiki/Pipeline_(software) "Pipeline (software)"), or a sequence of operations that take parameters from an implicit [data structure](/wiki/Data_structure "Data structure") on which all functions operate, and return the function results to that shared structure so that it will be used by the next operator.[[3]](#cite_note-3)
|
||
|
||
The combination of compositional [semantics](/wiki/Semantics_(computer_science) "Semantics (computer science)") with a [syntax](/wiki/Syntax_(programming_languages) "Syntax (programming languages)") that mirrors such a semantic makes concatenative languages highly amenable to algebraic manipulation of programs;[[4]](#cite_note-4) although it may be difficult to write mathematical expressions directly in them.[[5]](#cite_note-whymatters-5) Concatenative languages can be implemented efficiently with a [stack machine](/wiki/Stack_machine "Stack machine"), and are commonly present implicitly in [virtual machines](/wiki/Virtual_machine "Virtual machine") in the form of their [instruction sets](/wiki/Instruction_set "Instruction set").[[5]](#cite_note-whymatters-5)
|
||
|
||
## Properties
|
||
|
||
[[edit](/w/index.php?title=Concatenative_programming_language&action=edit§ion=2 "Edit section: 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.[[6]](#cite_note-6)
|
||
* Any subexpression can be replaced with a name that represents the same subexpression. In concatenative programming practice, this is called [factoring](/wiki/Code_refactoring "Code refactoring"), and is used extensively to simplify programs into smaller parts.
|
||
* The syntax and semantics of concatenative languages form the algebraic structure of a [monoid](/wiki/Monoid "Monoid").[[7]](#cite_note-7)
|
||
* Concatenative languages can be made well-suited to an implementation inspired by [linear logic](/wiki/Linear_logic "Linear logic") where no [garbage](/wiki/Garbage_(computer_science) "Garbage (computer science)") is ever generated.[[8]](#cite_note-8)
|
||
|
||
## Implementations
|
||
|
||
[[edit](/w/index.php?title=Concatenative_programming_language&action=edit§ion=3 "Edit section: Implementations")]
|
||
|
||
The first concatenative programming language was [Forth](/wiki/Forth_(programming_language) "Forth (programming language)"), although [Joy](/wiki/Joy_(programming_language) "Joy (programming language)") was the first language which was termed concatenative. Other concatenative languages are [dc](/wiki/Dc_(computer_program) "Dc (computer program)"), [Factor](/wiki/Factor_(programming_language) "Factor (programming language)"), Onyx, [PostScript](/wiki/PostScript "PostScript"), [RPL](/wiki/RPL_(programming_language) "RPL (programming language)"), Staapl,[[9]](#cite_note-Staapl-9) and experimental and discontinued ones including: Enchilada,[[10]](#cite_note-Enchilada-10) Om,[[11]](#cite_note-Om-11) XY.[[12]](#cite_note-XY-12)
|
||
|
||
Most existing concatenative languages are [stack-based](/wiki/Stack-oriented_programming "Stack-oriented programming"). This is not required, and other models have been proposed.[[12]](#cite_note-XY-12)[[10]](#cite_note-Enchilada-10)[[11]](#cite_note-Om-11) Concatenative languages are currently used for [embedded](/wiki/Embedded_system "Embedded system"),[[9]](#cite_note-Staapl-9) [desktop](/wiki/Application_software "Application software"), and [web programming](/wiki/Web_development "Web development"), as [target languages](/wiki/Translator_(computing) "Translator (computing)"), and for research purposes.
|
||
|
||
Most concatenative languages are [dynamically typed](/wiki/Dynamically_typed "Dynamically typed"). Exceptions include the [statically typed](/wiki/Statically_typed "Statically typed") Cat language[[13]](#cite_note-13) and its successor, Kitten.[[14]](#cite_note-14)
|
||
|
||
## See also
|
||
|
||
[[edit](/w/index.php?title=Concatenative_programming_language&action=edit§ion=4 "Edit section: See also")]
|
||
|
||
* [Function-level programming](/wiki/Function-level_programming "Function-level programming")
|
||
* [Homoiconicity](/wiki/Homoiconicity "Homoiconicity")
|
||
* [Stack-oriented programming language](/wiki/Stack-oriented_programming_language "Stack-oriented programming language")
|
||
* [Tacit programming](/wiki/Tacit_programming "Tacit programming")
|
||
|
||
## References
|
||
|
||
[[edit](/w/index.php?title=Concatenative_programming_language&action=edit§ion=5 "Edit section: References")]
|
||
|
||
1. **[^](#cite_ref-dobbscodetalk_1-0)** Diggins, Christopher (2008-12-31). ["What is a concatenative language"](http://drdobbs.com/blogs/architecture-and-design/228701299). *[Dr. Dobb's Journal](/wiki/Dr._Dobb%27s_Journal "Dr. Dobb's Journal")*. Retrieved 2013-07-01.
|
||
2. **[^](#cite_ref-2)** ["Name code not values"](http://concatenative.org/wiki/view/Concatenative%20language/Name%20code%20not%20values). Concatenative.org. Retrieved 13 September 2013.
|
||
3. **[^](#cite_ref-3)** ["Concatenative language"](http://concatenative.org/wiki/view/Concatenative%20language). Concatenative.org. Retrieved 13 September 2013.
|
||
4. **[^](#cite_ref-4)** ["Rationale for Joy, a functional language"](https://web.archive.org/web/20110115151536/http://www.latrobe.edu.au/philosophy/phimvt/joy/j00rat.html). Archived from [the original](http://www.latrobe.edu.au/philosophy/phimvt/joy/j00rat.html) on 2011-01-15.
|
||
5. ^ [***a***](#cite_ref-whymatters_5-0) [***b***](#cite_ref-whymatters_5-1) Purdy, Jon (12 February 2012). ["Why Concatenative Programming Matters"](http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programming-matters.html). *The Big Mud Puddle*. Retrieved 12 August 2025.
|
||
6. **[^](#cite_ref-6)** von Thun, Manfred (2011). ["Joy compared with other functional languages"](https://web.archive.org/web/20111006225512/http://www.latrobe.edu.au/phimvt/joy/j08cnt.html). Archived from [the original](http://www.latrobe.edu.au/phimvt/joy/j08cnt.html) on 2011-10-06.
|
||
7. **[^](#cite_ref-7)** von Thun, Manfred (2009). ["Mathematical foundations of Joy"](https://web.archive.org/web/20100731060810/http://www.latrobe.edu.au/philosophy/phimvt/joy/j02maf.html). Archived from [the original](http://www.latrobe.edu.au/philosophy/phimvt/joy/j02maf.html) on 2010-07-31.
|
||
8. **[^](#cite_ref-8)** Baker, Henry (1993). [Linear Logic and Permutation Stacks: The Forth Shall Be First](https://web.archive.org/web/20140724091729/http://home.pipeline.com/~hbaker1/ForthStack.html) (Report). Nimble Computer Corporation. Archived from [the original](http://home.pipeline.com/~hbaker1/ForthStack.html) on 2014-07-24. Retrieved 2013-07-01 – via Home.pipeline.com.
|
||
9. ^ [***a***](#cite_ref-Staapl_9-0) [***b***](#cite_ref-Staapl_9-1) Schouten, Tom (zwizwa). ["Staapl: Forth on Scheme for Embedded Controllers"](http://zwizwa.be/staapl/). *Zwizwa LLC*. Retrieved 12 August 2025.
|
||
10. ^ [***a***](#cite_ref-Enchilada_10-0) [***b***](#cite_ref-Enchilada_10-1) rapido; NewDave; jacintheford; goren (2 January 2024). ["Enchilada"](https://concatenative.org/wiki/view/Enchilada). *Concatenative.org*. Retrieved 12 August 2025.
|
||
11. ^ [***a***](#cite_ref-Om_11-0) [***b***](#cite_ref-Om_11-1) sparist. ["The Om Programming Language"](https://www.om-language.com/). *Om-language.com*. Retrieved 12 August 2025.
|
||
12. ^ [***a***](#cite_ref-XY_12-0) [***b***](#cite_ref-XY_12-1) Apter, Stevan (2004). ["The Concatenative Language XY"](http://www.nsl.com/k/xy/xy.htm). *no stinking loops*. Retrieved 12 August 2025.
|
||
13. **[^](#cite_ref-13)** ["Cat Specification"](https://web.archive.org/web/20150205081218/http://cat-language.com/manual.html). Cat-language.com. Archived from [the original](http://www.cat-language.com/manual.html) on 2015-02-05. Retrieved 2013-07-01.
|
||
14. **[^](#cite_ref-14)** Purdy, Jon. ["Kitten Programming Language"](https://kittenlang.org/). *kittenlang.org*. Retrieved 2025-03-31.[*[dead link](/wiki/Wikipedia:Link_rot "Wikipedia:Link rot")*]
|
||
|
||
## External links
|
||
|
||
[[edit](/w/index.php?title=Concatenative_programming_language&action=edit§ion=6 "Edit section: External links")]
|
||
|
||
* [Concatenative.org: Wiki](http://www.concatenative.org/), about concatenative programming
|
||
|
||
| * [v](/wiki/Template:Programming_paradigms_navbox "Template:Programming paradigms navbox") * [t](/wiki/Template_talk:Programming_paradigms_navbox "Template talk:Programming paradigms navbox") * [e](/wiki/Special:EditPage/Template:Programming_paradigms_navbox "Special:EditPage/Template:Programming paradigms navbox") [Programming paradigms](/wiki/Programming_paradigm "Programming paradigm") | |
|
||
| --- | --- |
|
||
| [Imperative](/wiki/Imperative_programming "Imperative programming") | | | | | --- | --- | | [Structured](/wiki/Structured_programming "Structured programming") | * [Jackson structures](/wiki/Jackson_structured_programming "Jackson structured programming") * [Block-structured](/wiki/Block_(programming) "Block (programming)") * [Modular](/wiki/Modular_programming "Modular programming") * [Non-structured](/wiki/Non-structured_programming "Non-structured programming") * [Procedural](/wiki/Procedural_programming "Procedural programming") * [Programming in the large and in the small](/wiki/Programming_in_the_large_and_programming_in_the_small "Programming in the large and programming in the small") * [Design by contract](/wiki/Design_by_contract "Design by contract") * [Invariant-based](/wiki/Invariant-based_programming "Invariant-based programming") * [Nested function](/wiki/Nested_function "Nested function") | | [Object-oriented](/wiki/Object-oriented_programming "Object-oriented programming") | * [Class-based](/wiki/Class-based_programming "Class-based programming"), [Prototype-based](/wiki/Prototype-based_programming "Prototype-based programming"), [Object-based](/wiki/Object-based_language "Object-based language") * [Agent](/wiki/Agent-oriented_programming "Agent-oriented programming") * [Immutable object](/wiki/Immutable_object "Immutable object") * [Persistent](/wiki/Persistent_programming_language "Persistent programming language") * [Uniform function call syntax](/wiki/Uniform_function_call_syntax "Uniform function call syntax") | |
|
||
| [Declarative](/wiki/Declarative_programming "Declarative programming") | | | | | --- | --- | | [Functional](/wiki/Functional_programming "Functional programming") | * [Recursive](/wiki/Recursion_(computer_science) "Recursion (computer science)") * [Anonymous function](/wiki/Anonymous_function "Anonymous function") ([Partial application](/wiki/Partial_application "Partial application")) * [Higher-order](/wiki/Higher-order_programming "Higher-order programming") * [Purely functional](/wiki/Purely_functional_programming "Purely functional programming") * [Total](/wiki/Total_functional_programming "Total functional programming") * [Strict](/wiki/Strict_programming_language "Strict programming language") * [GADTs](/wiki/Generalized_algebraic_data_type "Generalized algebraic data type") * [Dependent types](/wiki/Dependent_type "Dependent type") * [Functional logic](/wiki/Functional_logic_programming "Functional logic programming") * [Point-free style](/wiki/Tacit_programming "Tacit programming") * [Expression-oriented](/wiki/Expression-oriented_programming_language "Expression-oriented programming language") * [Applicative](/wiki/Applicative_programming_language "Applicative programming language"), Concatenative * [Function-level](/wiki/Function-level_programming "Function-level programming"), [Value-level](/wiki/Value-level_programming "Value-level programming") * [Monad](/wiki/Monad_(functional_programming) "Monad (functional programming)") | | [Dataflow](/wiki/Dataflow_programming "Dataflow programming") | * [Flow-based](/wiki/Flow-based_programming "Flow-based programming") * [Reactive](/wiki/Reactive_programming "Reactive programming") ([Functional reactive](/wiki/Functional_reactive_programming "Functional reactive programming")) * [Signals](/wiki/SIGNAL_(programming_language) "SIGNAL (programming language)") * [Streams](/wiki/Stream_processing "Stream processing") * [Synchronous](/wiki/Synchronous_programming_language "Synchronous programming language") | | [Logic](/wiki/Logic_programming "Logic programming") | * [Abductive logic](/wiki/Abductive_logic_programming "Abductive logic programming") * [Answer set](/wiki/Answer_set_programming "Answer set programming") * [Constraint](/wiki/Constraint_programming "Constraint programming") ([Constraint logic](/wiki/Constraint_logic_programming "Constraint logic programming")) * [Inductive logic](/wiki/Inductive_logic_programming "Inductive logic programming") * [Nondeterministic](/wiki/Nondeterministic_programming "Nondeterministic programming") * [Ontology](/wiki/Ontology_language "Ontology language") * [Probabilistic logic](/wiki/Probabilistic_logic_programming "Probabilistic logic programming") * [Query](/wiki/Query_language "Query language") | | [Domain- specific language](/wiki/Domain-specific_language "Domain-specific language") (DSL) | * [Algebraic modeling](/wiki/Algebraic_modeling_language "Algebraic modeling language") * [Array](/wiki/Array_programming "Array programming") * [Automata-based](/wiki/Automata-based_programming "Automata-based programming") ([Action](/wiki/Action_language "Action language")) * [Command](/wiki/Command_language "Command language") ([Spacecraft](/wiki/Spacecraft_command_language "Spacecraft command language")) * [Differentiable](/wiki/Differentiable_programming "Differentiable programming") * [End-user](/wiki/End-user_development "End-user development") * [Grammar-oriented](/wiki/Grammar-oriented_programming "Grammar-oriented programming") * [Interface description](/wiki/Interface_description_language "Interface description language") * [Language-oriented](/wiki/Language-oriented_programming "Language-oriented programming") * [List comprehension](/wiki/List_comprehension "List comprehension") * [Low-code](/wiki/Low-code_development_platform "Low-code development platform") * [Modeling](/wiki/Modeling_language "Modeling language") * [Natural language](/wiki/Natural_language_programming "Natural language programming") * [Non-English-based](/wiki/Non-English-based_programming_languages "Non-English-based programming languages") * [Page description](/wiki/Page_description_language "Page description language") * [Pipes](/wiki/Pipeline_(software) "Pipeline (software)") and [filters](/wiki/Filter_(software) "Filter (software)") * [Probabilistic](/wiki/Probabilistic_programming "Probabilistic programming") * [Quantum](/wiki/Quantum_programming "Quantum programming") * [Scientific](/wiki/Scientific_programming_language "Scientific programming language") * [Scripting](/wiki/Scripting_language "Scripting language") * [Set-theoretic](/wiki/Set_theoretic_programming "Set theoretic programming") * [Simulation](/wiki/Simulation_language "Simulation language") * [Stack-based](/wiki/Stack-oriented_programming "Stack-oriented programming") * [System](/wiki/System_programming_language "System programming language") * [Tactile](/wiki/Tactile_programming_language "Tactile programming language") * [Templating](/wiki/Template_processor "Template processor") * [Transformation](/wiki/Transformation_language "Transformation language") ([Graph rewriting](/wiki/Graph_rewriting "Graph rewriting"), [Production](/wiki/Production_system_(computer_science) "Production system (computer science)"), [Pattern](/wiki/Pattern_matching "Pattern matching")) * [Visual](/wiki/Visual_programming_language "Visual programming language") | |
|
||
| [Concurrent](/wiki/Concurrent_computing "Concurrent computing"), [parallel](/wiki/Parallel_computing "Parallel computing") | * [Actor-based](/wiki/Actor_model "Actor model") * [Automatic mutual exclusion](/wiki/Automatic_mutual_exclusion "Automatic mutual exclusion") * [Choreographic programming](/wiki/Choreographic_programming "Choreographic programming") * [Concurrent logic](/wiki/Concurrent_logic_programming "Concurrent logic programming") ([Concurrent constraint logic](/wiki/Concurrent_constraint_logic_programming "Concurrent constraint logic programming")) * [Concurrent OO](/wiki/Concurrent_object-oriented_programming "Concurrent object-oriented programming") * [Macroprogramming](/wiki/Macroprogramming "Macroprogramming") * [Multitier programming](/wiki/Multitier_programming "Multitier programming") * [Organic computing](/wiki/Organic_computing "Organic computing") * [Parallel programming models](/wiki/Parallel_programming_model "Parallel programming model") * [Partitioned global address space](/wiki/Partitioned_global_address_space "Partitioned global address space") * [Process-oriented](/wiki/Process-oriented_programming "Process-oriented programming") * [Relativistic programming](/wiki/Relativistic_programming "Relativistic programming") * [Service-oriented](/wiki/Service-oriented_programming "Service-oriented programming") * [Structured concurrency](/wiki/Structured_concurrency "Structured concurrency") |
|
||
| [Metaprogramming](/wiki/Metaprogramming "Metaprogramming") | * [Attribute-oriented](/wiki/Attribute-oriented_programming "Attribute-oriented programming") * [Automatic](/wiki/Automatic_programming "Automatic programming") ([Inductive](/wiki/Inductive_programming "Inductive programming")) * [Dynamic](/wiki/Dynamic_programming_language "Dynamic programming language") * [Extensible](/wiki/Extensible_programming "Extensible programming") * [Generic](/wiki/Generic_programming "Generic programming") * [Homoiconicity](/wiki/Homoiconicity "Homoiconicity") * [Interactive](/wiki/Interactive_programming "Interactive programming") * [Macro](/wiki/Macro_(computer_science) "Macro (computer science)") ([Hygienic](/wiki/Hygienic_macro "Hygienic macro")) * [Metalinguistic abstraction](/wiki/Metalinguistic_abstraction "Metalinguistic abstraction") * [Multi-stage](/wiki/Multi-stage_programming "Multi-stage programming") * [Program synthesis](/wiki/Program_synthesis "Program synthesis") ([Bayesian](/wiki/Bayesian_program_synthesis "Bayesian program synthesis"), [by demonstration](/wiki/Programming_by_demonstration "Programming by demonstration"), [by example](/wiki/Programming_by_example "Programming by example"), [vibe coding](/wiki/Vibe_coding "Vibe coding")) * [Reflective](/wiki/Reflective_programming "Reflective programming") * [Self-modifying code](/wiki/Self-modifying_code "Self-modifying code") * [Symbolic](/wiki/Symbolic_programming "Symbolic programming") * [Template](/wiki/Template_metaprogramming "Template metaprogramming") |
|
||
| [Separation of concerns](/wiki/Separation_of_concerns "Separation of concerns") | * [Aspects](/wiki/Aspect-oriented_programming "Aspect-oriented programming") * [Components](/wiki/Component-based_software_engineering "Component-based software engineering") * [Data-driven](/wiki/Data-driven_programming "Data-driven programming") * [Data-oriented](/wiki/Data-oriented_design "Data-oriented design") * [Event-driven](/wiki/Event-driven_programming "Event-driven programming") * [Features](/wiki/Feature-oriented_programming "Feature-oriented programming") * [Literate](/wiki/Literate_programming "Literate programming") * [Roles](/wiki/Role-oriented_programming "Role-oriented programming") * [Subjects](/wiki/Subject-oriented_programming "Subject-oriented programming") |
|
||
| Comparisons/Lists | [Comparison](/wiki/Comparison_of_programming_languages "Comparison of programming languages") ([multi-paradigm](/wiki/Comparison_of_multi-paradigm_programming_languages "Comparison of multi-paradigm programming languages"), [object-oriented](/wiki/Comparison_of_programming_languages_(object-oriented_programming) "Comparison of programming languages (object-oriented programming)"), [functional](/wiki/Comparison_of_functional_programming_languages "Comparison of functional programming languages")), [List](/wiki/List_of_programming_languages "List of programming languages") ([OO](/wiki/List_of_object-oriented_programming_languages "List of object-oriented programming languages"), [by type](/wiki/List_of_programming_languages_by_type "List of programming languages by type")) |
|
||
|
||
| * [v](/wiki/Template:Types_of_programming_languages "Template:Types of programming languages") * [t](/wiki/Template_talk:Types_of_programming_languages "Template talk:Types of programming languages") * [e](/wiki/Special:EditPage/Template:Types_of_programming_languages "Special:EditPage/Template:Types of programming languages") [Types of programming languages](/wiki/Programming_paradigm "Programming paradigm") | |
|
||
| --- | --- |
|
||
| Level | * [Machine](/wiki/Machine_code "Machine code") * [Assembly](/wiki/Assembly_language "Assembly language") * [Compiled](/wiki/Compiled_language "Compiled language") * [Interpreted](/wiki/Interpreted_language "Interpreted language") * [Low-level](/wiki/Low-level_programming_language "Low-level programming language") * [High-level](/wiki/High-level_programming_language "High-level programming language") * [Very high-level](/wiki/Very_high-level_programming_language "Very high-level programming language") * [Esoteric](/wiki/Esoteric_programming_language "Esoteric programming language") |
|
||
| [Generation](/wiki/Programming_language_generations "Programming language generations") | * [First](/wiki/First-generation_programming_language "First-generation programming language") * [Second](/wiki/Second-generation_programming_language "Second-generation programming language") * [Third](/wiki/Third-generation_programming_language "Third-generation programming language") * [Fourth](/wiki/Fourth-generation_programming_language "Fourth-generation programming language") * [Fifth](/wiki/Fifth-generation_programming_language "Fifth-generation programming language") |
|
||
|
||

|
||
|
||
Retrieved from "<https://en.wikipedia.org/w/index.php?title=Concatenative_programming_language&oldid=1337586589>"
|
||
|
||
[Category](/wiki/Help:Category "Help:Category"):
|
||
|
||
* [Concatenative programming languages](/wiki/Category:Concatenative_programming_languages "Category:Concatenative programming languages")
|
||
|
||
Hidden categories:
|
||
|
||
* [All articles with dead external links](/wiki/Category:All_articles_with_dead_external_links "Category:All articles with dead external links")
|
||
* [Articles with dead external links from February 2026](/wiki/Category:Articles_with_dead_external_links_from_February_2026 "Category:Articles with dead external links from February 2026")
|
||
* [Articles with short description](/wiki/Category:Articles_with_short_description "Category:Articles with short description")
|
||
* [Short description matches Wikidata](/wiki/Category:Short_description_matches_Wikidata "Category:Short description matches Wikidata")
|
||
* [Articles with example JavaScript code](/wiki/Category:Articles_with_example_JavaScript_code "Category:Articles with example JavaScript code")
|
||
|
||
* This page was last edited on 10 February 2026, at 09:59 (UTC).
|
||
* Text is available under the [Creative Commons Attribution-ShareAlike 4.0 License](/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License "Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License");
|
||
additional terms may apply. By using this site, you agree to the [Terms of Use](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use "foundation:Special:MyLanguage/Policy:Terms of Use") and [Privacy Policy](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy "foundation:Special:MyLanguage/Policy:Privacy policy"). Wikipedia® is a registered trademark of the [Wikimedia Foundation, Inc.](https://wikimediafoundation.org/), a non-profit organization.
|
||
|
||
* [Privacy policy](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy)
|
||
* [About Wikipedia](/wiki/Wikipedia:About)
|
||
* [Disclaimers](/wiki/Wikipedia:General_disclaimer)
|
||
* [Contact Wikipedia](//en.wikipedia.org/wiki/Wikipedia:Contact_us)
|
||
* [Legal & safety contacts](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Legal:Wikimedia_Foundation_Legal_and_Safety_Contact_Information)
|
||
* [Code of Conduct](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct)
|
||
* [Developers](https://developer.wikimedia.org)
|
||
* [Statistics](https://stats.wikimedia.org/#/en.wikipedia.org)
|
||
* [Cookie statement](https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement)
|
||
* [Mobile view](//en.wikipedia.org/w/index.php?title=Concatenative_programming_language&mobileaction=toggle_view_mobile)
|
||
|
||
* [](https://www.wikimedia.org/)
|
||
* [](https://www.mediawiki.org/)
|
||
|
||
Search
|
||
|
||
Search
|
||
|
||
Toggle the table of contents
|
||
|
||
Concatenative programming language
|
||
|
||
5 languages
|
||
[Add topic](#) |