Languages Features Creators CSV Resources Challenges Add Language
GitHub icon


TXL - Programming language

< >

TXL is a programming language created in 1985 by James Cordy.

#433on PLDB 38Years Old 265Users
0Books 0Papers 69Repos

TXL is a special-purpose programming language originally designed by Charles Halpern-Hamu and James Cordy at the University of Toronto in 1985. The acronym "TXL" originally stood for "Turing eXtender Language" after the language's original purpose, the specification and rapid prototyping of variants and extensions of the Turing programming language, but no longer has any meaningful interpretation. Modern TXL is specifically designed for creating, manipulating and rapidly prototyping language-based descriptions, tools and applications using source transformation. Read more on Wikipedia...

Example from Linguist:
% Calculator.Txl - simple numerical expression evaluator % Part I. Syntax specification define program [expression] end define define expression [term] | [expression] [addop] [term] end define define term [primary] | [term] [mulop] [primary] end define define primary [number] | ( [expression] ) end define define addop '+ | '- end define define mulop '* | '/ end define % Part 2. Transformation rules rule main replace [expression] E [expression] construct NewE [expression] E [resolveAddition] [resolveSubtraction] [resolveMultiplication] [resolveDivision] [resolveParentheses] where not NewE [= E] by NewE end rule rule resolveAddition replace [expression] N1 [number] + N2 [number] by N1 [+ N2] end rule rule resolveSubtraction replace [expression] N1 [number] - N2 [number] by N1 [- N2] end rule rule resolveMultiplication replace [term] N1 [number] * N2 [number] by N1 [* N2] end rule rule resolveDivision replace [term] N1 [number] / N2 [number] by N1 [/ N2] end rule rule resolveParentheses replace [primary] ( N [number] ) by N end rule
Example from Wikipedia:
function fact replace [number] n [number] construct nMinusOne [number] n [- 1] where n [> 1] construct factMinusOne [number] nMinusOne [fact] by n [* factMinusOne] end function function fact0 replace [number] 0 by 1 end function
korn-shell.html 路 txl.html 路 luna.html

View source

- Build the next great programming language Search Day 213 About Blog Acknowledgements Traffic Traffic Today GitHub