Eichberg, Michael and Sewe, Andreas (2011):
Encoding the Java Virtual Machine's Instruction Set.
In: Electronic Notes in Theoretical Computer Science, 264, In: Proceedings of the Fifth Workshop on Bytecode Semantics, Verification, Analysis and Transformation, pp. 35-50,
Fifth Workshop on Bytecode Semantics, Verification, Analysis and Transformation (Bytecode 2010), Paphos, Cyprus, 27 Mar 2010, ISSN 15710661,
[Conference or Workshop Item]
Abstract
New toolkits that parse, analyze, and transform Java Bytecode are frequently developed from scratch to obtain a representation suitable for a particular purpose. But, while the functionality implemented by these toolkits to read in class files and do basic control- and data-flow analyses is comparable, it is implemented over and over again. Differences manifest themselves mainly in minor technical issues. To avoid the repetitive development of similar functionality, we have developed an XML-based language for specifying bytecode-based instruction sets. Using this language, we have encoded the instruction set of the Java Virtual Machine such that it can directly be used, e.g., to generate the skeleton of bytecode-based tools. The XML format hereby specifies both the format of the instructions and their effect on the stack and the local registers upon execution. This enables developers of static analyses to generate generic control- and data-flow analyses, e.g., an analysis that transforms Java Bytecode into static single assignment form. To assess the usefulness of our approach, we have used the encoding of the Java Virtual Machine's instruction set to develop a framework for the analysis and transformation of Java class files. The evaluation shows that using the specification significantly reduces the development effort when compared to manual development.
Item Type: | Conference or Workshop Item |
---|---|
Erschienen: | 2011 |
Creators: | Eichberg, Michael and Sewe, Andreas |
Title: | Encoding the Java Virtual Machine's Instruction Set |
Language: | English |
Abstract: | New toolkits that parse, analyze, and transform Java Bytecode are frequently developed from scratch to obtain a representation suitable for a particular purpose. But, while the functionality implemented by these toolkits to read in class files and do basic control- and data-flow analyses is comparable, it is implemented over and over again. Differences manifest themselves mainly in minor technical issues. To avoid the repetitive development of similar functionality, we have developed an XML-based language for specifying bytecode-based instruction sets. Using this language, we have encoded the instruction set of the Java Virtual Machine such that it can directly be used, e.g., to generate the skeleton of bytecode-based tools. The XML format hereby specifies both the format of the instructions and their effect on the stack and the local registers upon execution. This enables developers of static analyses to generate generic control- and data-flow analyses, e.g., an analysis that transforms Java Bytecode into static single assignment form. To assess the usefulness of our approach, we have used the encoding of the Java Virtual Machine's instruction set to develop a framework for the analysis and transformation of Java class files. The evaluation shows that using the specification significantly reduces the development effort when compared to manual development. |
Journal or Publication Title: | Electronic Notes in Theoretical Computer Science |
Title of Book: | Proceedings of the Fifth Workshop on Bytecode Semantics, Verification, Analysis and Transformation |
Series Name: | Electronic Notes in Theoretical Computer Science |
Volume: | 264 |
Number: | 4 |
Uncontrolled Keywords: | Java Bytecode; Java Virtual Machine Specification; XML |
Divisions: | 20 Department of Computer Science 20 Department of Computer Science > Software Technology LOEWE > LOEWE-Zentren > CASED – Center for Advanced Security Research Darmstadt Zentrale Einrichtungen LOEWE LOEWE > LOEWE-Zentren |
Event Title: | Fifth Workshop on Bytecode Semantics, Verification, Analysis and Transformation (Bytecode 2010) |
Event Location: | Paphos, Cyprus |
Event Dates: | 27 Mar 2010 |
Date Deposited: | 01 Mar 2011 14:09 |
Official URL: | http://dx.doi.org/10.1016/j.entcs.2011.02.004 |
Identification Number: | doi:10.1016/j.entcs.2011.02.004 |
Export: | |
Suche nach Titel in: | TUfind oder in Google |
![]() |
Send an inquiry |
Options (only for editors)
![]() |
Show editorial Details |