DOI: 10.1007/978-3-540-73449-9_5
|View full text |Cite
|
Sign up to set email alerts
|

Tom: Piggybacking Rewriting on Java

Abstract: Abstract. We present the Tom language that extends Java with the purpose of providing high level constructs inspired by the rewriting community. Tom furnishes a bridge between a general purpose language and higher level specifications that use rewriting. This approach was motivated by the promotion of rewriting techniques and their integration in large scale applications. Powerful matching capabilities along with a rich strategy language are among Tom's strong points, making it easy to use and competitive with… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
129
0
1

Publication Types

Select...
4
3

Relationship

1
6

Authors

Journals

citations
Cited by 105 publications
(132 citation statements)
references
References 16 publications
0
129
0
1
Order By: Relevance
“…The strategy expressions used in graph programs are generated by the grammar rules from the nonterminal S. A strategy expression combines applications, generated by A, and focusing operations, generated by F . The application constructs and some of the strategy constructs are strongly inspired from term rewriting languages such as Elan [11], Stratego [42] and Tom [7]. The syntax presented here is a revised and simplified version of the one used in [2,20]; the main difference is that we now have an explicit notion of banned subgraph, a more concise syntax for iterative commands and a non-deterministic construct for rule applications.…”
Section: Syntax and Informal Descriptionmentioning
confidence: 99%
See 1 more Smart Citation
“…The strategy expressions used in graph programs are generated by the grammar rules from the nonterminal S. A strategy expression combines applications, generated by A, and focusing operations, generated by F . The application constructs and some of the strategy constructs are strongly inspired from term rewriting languages such as Elan [11], Stratego [42] and Tom [7]. The syntax presented here is a revised and simplified version of the one used in [2,20]; the main difference is that we now have an explicit notion of banned subgraph, a more concise syntax for iterative commands and a non-deterministic construct for rule applications.…”
Section: Syntax and Informal Descriptionmentioning
confidence: 99%
“…These choices affect fundamental properties of computations such as laziness, strictness, completeness, termination and efficiency, to name a few (see, e.g., [43,41,28]). Used for a long time in λ-calculus [8], strategies are present in programming languages such as Clean [33], Curry [24], and Haskell [25] and can be explicitely defined to rewrite terms in languages such as Elan [11], Stratego [42], Maude [29] or Tom [7]. They are also present in graph transformation tools such as PROGRES [39], AGG [19], Fujaba [32], GROOVE [37], GrGen [21] and GP [36].…”
Section: Introductionmentioning
confidence: 99%
“…In Sect. 5 we show how this can be used to extend the target language to make it better suited for code generation. For example, we have created an extension of Java with identifier composition, interface extraction, and partial classes and methods to simplify code generation rules.…”
Section: Outlinementioning
confidence: 99%
“…However, these languages provide limited programmability for strategies controlling the application of transformation rules. In contrast, Tom [5] supports rewrite rules and strategies. Tom is implemented as an extension of Java, using a preprocessor approach to map the Tom language features to standard Java.…”
Section: Rewriting Toolsmentioning
confidence: 99%
See 1 more Smart Citation