Results 1 -
7 of
7
The TXL Source Transformation Language
, 2005
"... 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 rul ..."
Abstract
-
Cited by 47 (15 self)
- Add to MetaCart
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, guards, scope of application and parameterized context. This flexibility has allowed TXL users to express and experiment with both new ideas in parsing, such as robust, island and agile parsing, and new paradigms in rewriting, such as XML markup, rewriting strategies and contextualized rules, without any change to TXL itself. This paper outlines the history, evolution and concepts of TXL with emphasis on its distinctive style and philosophy, and gives examples of its use in expressing and applying recent new paradigms in language processing.
TXL - A Language for Programming Language Tools and Applications
, 2004
"... 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 rul ..."
Abstract
-
Cited by 44 (8 self)
- Add to MetaCart
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 and parameterized context. This flexibility has allowed TXL users to express and experiment with both new ideas in parsing, such as robust, island and agile parsing, and new paradigms in rewriting, such as XML markup, rewriting strategies and contextualized rules, without any change to TXL itself. In this paper I outline the history, evolution and concepts of TXL with emphasis on what makes it di#erent from other language manipulation tools, and give examples of its use in expressing and applying recent new paradigms in language processing.
Semi-automatic Update of Applications in Response to Library Changes
, 1996
"... Software libraries provide leverage in large part because they are used by many applications. As Parnas, Lampson and others have noted, stable interfaces to libraries isolate the application from changes in the libraries. That is, as long as there is no change in a library's syntax or semantics, app ..."
Abstract
-
Cited by 21 (0 self)
- Add to MetaCart
Software libraries provide leverage in large part because they are used by many applications. As Parnas, Lampson and others have noted, stable interfaces to libraries isolate the application from changes in the libraries. That is, as long as there is no change in a library's syntax or semantics, applications can use updated libraries simply by importing and linking the new version. However, libraries are indeed changed from time to time and the tedious work of adapting the application source to the library interface changes becomes a burden to multitudes of programmers. This paper introduces an approach and a toolset intended to reduce these costs. Specifically, in our approach a library maintainer annotates changed functions with rules that are used to generate tools that will update the applications that use the updated libraries. Thus, in exchange for a small added amount of work by the library maintainers, costs to each application maintainer can be reduced. We present the basic ap...
Techniques for the Interactive Development of Numerical Linear Algebra Libraries for Scientific Computation
, 1997
"... ..."
The metafront system: Safe and extensible parsing and transformation
- Science of Computer Programming
, 2007
"... We present the metafront tool for specifying flexible, safe, and efficient syntactic transformations between languages defined by context-free grammars. The transformations are guaranteed to terminate and to map grammatically legal input to grammatically legal output. We rely on a novel parser algor ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
We present the metafront tool for specifying flexible, safe, and efficient syntactic transformations between languages defined by context-free grammars. The transformations are guaranteed to terminate and to map grammatically legal input to grammatically legal output. We rely on a novel parser algorithm that is designed to support gradual extensions of a grammar by allowing productions to remain in a natural style and by statically reporting ambiguities and errors in terms of individual productions as they are being added. Our tool may be used as a parser generator in which the resulting parser automatically supports a flexible, safe, and efficient macro processor, or as an extensible lightweight compiler generator for domain-specific languages. We show substantial examples of both kinds. 1
An Environment for the Development of Numerical Programs Using MATLAB
- In this book
, 1997
"... This paper describes an environment for the development of numerical programs using MATLAB. The environment includes modules that allow MATLAB programs to be analysized and then optimized, both automatically and semi-automatically. Code generators included in the environment can generate Fortran 90, ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This paper describes an environment for the development of numerical programs using MATLAB. The environment includes modules that allow MATLAB programs to be analysized and then optimized, both automatically and semi-automatically. Code generators included in the environment can generate Fortran 90, C++, or MATLAB code once it has been optimized. 1 Introduction Scientific applications rely upon numerical algorithms to effectively utilize high-performance computers; however, the tasks required to provide an application developer with efficient algorithms can be very complex. The development of these algorithms and their effective use in application codes is an iterative process involving the refinement of the algorithms and their implementations, and the tuning of parameters to match the machine architecture and the application context. This process continues during the lifetime of the algorithm, as the algorithm and its implementation are updated. Furthermore, when the algorithm is po...
Evolving TXL
"... TXL is a functional programming language specifically designed for expressing source transformation tasks. Originally designed for the rapid prototyping of modest syntactic enhancements, in recent years it has been extensively used in large scale source code analysis and reengineering applications t ..."
Abstract
- Add to MetaCart
TXL is a functional programming language specifically designed for expressing source transformation tasks. Originally designed for the rapid prototyping of modest syntactic enhancements, in recent years it has been extensively used in large scale source code analysis and reengineering applications that are much more challenging. As a result, many common programming techniques needed in these larger scale applications are difficult or impossible to express in TXL. Examples include multi-way decisions, generic rules and functions, polymorphism and information hiding. In this paper we introduce ETXL, an experimental extension of TXL which includes convenient features designed to address these issues. Designed to be a compatible variant that remains faithful to the original TXL syntax and semantics, ETXL has itself been prototyped as a source transformation to original TXL.

