Content deleted Content added
Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.8.8) (Ost316 - 10430 |
|||
(25 intermediate revisions by 18 users not shown) | |||
Line 1:
'''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)|Turing]] programming language, but no longer has any meaningful interpretation.▼
|name = TXL
|logo =
|paradigm = [[Pattern-matching]] and [[Term-rewriting]]
|designer = Charles Halpern-Hamu <br /> [[James Cordy]]
|developer = [[James Cordy]] <br /> Charles Halpern-Hamu <br /> Ian Carmichael <br /> Eric Promislow
}}
▲'''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)|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. It is a hybrid [[Functional programming|functional]] / [[rule-based programming|rule-based]] language using first order functional programming at the higher level and term rewriting at the lower level. The [[Semantics of programming languages|formal semantics]] and implementation of TXL are based on formal [[term rewriting]], but the term structures are largely hidden from the user due to the example-like style of pattern specification.
Each TXL program has two components
The first component parses the input expression into a tree using [[pattern-matching]]. The second component uses [[Term-rewriting]] in a manner similar to [[Yacc]] to produce the transformed output.
TXL is most commonly used in software analysis and reengineering tasks such as [[reengineering (software)|design recovery]], and in rapid prototyping of new [[programming languages]] and dialects.▼
▲TXL is most commonly used in software analysis and reengineering tasks such as [[reengineering (software)|design recovery]], and in rapid prototyping of new [[programming languages]] and dialects.
%Syntax specification
define program
Line 26 ⟶ 34:
end rule
%Syntax specification
define program
Line 59 ⟶ 67:
1
end function
== See also ==▼
* [[Turing (programming language)]]
* [[Refal | Refal (programming language)]]
* [[DMS Software Reengineering Toolkit]]
* [[Program transformation]]
== References ==
{{Reflist}}
*[http://portal.acm.org/citation.cfm?id=114627.115074 J.R. Cordy, C.D. Halpern and E. Promislow, 1991. TXL: A Rapid Prototyping System for Programming Language Dialects. Computer Languages 16,1 (January 1991), 97-107.]
*[http://portal.acm.org/citation.cfm?id=1149672 J.R. Cordy, 2006. The TXL Source Transformation Language. Science of Computer Programming 61,3 (August 2006), 190-210.]
▲== See also ==
▲* [[Turing (programming language)]]
== External links ==
*[http://www.txl.ca/ TXL website]
[[Category:Programming languages]]▼
[[Category:Functional languages]]
[[Category:Term-rewriting programming languages]]
|