A computational logic handbook
A computational logic handbook
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
Safe type checking in a statically-typed object-oriented programming language
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Safe and decidable type checking in an object-oriented language
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pizza into Java: translating theory into practice
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adding type parameterization to the Java language
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The security of static typing with dynamic linking
Proceedings of the 4th ACM conference on Computer and communications security
Javalight is type-safe—definitely
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Java Language Specification
The Java Language Specification
Function Definition in Higher-Order Logic
TPHOLs '96 Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics
Type Inference Verified: Algorithm W in Isabelle/HOL
TYPES '96 Selected papers from the International Workshop on Types for Proofs and Programs
PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Java Needs Compound Types
Describing the Semantics of Java and Proving Type Soundness
Formal Syntax and Semantics of Java
Executable and Symbolic Conformance Tests for Implementation Models
OOIS '02 Proceedings of the Workshops on Advances in Object-Oriented Information Systems
Class-Based versus Object-Based: A Denotational Comparison
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
Specifying and Verifying a Decimal Representation in Java for Smart Cards
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
A Formal Framework for Java Separate Compilation
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
The LOOP Compiler for Java and JML
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
An Operational Semantics of the Java Card Firewall
E-SMART '01 Proceedings of the International Conference on Research in Smart Cards: Smart Card Programming and Security
Verification of Java's AbstractCollection Class: A Case Study
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Invited Talk: Embedding Programming Languages in Theorem Provers (Abstract)
CADE-16 Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction
Proving Correctness of JavaCard DL Taclets using Bali
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
A certified implementation of ML with structural polymorphism
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Formal verification of QVT transformations for code generation
Proceedings of the 14th international conference on Model driven engineering languages and systems
Verification condition generation via theorem proving
LPAR'06 Proceedings of the 13th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Formal verification of security properties of smart card embedded source code
FM'05 Proceedings of the 2005 international conference on Formal Methods
A type system for checking applet isolation in java card
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
A Deductive Proof System for Multithreaded Java with Exceptions
Fundamenta Informaticae - Behavior of Composed Concurrent Systems: Logic and Reasoning
Hi-index | 0.00 |
In this article we present Bali, the formalization of a large (hitherto sequential) sublanguage of Java. We give its abstract syntax, type system, well-formedness conditions, and an operational evaluation semantics. Based on these definitions, we can express soundness of the type system, an important design goal claimed to be reached by the designers of Java, and prove that Bali is indeed type-safe. All definitions and proofs have been done formally in the theorem prover Isabelle/HOL. Thus this article demonstrates that machine-checking the design of non-trivial programming languages has become a reality.