Tree Transformation Language
TXL
(TXL) A hybrid functional language and rule-based language developed by J.R. Cordy <cordy@cs.queensu.ca> et al of Queen's University, Canada in 1988. TXL is suitable for performing source to source analysis and transformation and for rapid prototyping of 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".
["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]