TXL(ID:1444/txl001)


TXL is a unique programming language specifically designed to support computer software analysis and source transformation tasks. It is the evolving result of more than fifteen years of concentrated research on rule-based structural transformation as a paradigm for the rapid solution of complex computing problems.

The TXL programming language is a hybrid functional / rule-based language with unification, implied iteration and deep pattern match.

Each TXL program has two components:

A Description of the Structures to be Transformed
- Specified as a directly interpreted BNF grammar, in context-free ambiguous form.

A Set of Structural Transformation Rules
- Specified by example as pattern/replacement pairs combined using functional programming.

The TXL programming language is unique in that it is has a pure functional superstructure that provides scoping, abstraction, parameterization and recursion, over Prolog-like structural rewriting rules providing pattern search, unification and implicit iteration.

The formal semantics and implementation of TXL are based on formal tree rewriting, but the trees are largely hidden from the user due to the by-example style of rule specification.

TXL is a first-order pure functional language with embedded term rewriting. It's related to other term rewriting languages, like Stratego and Elan.

The TXL project began in 1985 with Charlie Halpern's MSc thesis, and was first published in 1988 at ICCL'88.




People:
Structures:
Related languages
Turing => TXL   Subsystem
TXL => MALPHA   Spec written in

References:
  • Cordy, J.R.; Halpern, C.D. and E. Promislow, "TXL: A Rapid Prototyping System for Programming Language Dialects", Proc. IEEE 1988 International Conference on Computer Languages, October 1988, pp. 280-285. view details pdf
  • Cordy, James R. and Promislow, Eric "Specification and automatic prototype implementation of polymorphic objects in Turing using the TXL dialect processor" view details
          in Proceedings of 1990 International Conference on Computer Languages (ICCL), March 12-15, 1990, New Orleans, IEEE Computer Society Press (Los Alamitos, CA, 1990), view details
  • Cordy, J. R.; Halpern, C. D.; and Promislaw, E. "TXL: A rapid prototyping system for programming language dialects" view details
          in Computer Languages 16(1) view details
  • Malton, Andrew J. "The Denotational Semantics of a Functional Tree-Manipulation Language" pp.157-168. view details
          in Computer Languages 19,3 (July 1993) view details
  • Sarkar, M. Shukla; Blostein, D. and Cordy, J.R. "GXL - A Graph Transformation Language with Scoping and Graph Parameters", Proc. TAGT'98 - Theory and Applications of Graph Transformations, Paderborn, Germany, November 1998 view details
          in Computer Languages 19,3 (July 1993) view details
  • Cordy, J.R.; Dean, T.R.; Malton, A.J. and Schneider, K.A. "Software Engineering by Source Transformation - Experience with TXL", Proc. SCAM'01 - IEEE 1st International Workshop on Source Code Analysis and Manipulation, Florence, November 2001, pp. 168-178. view details
          in Computer Languages 19,3 (July 1993) view details
  • Cordy, J.R.; Schneider, K.A.; Dean, T.R.; and Malton, A.J. "HSML: Design Directed Source Code Hot Spots", Proc. IWPC 2001 - IEEE 9th International Workshop on Program Comprehension, Toronto, May 2001, pp145-154. view details
          in Computer Languages 19,3 (July 1993) view details
  • Cordy, J.R.; Dean, T.R.; Malton, A.J. and Schneider, K.A. "Source Transformation in Software Engineering using the TXL Transformation System", Journal of Information and Software Technology 44,13 (October 2002), pp. 827-837. view details
          in Computer Languages 19,3 (July 1993) view details
  • Dean, T.R.; Cordy, J.R.; Malton, A.J. and Schneider, K.A. "Grammar Programming in TXL", Proc. SCAM'02 - IEEE 2nd International Workshop on Source Code Analysis and Manipulation, Montreal, October 2002, pp. 93-102. view details
          in Computer Languages 19,3 (July 1993) view details
  • Cordy, J.R. "TXL - A Language for Programming Language Tools and Applications", Proc. LDTA 2004, ACM 4th International Workshop on Language Descriptions, Tools and Applications, Barcelona, April 2004, pp. 1-27. view details
          in Computer Languages 19,3 (July 1993) view details
  • Dean, T.R.; Cordy, J.R.; Malton, A.J. and Schneider, K.A. "Agile Parsing in TXL", Journal of Automated Software Engineering 10,4 (October 2003), pp311-336 view details
          in Computer Languages 19,3 (July 1993) view details
    Resources