An MDE Approach for Modular Program Analyses

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

    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 that offer an API for reading, writing and manipulating intermediate code, such as BCEL or ASM for Java bytecode. We claim that this hampers reuse and interoperability.

    In this paper, we propose an Ecore-metamodel for covering Java bytecode completely, which can act as a common basis for program analyses. Code analyses as well as instrumentations can then be defined as model transformations in a declarative language. As a consequence, the implementation of program analysis becomes more concise, more readable and more modular. We demonstrate the effectiveness of this approach by two case studies: profiling of timing performance and model checking of reachability requirements. We also provide tools to generate instances of our bytecode metamodel from Java code in the class file format and vice versa.
    Original languageEnglish
    Title of host publicationProgramming ’17
    Subtitle of host publicationCompanion to the first International Conference on the Art, Science and Engineering of Programming
    PublisherAssociation for Computing Machinery (ACM)
    Number of pages5
    ISBN (Print)978-1-4503-4836-2
    DOIs
    Publication statusPublished - Apr 2017
    EventInternational Conference on the Art, Science, and Engineering of Programming 2017 - Brussels, Belgium
    Duration: 3 Apr 20176 Apr 2017
    https://2017.programming-conference.org/

    Conference

    ConferenceInternational Conference on the Art, Science, and Engineering of Programming 2017
    Abbreviated title<Programming> 2017
    CountryBelgium
    CityBrussels
    Period3/04/176/04/17
    Internet address

    Fingerprint

    Model checking
    Application programming interfaces (API)
    Interoperability
    Specifications

    Keywords

    • Model Driven Engineering
    • Model Transformation
    • Java bytecode

    Cite this

    Yildiz, B. M., Bockisch, C., Aksit, M., & Rensink, A. (2017). An MDE Approach for Modular Program Analyses. In Programming ’17: Companion to the first International Conference on the Art, Science and Engineering of Programming [15] Association for Computing Machinery (ACM). https://doi.org/10.1145/3079368.3079392
    Yildiz, Bugra Mehmet ; Bockisch, Christoph ; Aksit, Mehmet ; Rensink, Arend . / An MDE Approach for Modular Program Analyses. Programming ’17: Companion to the first International Conference on the Art, Science and Engineering of Programming. Association for Computing Machinery (ACM), 2017.
    @inproceedings{71993db21f964fa1ba51a3cdffc8b2a5,
    title = "An MDE Approach for Modular 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 that offer an API for reading, writing and manipulating intermediate code, such as BCEL or ASM for Java bytecode. We claim that this hampers reuse and interoperability.In this paper, we propose an Ecore-metamodel for covering Java bytecode completely, which can act as a common basis for program analyses. Code analyses as well as instrumentations can then be defined as model transformations in a declarative language. As a consequence, the implementation of program analysis becomes more concise, more readable and more modular. We demonstrate the effectiveness of this approach by two case studies: profiling of timing performance and model checking of reachability requirements. We also provide tools to generate instances of our bytecode metamodel from Java code in the class file format and vice versa.",
    keywords = "Model Driven Engineering, Model Transformation, Java bytecode",
    author = "Yildiz, {Bugra Mehmet} and Christoph Bockisch and Mehmet Aksit and Arend Rensink",
    year = "2017",
    month = "4",
    doi = "10.1145/3079368.3079392",
    language = "English",
    isbn = "978-1-4503-4836-2",
    booktitle = "Programming ’17",
    publisher = "Association for Computing Machinery (ACM)",
    address = "United States",

    }

    Yildiz, BM, Bockisch, C, Aksit, M & Rensink, A 2017, An MDE Approach for Modular Program Analyses. in Programming ’17: Companion to the first International Conference on the Art, Science and Engineering of Programming., 15, Association for Computing Machinery (ACM), International Conference on the Art, Science, and Engineering of Programming 2017, Brussels, Belgium, 3/04/17. https://doi.org/10.1145/3079368.3079392

    An MDE Approach for Modular Program Analyses. / Yildiz, Bugra Mehmet; Bockisch, Christoph; Aksit, Mehmet ; Rensink, Arend .

    Programming ’17: Companion to the first International Conference on the Art, Science and Engineering of Programming. Association for Computing Machinery (ACM), 2017. 15.

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

    TY - GEN

    T1 - An MDE Approach for Modular Program Analyses

    AU - Yildiz, Bugra Mehmet

    AU - Bockisch, Christoph

    AU - Aksit, Mehmet

    AU - Rensink, Arend

    PY - 2017/4

    Y1 - 2017/4

    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 that offer an API for reading, writing and manipulating intermediate code, such as BCEL or ASM for Java bytecode. We claim that this hampers reuse and interoperability.In this paper, we propose an Ecore-metamodel for covering Java bytecode completely, which can act as a common basis for program analyses. Code analyses as well as instrumentations can then be defined as model transformations in a declarative language. As a consequence, the implementation of program analysis becomes more concise, more readable and more modular. We demonstrate the effectiveness of this approach by two case studies: profiling of timing performance and model checking of reachability requirements. We also provide tools to generate instances of our bytecode metamodel from Java code in the class file format and vice versa.

    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 that offer an API for reading, writing and manipulating intermediate code, such as BCEL or ASM for Java bytecode. We claim that this hampers reuse and interoperability.In this paper, we propose an Ecore-metamodel for covering Java bytecode completely, which can act as a common basis for program analyses. Code analyses as well as instrumentations can then be defined as model transformations in a declarative language. As a consequence, the implementation of program analysis becomes more concise, more readable and more modular. We demonstrate the effectiveness of this approach by two case studies: profiling of timing performance and model checking of reachability requirements. We also provide tools to generate instances of our bytecode metamodel from Java code in the class file format and vice versa.

    KW - Model Driven Engineering

    KW - Model Transformation

    KW - Java bytecode

    U2 - 10.1145/3079368.3079392

    DO - 10.1145/3079368.3079392

    M3 - Conference contribution

    SN - 978-1-4503-4836-2

    BT - Programming ’17

    PB - Association for Computing Machinery (ACM)

    ER -

    Yildiz BM, Bockisch C, Aksit M, Rensink A. An MDE Approach for Modular Program Analyses. In Programming ’17: Companion to the first International Conference on the Art, Science and Engineering of Programming. Association for Computing Machinery (ACM). 2017. 15 https://doi.org/10.1145/3079368.3079392