TXL - A Language for Programming Language Tools and Applications

@article{Cordy2004TXLA,
  title={TXL - A Language for Programming Language Tools and Applications},
  author={J. Cordy},
  journal={Electron. Notes Theor. Comput. Sci.},
  year={2004},
  volume={110},
  pages={3-31}
}
  • J. Cordy
  • Published 2004
  • Computer Science
  • Electron. Notes Theor. Comput. Sci.
TXL is a special-purpose programming language designed for creating, manipulating and rapidly prototyping language descriptions, tools and applications. TXL is designed to allow explicit programmer control over the interpretation, application, order and backtracking of both parsing and rewriting rules. Using first order functional programming at the higher level and term rewriting at the lower level, TXL provides for flexible programming of traversals, strategies, guards, scope of application… Expand
Source transformation, analysis and generation in TXL
TLDR
A practical introduction to using TXL in rapidly developing source transformations from concrete examples, and experience in applying TXL to a number of practical large scale applications in source code analysis, renovation and migration are reviewed. Expand
Rewritable Reference Attributed Grammars - design, implementation, and applications
TLDR
An object-oriented technique for rewriting abstract syntax trees in order to simplify compilation, Rewritable Reference Attributed Grammars (ReRAGs), which is completely declarative and supports both rewrites and computations by means of attributes. Expand
Stratego/XT 0.17. A language and toolset for program transformation
TLDR
An overview ofStratego/XT 0.17 is given, including a description of the Stratego language and XT transformation tools; a discussion of the implementation techniques and software engineering process; and a descriptionof applications built with Strate go/XT. Expand
First class grammars for language oriented programming.
TLDR
How many of the features in the LOP approach are implemented in the XMF language system are shown, the shortcomings of the implementation are described and an ex- tension to Java that would address these shortcomings are outlined. Expand
An extensibly dynamically typed object orientated language with an application to model transformations
TLDR
A large scale example of a model transformation approa ch MT implemented as a Converge DSL is shown and used as a basis for a novel change propagating m odel transformation approach PMT which explores practical approaches to this challenging pr oblem. Expand
Fusing a Transformation Language with an Open Compiler
TLDR
This paper introduces a novel and general technique for combining term-based transformation systems with existing language frontends, and presents the applicability of this technique with scripts written in Stratego that perform framework and library-specific analyses and transformations. Expand
Rewritable Reference Attributed Grammars
TLDR
ReRAGs is an object-oriented technique for rewriting abstract syntax trees in order to simplify compilation and allows compilers to be written in a high-level declarative and modular fashion, supporting language extensibility as well as reuse of modules for different compiler-related tools. Expand
Rewritable Reference Attributed Grammars
This paper presents an object-oriented technique for rewriting abstract syntax trees in order to simplify compilation. The technique, Rewritable ReferenceAttributed Grammars (ReRAGs), is completelyExpand
An Experiment in Automatic Conversion of Legacy Java Programs to C#
TLDR
The experiment in building a Java to C# transformer, Java2C#, is presented, that partially converts legacy Java code (version 1.1 or earlier) to C #. Expand
Extensible Compiler Construction
TLDR
Rewritable Reference Attributed Grammars (ReRAGs), a technique that builds on well-known software development techniques such as object-orientation, aspect-oriented software development, declarative programming, attribute grammars, and transformation systems, with synergistic effects on modularity and extensibility is presented. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 39 REFERENCES
TXL: A Rapid Prototyping System for Programming Language Dialects
TLDR
A rapid prototyping system for extensions to an existing programming language that consists of a dialect description language used to specify the syntax and semantics of extensions, and a context sensitive syntactic transducer that automatically implements the extensions by transforming source programs written using them to equivalent programs in the original unextended language. Expand
Compiling language definitions: the ASF+SDF compiler
TLDR
The ASF+SDF rewrite rule compiler generates C code, thus taking advantage of C's portability and the sophisticated optimization capabilities of current C compilers as well as avoiding potential abstract machine interface bottlenecks. Expand
Specification and automatic prototype implementation of polymorphic objects in Turing using the TXL dialect processor
TLDR
An attempt to catalogue and generalize syntactic transformations in object-oriented dialects of existing programming languages using a simple set of applicative transformation rules expressed in the TXL dialect description language. Expand
Source transformation in software engineering using the TXL transformation system
TLDR
The basic features of modern TXL are introduced and its use in a range of software engineering applications are introduced, with an emphasis on how each task can be achieved by source transformation. Expand
Stratego: A Language for Program Transformation Based on Rewriting Strategies
TLDR
Using a standard strategy for normalizing a program with a set of rewrite rules is not adequate for implementing program transformation systems, so restrictions may be necessary to apply a rule only in some phase of a transformation. Expand
ANTLR: A predicated‐LL(k) parser generator
TLDR
ANTLR is introduced, a public‐domain parser generator that combines the flexibility of hand‐coded parsing with the convenience of a parser generator, which is a component of PCCTS. Expand
An Overview of SORCERER: A Simple Tree-Parser Generator
TLDR
This paper introduces a freely available tool, SORCERER, that is more suitable for the class of translation problems lying between those solved by code-generator generators and by full source-to-source translator generators. Expand
LISP 1.5 Programmer's Manual
The LISP language is designed primarily for symbolic data processing used for symbolic calculations in differential and integral calculus, electrical circuit theory, mathematical logic, game playing,Expand
Agile Parsing in TXL
TLDR
The basic techniques of agile parsing in TXL are introduced and several industry proven techniques for exploiting agile parse in software source analysis and transformation are discussed. Expand
The GENTLE Compiler Construction System
TLDR
Gentle code automatically computes the coordinate of the “most significant” terminal of a construct, which is defined as follows: If a rule body contains one or more terminals, the position of the leftmost terminal is taken. Expand
...
1
2
3
4
...