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 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 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.
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
StatePublished - 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. DOI: 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. DOI: 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 contribution

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

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). Available from, DOI: 10.1007/978-3-319-74730-9_4