## Proving Java Type Soundness (1997)

### Cached

### Download Links

- [research.microsoft.com]
- [www.cl.cam.ac.uk]
- DBLP

### Other Repositories/Bibliography

Citations: | 86 - 2 self |

### BibTeX

@TECHREPORT{Syme97provingjava,

author = {Don Syme},

title = {Proving Java Type Soundness},

institution = {},

year = {1997}

}

### Years of Citing Articles

### OpenURL

### Abstract

This technical report describes a machine checked proof of the type soundness of a subset of the Java language called Java S . A formal semantics for this subset has been developed by Drossopoulou and Eisenbach, and they have sketched an outline of the type soundness proof. The formulation developed here complements their written semantics and proof by correcting and clarifying significant details; and it demonstrates the utility of formal, machine checking when exploring a large and detailed proof based on operational semantics. The development also serves as a case study in the application of `declarative' proof techniques to a major property of an operational system. Contents 1 Introduction 2 1.1 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 What is Type Soundness for Java? . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 The Tool: DECLARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Outl...

### Citations

1654 |
The Java Language Specification
- Gosling, Joy, et al.
- 1996
(Show Context)
Citation Context ...ing k 1 \Theta : : : k n\Gamma1 arrays containing pointers to arrays, and eventually pointing to arrays containing initial values appropriate for the type type. This process is described in detail in =-=[GJS96]-=- 4 . 2.3.4 Runtime typechecking Java performs runtime typechecks at just two places: during array assignment, and when casting reference values. Runtime typechecking is needed for array assignment bec... |

1310 | A structural approach to operational semantics - Plotkin - 1981 |

210 | PVS: Combining specification, proof checking, and model checking - Owre, Rajan, et al. - 1996 |

186 | Isabelle: The next 700 theorem provers - Paulson - 1990 |

83 | An overview of the Mizar project - Rudnicki - 1992 |

69 | HOL Light: A tutorial introduction - Harrison - 1996 |

57 | Java is type safe | probably
- Drossopoulou, Eisenbach
- 1997
(Show Context)
Citation Context ...s of a subset of the Java 1 language called Java S . A formal semantics for this subset has been developed by Drossopoulou and Eisenbach, and they have sketched an outline of the type soundness proof =-=[DE97b]-=-. The formulation we develop here serves two roles: it complements their written semantics and proof by correcting and clarifying significant details; and it demonstrates the utility 1 Java is a trade... |

55 | Mechanical theorem proving by model elimination - Loveland - 1968 |

45 | Reasoning with inductively defined relations in the HOL theorem prover - Camilleri, Melham - 1993 |

45 | A fixedpoint approach to implementing (co)inductive definitions - Paulson - 1994 |

24 | Is the Java Type System Sound
- Drossopoulou, Eisenbach
- 1997
(Show Context)
Citation Context ... ensure well-formedness when required. We are grateful to Drossopoulou and Eisenbach for the opportunity to discuss these points, and they have incorporated many suggestions into their latest version =-=[DE97a]-=-. 2.1 Syntax of Java S Java S programs consist of a sequence of classes (see Figure 2). Each class has a name, a super-class, a set of super-interfaces, a sequence of field declarations and a sequence... |

18 |
Defensive Java Virtual Machine Version 0.5 alpha Release. Available from http://www.cli.com/software/djvm/index. html
- Cohen
- 1997
(Show Context)
Citation Context ...st soundness. A tool which unites these based on such concrete experience is an exciting prospect. Computational Logic, Inc. have released a formal model of a subset of the Java Virtual Machine (JVM) =-=[Coh97]-=-. The model is called the `defensive' JVM (or dJVM) because it includes sufficient run-time checks to assure type-safe execution (or at least to detect and prevent any unsafe execution). In the standa... |

16 | An abstract dynamic semantics for c
- Norrish
- 1997
(Show Context)
Citation Context ...nwegen's work on Standard ML [Sym93, Van93], Van Inwegen's work towards a proof of type soundness for Standard ML [Van97], Nipkow et al's proofs on Mini ML [NN96] and Norrish's semantics for C in HOL =-=[Nor97]-=-. Much has been learnt from these efforts, particularly with regard to representational issues and the utility of certain kinds of automated reasoning tools. In the past researchers have generally tac... |

14 | Proof style - Harrison - 1997 |

10 | Formal Verification of Algorithm W: The Monomorphic case
- Nazareth, Nipkow
- 1996
(Show Context)
Citation Context ...or other languages, including Syme and Van Inwegen's work on Standard ML [Sym93, Van93], Van Inwegen's work towards a proof of type soundness for Standard ML [Van97], Nipkow et al's proofs on Mini ML =-=[NN96]-=- and Norrish's semantics for C in HOL [Nor97]. Much has been learnt from these efforts, particularly with regard to representational issues and the utility of certain kinds of automated reasoning tool... |

3 | Introduction to HOL: A Theorem Proving Assistant for Higher Order Logic - Gordon, Melham - 1993 |

2 | An Outline of PC Mizar. Foundation Philippe le Hodey - Muzalewski - 1993 |

1 | Is the Java type system sound? (version 2.01 - Drossopoulou, Eisenbach - 1997 |

1 | The Unofficial Java Bug Report - Perera, Bertelsen - 1997 |