Skip Navigation

Colloquium Details

Types for Compiling Java and Running HOT Programs

Author:Valery Trifonov Yale University
Date:June 01, 2000
Time:16:00
Location:220 Deschutes

Abstract

The shift to component-oriented programming has created demand for an intermediate language with strong safety properties. It must have simple dynamic semantics to enable low level optimizations and efficient generation of machine code for multiple platforms, yet it must be capable of expressing the complex safety guarantees of a variety of high level languages. The Java virtual machine byte-code falls short of achieving either of these goals due to its heavy constructs and inexpressive type system.

The approach taken by the FLINT project employs a variant of the typed lambda calculus as the basis for an intermediate language for type safe compilation, optimization, and composition of program components written in higher order typed (HOT) languages, including Java and Standard ML. The type system allows compile and run time analysis of types, expressive enough to verify the type correctness of polymorphic services such as garbage collection, serialization, and marshaling of any runtime object.

In this talk I will present a method for compiling effectively a substantial subset of Java into the FLINT intermediate language and the design of a safe mechanism for intensional type analysis providing full reflection.