A mechanically verified code generator
Journal of Automated Reasoning
A syntactic approach to type soundness
Information and Computation
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
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
Standard fixpoint iteration for Java bytecode verification
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formalizing the safety of Java, the Java virtual machine, and Java card
ACM Computing Surveys (CSUR)
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
A core calculus for Java exceptions
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Type-preserving compilation of Featherweight Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Formal Syntax and Semantics of Java
Formal Syntax and Semantics of Java
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
Formal Verification of a Java Compiler in Isabelle
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Theoretical Computer Science - Foundations of software science and computation structures
Executable JVM model for analytical reasoning: a study
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
Journal of Automated Reasoning
Journal of Automated Reasoning
Java Bytecode Verification: Algorithms and Formalizations
Journal of Automated Reasoning
A Type System for the Java Bytecode Language and Verifier
Journal of Automated Reasoning
Type systems for object-oriented intermediate languages
Type systems for object-oriented intermediate languages
Compiler verification: a bibliography
ACM SIGSOFT Software Engineering Notes
Lightweight Bytecode Verification
Journal of Automated Reasoning
Simple verification technique for complex Java bytecode subroutines: Research Articles
Concurrency and Computation: Practice & Experience - Formal Techniques for Java-like Programs
Analysing the Java package-access concepts in Isabelle-HOL: Research Articles
Concurrency and Computation: Practice & Experience - Formal Techniques for Java-like Programs
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
An operational semantics and type safety prooffor multiple inheritance in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Rule-Based Operational Semantics for an Imperative Language
Electronic Notes in Theoretical Computer Science (ENTCS)
A List-machine Benchmark for Mechanized Metatheory
Electronic Notes in Theoretical Computer Science (ENTCS)
Ott: effective tool support for the working semanticist
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Mechanizing metatheory in a logical framework
Journal of Functional Programming
The java module system: core design and semantic definition
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
A Certifying Code Generation Phase
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Reasoning about the ARM weakly consistent memory model
Proceedings of the 2008 ACM SIGPLAN workshop on Memory systems performance and correctness: held in conjunction with the Thirteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '08)
Pervasive Compiler Verification -- From Verified Programs to Verified Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Towards proving type safety of .NET CIL
Science of Computer Programming
Modular Reasoning in Object-Oriented Programming
Verified Software: Theories, Tools, Experiments
Linking the Meaning of Programs to What the Compiler Can Verify
Verified Software: Theories, Tools, Experiments
Compilation as Rewriting in Higher Order Logic
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Decomposing bytecode verification by abstract interpretation
ACM Transactions on Programming Languages and Systems (TOPLAS)
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Imperative Functional Programming with Isabelle/HOL
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Formalizing a Framework for Dynamic Slicing of Program Dependence Graphs in Isabelle/HOL
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Translation and optimization for a core calculus with exceptions
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Challenge proposal: verification of refactorings
Proceedings of the 3rd workshop on Programming languages meets program verification
An empirical security study of the native code in the JDK
SS'08 Proceedings of the 17th conference on Security symposium
Coinductive big-step operational semantics
Information and Computation
Extensible Proof-Producing Compilation
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Verified validation of lazy code motion
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
On PDG-based noninterference and its modular proof
Proceedings of the ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security
An Isabelle/HOL-based model of stratego-like traversal strategies
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
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 Data Race Analysis for a Java-like Language
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Formalising FinFuns --- Generating Code for Functions as Data from Isabelle/HOL
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
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
Abstract Object Creation in Dynamic Logic
FM '09 Proceedings of the 2nd World Congress on Formal Methods
A Graph-Based Operational Semantics of OO Programs
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
A termination analyzer for Java bytecode based on path-length
ACM Transactions on Programming Languages and Systems (TOPLAS)
Ott: Effective tool support for the working semanticist
Journal of Functional Programming
Structure of a proof-producing compiler for a subset of higher order logic
ESOP'07 Proceedings of the 16th European conference on Programming
Mechanized verification of CPS transformations
LPAR'07 Proceedings of the 14th international conference on Logic for programming, artificial intelligence and reasoning
CoqJVM: an executable specification of the Java virtual machine using dependent types
TYPES'07 Proceedings of the 2007 international conference on Types for proofs and programs
Trusted source translation of a total function language
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
A sound semantics for OCamllight
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Oracle semantics for concurrent separation logic
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Extending operational semantics of the Java bytecode
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
Formal Correctness Proof for DPLL Procedure
Informatica
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Formal verification of object layout for c++ multiple inheritance
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Dozen Instructions Make Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
A provably correct stackless intermediate representation for Java bytecode
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
JNI light: an operational model for the core JNI
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Certifying compilers using higher-order theorem provers as certificate checkers
Formal Methods in System Design
Beyond provable security verifiable IND-CCA security of OAEP
CT-RSA'11 Proceedings of the 11th international conference on Topics in cryptology: CT-RSA 2011
Termination graphs for Java bytecode
Verification, induction termination analysis
Inference of field initialization
Proceedings of the 33rd International Conference on Software Engineering
Termination graphs for Java bytecode
Verification, induction termination analysis
A graph-based implementation for mechanized refinement calculus of OO programs
SBMF'10 Proceedings of the 13th Brazilian conference on Formal methods: foundations and applications
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Animating the formalised semantics of a Java-like language
ITP'11 Proceedings of the Second international conference on Interactive theorem proving
Magic-sets for localised analysis of Java bytecode
Higher-Order and Symbolic Computation
Separating ownership topology and encapsulation with generic universe types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formalizing the LLVM intermediate representation for verified program transformations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proof-producing program analysis
ICTAC'06 Proceedings of the Third international conference on Theoretical Aspects of Computing
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Verification of object-oriented programs: A transformational approach
Journal of Computer and System Sciences
Verifying local transformations on relaxed memory models
CC'10/ETAPS'10 Proceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction
Verifying a compiler for java threads
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
A trustworthy monadic formalization of the ARMv7 instruction set architecture
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Empirical Software Engineering and Verification
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Java and the java memory model -- a unified, machine-checked formalisation
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
On the correctness of an optimising assembler for the intel MCS-51 microprocessor
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
An executable semantics for compcert c
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Plan B: a buffered memory model for Java
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A framework for automated and certified refinement steps
Innovations in Systems and Software Engineering
A graph-based generic type system for object-oriented programs
Frontiers of Computer Science: Selected Publications from Chinese Universities
Making the java memory model safe
ACM Transactions on Programming Languages and Systems (TOPLAS)
A fully verified executable LTL model checker
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Light-Weight containers for isabelle: efficient, extensible, nestable
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
A hybrid class- and prototype-based object model to support language-neutral structural intercession
Information and Software Technology
Hi-index | 0.00 |
We introduce Jinja, a Java-like programming language with a formal semantics designed to exhibit core features of the Java language architecture. Jinja is a compromise between the realism of the language and the tractability and clarity of its formal semantics. The following aspects are formalised: a big and a small step operational semantics for Jinja and a proof of their equivalence, a type system and a definite initialisation analysis, a type safety proof of the small step semantics, a virtual machine (JVM), its operational semantics and its type system, a type safety proof for the JVM; a bytecode verifier, that is, a data flow analyser for the JVM, a correctness proof of the bytecode verifier with respect to the type system, and a compiler and a proof that it preserves semantics and well-typedness. The emphasis of this work is not on particular language features but on providing a unified model of the source language, the virtual machine, and the compiler. The whole development has been carried out in the theorem prover Isabelle/HOL.