|
ABSTRACT
The TXL transformation framework has been widely used in practical source transformation tasks in industry and academia for many years. At the core of the framework is the TXL language, a functional programming language specifically designed for expressing source transformation tasks. TXL programs are self-contained, specifying and implementing all aspects of parsing, pattern matching, transformation rules, application strategies and unparsing in a single uniform notation with no dependence on other tools or technologies. Programs are directly interpreted by the TXL processor without any compile or build step, making it particularly well suited to rapid turnaround, test-driven development. In this paper we provide a practical introduction to using TXL in rapidly developing source transformations from concrete examples, and review experience in applying TXL to a number of practical large scale applications in source code analysis, renovation and migration.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
|
| |
3
|
|
 |
4
|
|
| |
5
|
Mark G. J. van den Brand , Arie van Deursen , Jan Heering , H. A. de Jong , Merijn de Jonge , Tobias Kuipers , Paul Klint , Leon Moonen , Pieter A. Olivier , Jeroen Scheerder , Jurgen J. Vinju , Eelco Visser , Joost Visser, The ASF+SDF Meta-environment: A Component-Based Language Development Environment, Proceedings of the 10th International Conference on Compiler Construction, p.365-370, April 02-06, 2001
|
| |
6
|
T. Cassidy, J. R. Cordy, T. Dean and J. Dingel, "Source Transformation for Concurrency Analysis", Proc. LDTA 2005, ACM 5th International Workshop on Language Descriptions, Tools and Applications, 26--43 (2005).
|
| |
7
|
J. R. Cordy, "TXL - A Language for Programming Language Tools and Applications", Proc. LDTA 2004, ACM 4th International Workshop on Language Descriptions, Tools and Applications, Electronic Notes in Theoretical Computer Science110, 3--31 (2004).
|
| |
8
|
J. R. Cordy, I. H. Carmichael and R. Halliday, The TXL Programming Language, Queen's University at Kingston (1988, rev. 2005).
|
| |
9
|
J. R. Cordy and E. M. Promislow, "Specification and Automatic Prototype Implementation of Polymorphic Objects in Turing Using the TXL Dialect Processor", Proc. 1990 IEEE International Conference on Computer Languages, 145--154 (1990).
|
| |
10
|
|
| |
11
|
|
| |
12
|
J. R. Cordy, T. R. Dean, A. J. Malton and K. A. Schneider, "Source Transformation in Software Engineering using the TXL Transformation System", Journal of Information and Software Technology44(13), 827--837 (2002).
|
| |
13
|
|
| |
14
|
|
| |
15
|
|
 |
16
|
|
| |
17
|
|
| |
18
|
X. Guo, J. R. Cordy and T. R. Dean, "Unique Renaming of Java Using Source Transformation", Proc. SCAM 2003, IEEE 3rd International Workshop on Source Code Analysis and Manipulation, 151--160 (2003).
|
| |
19
|
C. Halpern, "TXL: A Rapid Prototyping Tool for Programming Language Design", M.Sc. thesis, Department of Computer Science, University of Toronto (1986).
|
 |
20
|
|
| |
21
|
N. Kiyavitskaya, N. Zeni, J. R. Cordy, L. Mich and J. Mylopoulos, "Applying Software Analysis Technology to Lightweight Semantic Markup of Document Text", Proc. ICAPR 2005, 3rd International Conference on Advances in Pattern Recognition, Lecture Notes in Computter Science3686, 590--600 (2005).
|
| |
22
|
|
| |
23
|
A. J. Malton, "The Denotational Semantics of a Functional Tree Manipulation Language", Computer Languages19(3), 157--168 (1993).
|
| |
24
|
|
| |
25
|
|
| |
26
|
R. Paige, "APTS External Specification Manual", Unpublished manuscript, available at http://www.cs.nyu.edu/jessie (1993).
|
 |
27
|
|
| |
28
|
O. Tal, S. Knight, and T. Dean, "Syntax-based Vulnerability Testing of Frame-based Network Protocols", Proc. 2nd Annual Conference on Privacy, Security and Trust (2004).
|
| |
29
|
|
| |
30
|
|
| |
31
|
E. Visser, "Program Transformation in Stratego/XT: Rules, Strategies, Tools and Systems in Stratego XT/0.9", Proc. Domain Specific Program Generation 2003, Lecture Notes in Computer Science3016, 216--238 (2004).
|
| |
32
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.1
PROGRAMMING TECHNIQUES
D.1.1
Applicative (Functional) Programming
Additional Classification:
D.
Software
D.1
PROGRAMMING TECHNIQUES
D.1.2
Automatic Programming
D.2
SOFTWARE ENGINEERING
D.2.7
Distribution, Maintenance, and Enhancement
Subjects:
Restructuring, reverse engineering, and reengineering
D.3
PROGRAMMING LANGUAGES
D.3.3
Language Constructs and Features
Subjects:
Patterns
D.3.4
Processors
General Terms:
Algorithms,
Design,
Languages
Keywords:
TXL,
migration,
rapid prototyping,
re-engineering,
rule-based programming,
software analysis,
source transformation,
term rewriting,
test-driven development,
translators
|