Treffer: Verification of Java Bytecode using Analysis and Transformation of Logic Programs

Title:
Verification of Java Bytecode using Analysis and Transformation of Logic Programs
Contributors:
Facultad de Informática Madrid (UPM), Universidad Politécnica de Madrid (UPM), the Spanish Ministry (TIN-2005-09207 MERIT), and the Madrid Regional Government (S-0505/TIC/0407 PROMESAS), European Project: 15905,FP6-IST,MOBIUS(2005)
Source:
ISSN: 0302-9743 ; Lecture Notes in Computer Science ; The International Symposium on Practical Aspects of Declarative Languages ; https://inria.hal.science/inria-00503986 ; The International Symposium on Practical Aspects of Declarative Languages, 2007, Nice, France. pp.124-139, ⟨10.1007/978-3-540-69611-7_8⟩.
Publisher Information:
HAL CCSD
Springer-Verlag
Springer
Publication Year:
2007
Collection:
Archive ouverte HAL (Hyper Article en Ligne, CCSD - Centre pour la Communication Scientifique Directe)
Subject Geographic:
Time:
Nice, France
Document Type:
Konferenz conference object
Language:
English
Relation:
info:eu-repo/semantics/altIdentifier/arxiv/1007.3250; info:eu-repo/grantAgreement//15905/EU/Mobility, Ubiquity and Security for small Devices/MOBIUS; inria-00503986; https://inria.hal.science/inria-00503986; https://inria.hal.science/inria-00503986/document; https://inria.hal.science/inria-00503986/file/camera_ready.pdf; ARXIV: 1007.3250
DOI:
10.1007/978-3-540-69611-7_8
Rights:
info:eu-repo/semantics/OpenAccess
Accession Number:
edsbas.3DE93C3F
Database:
BASE

Weitere Informationen

International audience ; State of the art analyzers in the Logic Programming (LP) paradigm are nowadays mature and sophisticated. They allow inferring a wide variety of global properties including termination, bounds on resource consumption, etc. The aim of this work is to automatically transfer the power of such analysis tools for LP to the analysis and verification of Java bytecode (JVML). In order to achieve our goal, we rely on well-known techniques for meta-programming and program specialization. More precisely, we propose to partially evaluate a JVML interpreter implemented in LP together with (an LP representation of) a JVML program and then analyze the residual program. Interestingly, at least for the examples we have studied, our approach produces very simple LP representations of the original JVML programs. This can be seen as a decompilation from JVML to high-level LP source. By reasoning about such residual programs, we can automatically prove in the CiaoPP system some non-trivial properties of JVML programs such as termination, run-time error freeness and infer bounds on its resource consumption. We are not aware of any other system which is able to verify such advanced properties of Java bytecode.