Tree Transformation Language
<functional language, rule-based language> (TXL) A hybrid
functional language and rule-based language developed by J.R. Cordy <
[email protected]> et al of
Queen's University, Canada in 1988.
TXL is suitable for performing source to source analysis and transformation and for rapidly prototyping new languages and language processors.
It uses structural transformation based on term rewriting.
TXL has been particularly successful in
software engineering tasks such as
design recovery,
refactoring, and reengineering.
Most recently it has been applied to
artificial intelligence tasks such as recognition of hand-written mathematics, and to transformation of structured documents in
XML.
TXL takes as input an arbitrary context-free grammar in
extended BNF-like notation, and a set of show-by-example transformation rules to be applied to inputs parsed using the grammar.
TXL supports the notion of agile parsing, the ability to tailor the grammar to each particular task using "grammar overrides".
Current version: FreeTXL 10.3, as of 2003-10-26.
TXL Home (http://www.txl.ca/).
["TXL: A Rapid Prototyping System for Programming Language Dialects", J.R. Cordy, C.D.; Halpern and D. Promislow, Computer Languages, Vol. 16, No. 1, January 1991, pp 97-107]
["Source Transformation in Software Engineering using the TXL Transformation System", J.R. Cordy, T.R. Dean, A.J. Malton and K.A. Schneider, Journal of Information and Software Technology, Vol. 44, No. 13, October 2002, pp 827-837]
["Recognizing Mathematical Expressions Using Tree Transformation", R. Zanibbi, D. Blostein and J.R. Cordy, IEEE Transactions on Pattern Analysis & Machine Intelligence, Vol. 24, No. 11, November 2002, pp 1455-1467]
["Agile Parsing in TXL", T.R. Dean, J.R. Cordy, A.J. Malton and K.A. Schneider, Journal of Automated Software Engineering, Vol. 10, No. 4, October 2003, pp 311-336]