Memory safety and type safety are invaluable features for constructing
robust software. However, most safe languages are at a high level of
abstraction; programmers cede almost all control over data
representation and memory management. This control is one reason C
remains the de facto standard for writing systems software or
extending legacy systems already written in C. The Cyclone project
aims to bring safety to C-style programming without sacrificing the
programmer control necessary for low-level software.
To do so, we employ a variety of techniques including an advanced type
system, flow analysis, run-time checks, and modern language features.
This presentation will focus primarily on how a novel type system can
use a small set of techniques to allow safe multithreading and limited
manual memory management without requiring unnecessary code duplication.
A formal abstract machine that captures the interesting aspects of type system
lets us prove a type soundness theorem that helps validate Cyclone's
design. Empirical evidence suggests that Cyclone is useful for
C-level tasks and that user control over data representation and
run-time checks can improve application performance.
Dan Grossman is a faculty candidate.
April 3, 2003 at 4:00 p.m. in DH 1070
Reception preceding the talk - 3:30 p.m. in DH 3076