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

    Abstract

    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
    PublisherSpringer
    Pages30-40
    ISBN (Electronic)978-3-319-74730-9
    ISBN (Print)978-3-319-74729-3
    DOIs
    Publication statusPublished - Jul 2017
    EventSoftware Technologies: Applications and Foundations - Technologie- und Tagungszentrum Marburg (TTZ), Marburg, Germany
    Duration: 17 Jul 201721 Jul 2017
    http://www.informatik.uni-marburg.de/staf2017/

    Publication series

    NameLecture Nodes in Computer Science
    PublisherSpringer
    Volume10748
    ISSN (Print)0302-9743

    Conference

    ConferenceSoftware Technologies: Applications and Foundations
    Abbreviated titleSTAF 2017
    CountryGermany
    CityMarburg
    Period17/07/1721/07/17
    Internet address

    Fingerprint

    Interoperability
    Specifications

    Keywords

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

    Cite this

    Yildiz, B. M., Bockisch, C., Rensink, A., & Aksit, M. (2017). A Java Bytecode Metamodel for Composable Program Analyses. In M. Seidl, & S. Zschaler (Eds.), Software Technologies: Applications and Foundations: STAF 2017 Collocated Workshops, Marburg, Germany, July 17-21, 2017, Revised Selected Papers (pp. 30-40). (Lecture Nodes in Computer Science; Vol. 10748). Springer. https://doi.org/10.1007/978-3-319-74730-9_4
    Yildiz, Bugra Mehmet ; Bockisch, Christoph ; Rensink, Arend ; Aksit, Mehmet . / A Java Bytecode Metamodel for Composable Program Analyses. Software Technologies: Applications and Foundations: STAF 2017 Collocated Workshops, Marburg, Germany, July 17-21, 2017, Revised Selected Papers. editor / Martina Seidl ; Steffen Zschaler. Springer, 2017. pp. 30-40 (Lecture Nodes in Computer Science).
    @inproceedings{831063faf9324e0b91e0acdc0f45c7a5,
    title = "A Java Bytecode Metamodel for Composable Program Analyses",
    abstract = "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.",
    keywords = "Java bytecode, Metamodel, Model Transformation, Model-Driven Software Engineering, Program analyses, Composition",
    author = "Yildiz, {Bugra Mehmet} and Christoph Bockisch and Arend Rensink and Mehmet Aksit",
    year = "2017",
    month = "7",
    doi = "10.1007/978-3-319-74730-9_4",
    language = "English",
    isbn = "978-3-319-74729-3",
    series = "Lecture Nodes in Computer Science",
    publisher = "Springer",
    pages = "30--40",
    editor = "Martina Seidl and Steffen Zschaler",
    booktitle = "Software Technologies: Applications and Foundations",

    }

    Yildiz, BM, Bockisch, C, Rensink, A & Aksit, M 2017, A Java Bytecode Metamodel for Composable Program Analyses. in M Seidl & S Zschaler (eds), Software Technologies: Applications and Foundations: STAF 2017 Collocated Workshops, Marburg, Germany, July 17-21, 2017, Revised Selected Papers. Lecture Nodes in Computer Science, vol. 10748, Springer, pp. 30-40, Software Technologies: Applications and Foundations, Marburg, Germany, 17/07/17. https://doi.org/10.1007/978-3-319-74730-9_4

    A Java Bytecode Metamodel for Composable Program Analyses. / Yildiz, Bugra Mehmet; Bockisch, Christoph; Rensink, Arend ; Aksit, Mehmet .

    Software Technologies: Applications and Foundations: STAF 2017 Collocated Workshops, Marburg, Germany, July 17-21, 2017, Revised Selected Papers. ed. / Martina Seidl; Steffen Zschaler. Springer, 2017. p. 30-40 (Lecture Nodes in Computer Science; Vol. 10748).

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

    TY - GEN

    T1 - A Java Bytecode Metamodel for Composable Program Analyses

    AU - Yildiz, Bugra Mehmet

    AU - Bockisch, Christoph

    AU - Rensink, Arend

    AU - Aksit, Mehmet

    PY - 2017/7

    Y1 - 2017/7

    N2 - 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.

    AB - 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.

    KW - Java bytecode

    KW - Metamodel

    KW - Model Transformation

    KW - Model-Driven Software Engineering

    KW - Program analyses

    KW - Composition

    U2 - 10.1007/978-3-319-74730-9_4

    DO - 10.1007/978-3-319-74730-9_4

    M3 - Conference contribution

    SN - 978-3-319-74729-3

    T3 - Lecture Nodes in Computer Science

    SP - 30

    EP - 40

    BT - Software Technologies: Applications and Foundations

    A2 - Seidl, Martina

    A2 - Zschaler, Steffen

    PB - Springer

    ER -

    Yildiz BM, Bockisch C, Rensink A, Aksit M. A Java Bytecode Metamodel for Composable Program Analyses. In Seidl M, Zschaler S, editors, Software Technologies: Applications and Foundations: STAF 2017 Collocated Workshops, Marburg, Germany, July 17-21, 2017, Revised Selected Papers. Springer. 2017. p. 30-40. (Lecture Nodes in Computer Science). https://doi.org/10.1007/978-3-319-74730-9_4