Recipes for Coffee: Compositional Construction of Jave Control Flow Graphs in GROOVE

Eduardo Zambon, Arend Rensink

    Research output: Chapter in Book/Report/Conference proceedingChapterAcademicpeer-review

    1 Citation (Scopus)
    147 Downloads (Pure)


    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 languageEnglish
    Title of host publicationPrincipled Software Development
    Subtitle of host publicationEssays Dedicated to Arnd Poetzsch-Heffter on the Occasion of his 60th Birthday
    EditorsPeter Müller, Ina Schaefer
    Place of PublicationCham
    Number of pages19
    ISBN (Electronic)978-3-319-98047-8
    ISBN (Print)978-3-319-98046-1
    Publication statusPublished - 24 Oct 2018


    • Java semantics
    • Graph transformation
    • Control flow graph
    • 2023 OA procedure


    Dive into the research topics of 'Recipes for Coffee: Compositional Construction of Jave Control Flow Graphs in GROOVE'. Together they form a unique fingerprint.

    Cite this