A Java Bytecode Metamodel for Composable Program Analyses

Bugra Mehmet Yildiz, Christoph Bockisch, Arend Rensink, Mehmet Aksit

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

    1 Citation (Scopus)


    Program analyses are an important tool to check if a system fulfills its specification. A typical implementation strategy for program analyses is to use an imperative, general-purpose language like Java; and access the program to be analyzed through libraries for manipulating intermediate code, such as ASM for Java bytecode. We show that this hampers composability, interoperability and reuse of analysis implementations.

    We propose a complete Ecore-metamodel for Java bytecode as a common basis for program analysis implementations, as well as an Eclipse plug-in to create bytecode metamodel instances from Java bytecode and vice versa. Code analyses can be defined as model transformations in a declarative, domain-specific language. As a consequence, the implementations of program analyses become more composable and more modular in general. We demonstrate the effectiveness of this approach with a case study.
    Original languageEnglish
    Title of host publicationSoftware Technologies: Applications and Foundations
    Subtitle of host publicationSTAF 2017 Collocated Workshops, Marburg, Germany, July 17-21, 2017, Revised Selected Papers
    EditorsMartina Seidl, Steffen Zschaler
    ISBN (Electronic)978-3-319-74730-9
    ISBN (Print)978-3-319-74729-3
    Publication statusPublished - Jul 2017
    EventSoftware Technologies: Applications and Foundations, STAF 2017 - Technologie- und Tagungszentrum Marburg (TTZ), Marburg, Germany
    Duration: 17 Jul 201721 Jul 2017

    Publication series

    NameLecture Notes in Computer Science
    ISSN (Print)0302-9743


    ConferenceSoftware Technologies: Applications and Foundations, STAF 2017
    Abbreviated titleSTAF 2017
    Internet address


    • Java bytecode
    • Metamodel
    • Model Transformation
    • Model-Driven Software Engineering
    • Program analyses
    • Composition


    Dive into the research topics of 'A Java Bytecode Metamodel for Composable Program Analyses'. Together they form a unique fingerprint.

    Cite this