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.
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 language | English |
---|---|
Title of host publication | Software Technologies: Applications and Foundations |
Subtitle of host publication | STAF 2017 Collocated Workshops, Marburg, Germany, July 17-21, 2017, Revised Selected Papers |
Editors | Martina Seidl, Steffen Zschaler |
Publisher | Springer |
Pages | 30-40 |
ISBN (Electronic) | 978-3-319-74730-9 |
ISBN (Print) | 978-3-319-74729-3 |
DOIs | |
Publication status | Published - Jul 2017 |
Event | Software Technologies: Applications and Foundations, STAF 2017 - Technologie- und Tagungszentrum Marburg (TTZ), Marburg, Germany Duration: 17 Jul 2017 → 21 Jul 2017 http://www.informatik.uni-marburg.de/staf2017/ |
Publication series
Name | Lecture Notes in Computer Science |
---|---|
Publisher | Springer |
Volume | 10748 |
ISSN (Print) | 0302-9743 |
Conference
Conference | Software Technologies: Applications and Foundations, STAF 2017 |
---|---|
Abbreviated title | STAF 2017 |
Country/Territory | Germany |
City | Marburg |
Period | 17/07/17 → 21/07/17 |
Internet address |
Keywords
- Java bytecode
- Metamodel
- Model Transformation
- Model-Driven Software Engineering
- Program analyses
- Composition