Abstract
The graph transformation tool GROOVE supports so-called recipes, which allow the elaboration of composite rules by gluing simple rules via a control language. This paper shows how recipes can be used to provide a complete formalization (construction) of the control flow semantics of JAVA 6. This construction covers not only basic language elements such as branches and loops, but also abrupt termination commands, such as exceptions. By handling the whole JAVA 6 language, it is shown that the method scales and can be used in real-life settings. Our implementation has two major strengths. First, all rule sequencing is handled by recipes, avoiding the need to include extraneous elements in the graphs for this purpose. Second, the approach provides rules modularization: related rules are grouped in recipes, which in turn can be used again to form larger, more elaborated recipes. This gives rise to an elegant, hierarchical rule structure built in a straightforward, compositional way.
Original language | English |
---|---|
Title of host publication | Principled Software Development |
Subtitle of host publication | Essays Dedicated to Arnd Poetzsch-Heffter on the Occasion of his 60th Birthday |
Editors | Peter Müller, Ina Schaefer |
Place of Publication | Cham |
Publisher | Springer |
Pages | 305-323 |
Number of pages | 19 |
ISBN (Electronic) | 978-3-319-98047-8 |
ISBN (Print) | 978-3-319-98046-1 |
DOIs | |
Publication status | Published - 24 Oct 2018 |
Keywords
- Java semantics
- Graph transformation
- Control flow graph
- 2023 OA procedure