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

    47 Downloads (Pure)

    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 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
    PublisherSpringer
    Pages305-323
    ISBN (Electronic)978-3-319-98047-8
    ISBN (Print)978-3-319-98046-1
    DOIs
    Publication statusPublished - 24 Oct 2018

    Keywords

    • Java semantics
    • Graph transformation
    • Control flow graph

    Fingerprint 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