|
ETXL Prototype Implementation
ETXLETXL is the prototype implementation of the ideas developed in my Master's Thesis. I set out to update the TXL Programming Language. The prototype is itself a TXL program that transforms ETXL to pure TXL then runs the TXL engine on the result. Thesis AbstractThis thesis is about evolving the TXL programming language. TXL was originally designed for small transformation tasks in support of an experimental approach to language design. Since its introduction, there has been a trend towards using TXL in large software analysis and renovation systems whose development require collaboration and maintainability. Also, there has been increasing diversity in TXL's application domain. Users have discovered applications unforeseen by the original designers. In response to application growth TXL must itself grow. This thesis presents nine enhancements to TXL that address problems that arise in TXL programming. We call the resulting language ETXL. Each change to the language is individually motivated using examples that detail what aspect of TXL programming we are targeting for improvement. We present the design of each solution, give the syntax and informally define the semantics. We provide examples of how the problems that motivated us are now solved in the new language and present some additional solutions that are gained by combining features. We introduce our fully functional prototype and explain how each change has been implemented. Finally, we present ETXL solutions to two problems that are representative of TXL's current usage. Language RevisionVersion 0.12 contains a language change. As of this version, if clauses implement classical if statement semantics. Also, the case statement has been added. See the report "A Closer Look at If Clause Semantics in ETXL." Download
AuthorCopyright 2004, 2005 Adrian Thurston <thurston-{@}-cs.queensu.ca>. ETXL is released under the GNU General Public License. A copy of the license is included in the distribution. It is also available from GNU. This software is provided "as is" with absolutely no warranty. |