A '''concatenative programming language''' is one in which all terms denote [[Function (mathematics)|functions]] and the juxtaposition of terms denotes [[function composition]].{{Dead link|date=May 2010}}<ref name="dobbscodetalk">[http://dobbscodetalkwww.drdobbs.com/index.php?option=com_myblog&show=What-is-a-Concatenative-Languageblog/archives/2008/12/what_is_a_conca.html&Itemid=29 Christopher Diggins: What is a concatenative language]</ref> The combination of a compositional [[semantics]] with a [[Syntax of programming languages|syntax]] that mirrors such a semantics makes concatenative languages highly amenable to algebraic manipulation and formal analysis.<ref>[http://www.latrobe.edu.au/philosophy/phimvt/joy/j00rat.html Rationale for Joy, a functional language]</ref>
Much of the original work on concatenative language theory was carried out by [[Manfred von Thun]].