Files
forth_bootslop/references/ForthNotes/Wikipedia.md
2026-02-19 16:16:24 -05:00

275 lines
32 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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]")
[![](/static/images/icons/enwiki-25.svg)
![Wikipedia](/static/images/mobile/copyright/wikipedia-wordmark-en-25.svg)
![The Free Encyclopedia](/static/images/mobile/copyright/wikipedia-tagline-en-25.svg)](/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&section=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&section=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&section=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&section=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&section=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&section=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") |
![](https://en.wikipedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&type=1x1&usesul3=1)
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)
* [![Wikimedia Foundation](/static/images/footer/wikimedia.svg)](https://www.wikimedia.org/)
* [![Powered by MediaWiki](/w/resources/assets/mediawiki_compact.svg)](https://www.mediawiki.org/)
Search
Search
Toggle the table of contents
Concatenative programming language
5 languages
[Add topic](#)