New extension for the TXL language : ETXL

What is TXL ?
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.

What is ETXL ?
ETXL is the prototype implementation of the ideas developed in Adrian Thurston's Master's Thesis. He 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.

For a general view of TXL

Adrian Thurston's Master's Thesis

In a few words, it simply rocks !

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Can you summarize the differences between ETXL and TXL?

ETXL provides 9 enhancements to basic TXL

Must-Match Rules
A rewrite rule must be used at least once, the user is informed if it is not the case.

Objectless Rules
Generally rules apply on sub trees, but it is not always the case. This kind of rule is now explicitly supported.

Strong Typing
Rules can now apply only on specific tree type instead of any tree type.

Nested Rules
You can declare rule inside rule.
You have better encapsulation and local variables direct access.

Rule Parameters
Rule can now take parameters, specifying for example the search strategy.

Type Parameters
It is a first step towards genericity in the rule and function implementation.

If Clauses
Explicit clause to branch among rules instead of a linear pattern matching following the order the rules are written.

Out Parameters
Allow a function to return several deconstructed nodes that can be used in the calling rule or function.

Export and import of definitions to avoid name clashing.

This is a brief summary of the section 3 of this document :