Results 1 -
5 of
5
A machine-checked model for a Java-like language, virtual machine and compiler
- ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 2004
"... 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 realism of the language and tractability and clarity of the formal semantics. The following aspects are formalised: a big an ..."
Abstract
-
Cited by 80 (7 self)
- Add to MetaCart
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 realism of the language and tractability and clarity of the 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, i.e. data flow analyser for the JVM; a correctness proof of the bytecode verifier w.r.t. the type system; 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.
Modifiers in OFL - An Approach for Access Control Customization
- In The 9th International Conferences on Object-Orinted Information Systems - OOIS’03, WEAR workshop
, 2003
"... The aim of this paper is to provide an approach for a better reification of the semantics of the access control mechanisms within the OFL Model. OFL is a meta-model dedicated to the description of object-oriented programming languages. The description of the semantics of language is achieved thr ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
The aim of this paper is to provide an approach for a better reification of the semantics of the access control mechanisms within the OFL Model. OFL is a meta-model dedicated to the description of object-oriented programming languages. The description of the semantics of language is achieved through the customization of a set of language features. Originally this customization can deal only with features which must be general enough for being applicable to most existing objectoriented programming languages. But further experiences point out the necessity to capture more semantics and also to handle semantics which is specific to one language. In this paper we describe an extension of the OFL model which addresses this issue and we apply it to the description of access control semantics which are most of the time very language dependent.
Extracting a Formally Verified, Fully Executable Compiler From a Proof Assistant
, 2002
"... Compilers that have been formally verified in theorem provers are often not directly usable because the formalization language is not a general-purpose programming language or the formalization contains non-executable constructs. This paper takes a comprehensive, even though simplified model of Java ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Compilers that have been formally verified in theorem provers are often not directly usable because the formalization language is not a general-purpose programming language or the formalization contains non-executable constructs. This paper takes a comprehensive, even though simplified model of Java, formalized in the Isabelle proof assistant, as starting point and shows how core functions in the translation process (type checking and compilation) are defined and proved correct. From these, Isabelle's program extraction facility generates ML code that can be directly interfaced with other, possibly "unsafe" code.
Java Definite Assignment in Isabelle/HOL
- In Proc. of ECOOP Workshop on Formal Techniques for Java-like Programs, number 408 in Technical Report. ETH
, 2003
"... In Java the compiler guarantees that each local variable is initialised when we attempt to access it at runtime. This prohibits access to uninitialised memory during execution and is a key ingredient for type safety. We have formalised the definite assignment analysis of the Java compiler in the ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
In Java the compiler guarantees that each local variable is initialised when we attempt to access it at runtime. This prohibits access to uninitialised memory during execution and is a key ingredient for type safety. We have formalised the definite assignment analysis of the Java compiler in the theorem prover Isabelle/HOL and proved it correct.

