ETXL Prototype Implementation

ETXL

ETXL 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 Abstract

This 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 Revision

Version 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

 Version:   0.12 
 Date:   June 27, 2005 
 Change Log:   ChangeLog 
 Vim Syntax File:   etxl.vim 
 Source Tarball:   etxl-0.12.tar.gz 
 Source Zip:   etxl-0.12.zip 
 Linux x86 Binaries:   etxl-0.12-linux.tar.gz 
 Windows Binaries:   etxl-0.12-win32.zip 
 Mac OSX Binaries:   etxl-0.11-macosx.tar.gz 

Author

Copyright 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.