[Prev][Next][Index][Thread]
paper on the soundness of the Java type system
-
To: types@dcs.gla.ac.uk
-
Subject: paper on the soundness of the Java type system
-
From: Sophia Drossopoulou <scd@doc.ic.ac.uk>
-
Date: Mon, 21 Oct 96 18:06 BST
-
Approved: types@dcs.gla.ac.uk
[------ The Types Forum ------- http://www.dcs.gla.ac.uk/~types ------]
A paper arguing the soundness of the Java type system is now
available by anonymous ftp from
directory: /vol/ftp/pub/papers/S.Drossopoulou
file: JavaSound.ps
It is still "work in progress", and we expect to be updating it
regularly, improving the English and removing typos, but
we believe that the formalisms and proofs are correct and stable.
Regards,
Sophia Drossopoulou and Susan Eisenbach, Imperial College
Abstract
========
We argue that the Java type system is sound, by proving a subject
reduction theorem. We define a subset of Java, a language which is safe and
which reflects the most essential features of Java, a term rewriting system
for the operational semantics and a type inference system to describe compile
time type checking. We prove that program execution preserves the types, up
to the subclass/subinterface relationship.
In this paper we consider the following parts of the
Java language: primitive types, classes and inheritance, instance
variables and instance methods, interfaces, shadowing of instance variables,
and dynamic method binding. We plan to extend our study, starting with arrays
and the associated dynamic checks, until we either have covered all of
Java -- or we have uncovered loopholes in the
type system.
As an interesting subsidiary result, we formulated and prove two
important properties which any compile-time correct Java program
must satisfy:
* the requirement for any class which according to
the type rules widens another interface or class
to provide an implementation for any method declared in that
superinterface or superclass
* the substitution property for compiled Java expressions