An MDE Approach for Modular Program Analyses

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

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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.
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
Number of pages5
ISBN (Print)978-1-4503-4836-2
DOIs
StatePublished - 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. DOI: 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, 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",
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, International Conference on the Art, Science, and Engineering of Programming 2017, Brussels, Belgium, 3/04/17. DOI: 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, 2017. 15.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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

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. 2017. 15. Available from, DOI: 10.1145/3079368.3079392