A type system for Java bytecode subroutines
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Javalight is type-safe—definitely
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Advanced compiler design and implementation
Advanced compiler design and implementation
A type system for object initialization in the Java bytecode language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A specification of Java loading and bytecode verification
CCS '98 Proceedings of the 5th ACM conference on Computer and communications security
A formal framework for the Java bytecode language and verifier
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Typing a multi-language intermediate code
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Standard fixpoint iteration for Java bytecode verification
ACM Transactions on Programming Languages and Systems (TOPLAS)
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Java Virtual Machine Specification
Java Virtual Machine Specification
Java and the Java Virtual Machine: Definition, Verification, Validation with Cdrom
Java and the Java Virtual Machine: Definition, Verification, Validation with Cdrom
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
A Formal Correspondence between Offensive and Defensive JavaCard Virtual Machines
VMCAI '02 Revised Papers from the Third International Workshop on Verification, Model Checking, and Abstract Interpretation
Development of an Embedded Verifier for Java Card Byte Code Using Formal Methods
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Type systems for object-oriented intermediate languages
Type systems for object-oriented intermediate languages
Investigating Type-Certifying Compilation with Isabelle
LPAR '02 Proceedings of the 9th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
Tool-Assisted Specification and Verification of the JavaCard Platform
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
A Formal Correspondence between Offensive and Defensive JavaCard Virtual Machines
VMCAI '02 Revised Papers from the Third International Workshop on Verification, Model Checking, and Abstract Interpretation
Journal of Automated Reasoning
Java Bytecode Verification: Algorithms and Formalizations
Journal of Automated Reasoning
Bytecode Verification by Model Checking
Journal of Automated Reasoning
A Type System for the Java Bytecode Language and Verifier
Journal of Automated Reasoning
Compiler verification: a bibliography
ACM SIGSOFT Software Engineering Notes
Lightweight Bytecode Verification
Journal of Automated Reasoning
Formally verifying information flow type systems for concurrent and thread systems
Proceedings of the 2004 ACM workshop on Formal methods in security engineering
Organizing Numerical Theories Using Axiomatic Type Classes
Journal of Automated Reasoning
Precise Analysis of Memory Consumption using Program Logics
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Formal Verification of Dead Code Elimination in Isabelle/HOL
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extracting a data flow analyser in constructive logic
Theoretical Computer Science - Applied semantics: Selected topics
Security types preserving compilation
Computer Languages, Systems and Structures
Proof-carrying code from certified abstract interpretation and fixpoint compression
Theoretical Computer Science - Applied semantics
Reasoning about Object-based Calculi in (Co)Inductive Type Theory and the Theory of Contexts
Journal of Automated Reasoning
Coinductive Verification of Program Optimizations Using Similarity Relations
Electronic Notes in Theoretical Computer Science (ENTCS)
Formal verification of translation validators: a case study on instruction scheduling optimizations
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Building Certified Static Analysers by Modular Construction of Well-founded Lattices
Electronic Notes in Theoretical Computer Science (ENTCS)
Programming with Proofs: Language-Based Approaches to Totally Correct Software
Verified Software: Theories, Tools, Experiments
Certifying a Tree Automata Completion Checker
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
Reasoning about programs via operational semantics: requirements for a support system
Automated Software Engineering
Formal Certification of a Resource-Aware Language Implementation
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
A Certified Implementation on Top of the Java Virtual Machine
FMICS '09 Proceedings of the 14th International Workshop on Formal Methods for Industrial Critical Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Machine-Checkable Correctness Proofs for Intra-procedural Dataflow Analyses
Electronic Notes in Theoretical Computer Science (ENTCS)
Electronic Notes in Theoretical Computer Science (ENTCS)
Subroutine Inlining and Bytecode Abstraction to Simplify Static and Dynamic Analysis
Electronic Notes in Theoretical Computer Science (ENTCS)
Validation of the JavaCard platform with implicit induction techniques
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Formal verification with Isabelle/HOL in practice: finding a bug in the GCC scheduler
FMICS'07 Proceedings of the 12th international conference on Formal methods for industrial critical systems
Verifying a local generic solver in coq
SAS'10 Proceedings of the 17th international conference on Static analysis
Language-based verification will change the world
Proceedings of the FSE/SDP workshop on Future of software engineering research
Certified result checking for polyhedral analysis of bytecode programs
TGC'10 Proceedings of the 5th international conference on Trustworthly global computing
Modular proof principles for parameterised concretizations
CASSIS'05 Proceedings of the Second international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Reduced certificates for abstraction-carrying code
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Certified memory usage analysis
FM'05 Proceedings of the 2005 international conference on Formal Methods
Formal methods for smartcard security
Foundations of Security Analysis and Design III
A framework for certified program analysis and its applications to mobile-code safety
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
A structured approach to proving compiler optimizations based on dataflow analysis
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
A uniform and certified approach for two static analyses
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
Hi-index | 0.00 |
Using the theorem prover Isabelle/HOL we have formalized and proved correct and executable bytecode verifier in the style of Kildall's algorithm for a significant subset of the Java Virtual Machine (JVM). First an abstract framework for proving correctness of data flow based type inference algorithms for assembly languages is formalized. It is shown that under certain conditions Kildall's algorithm yields a correct bytecode verifier. Then the framework is instantiated with our previous work about the JVM. Finally, we demonstrate the flexibility of the framework by extending our previous JVM model and the executable bytecode verifier with object initialization.