Lecture Notes in Computer Science, 2001, Volume 2071/2001, 117-145, DOI: 10.1007/3-540-45332-6_5

Scalable Certification for Typed Assembly Language

Dan Grossman and Greg Morrisett

View Related Documents

Abstract

A type-based certifying compiler maps source code to machine code and target-level type annotations. The target-level annotations make it possible to prove easily that the machine code is type-safe, independent of the source code or compiler. To be useful across a range of source languages and compilers, the target-language type system should provide powerful type constructors for encoding higher-level invariants. Unfortunately, it is difficult to engineer such type systems so that annotation sizes are small and verification times are fast. In this paper, we describe our experience writing a certifying compiler that targets Typed Assembly Language (TALx86) and discuss some general techniques we have used to keep annotation sizes small and verification times fast. We quantify the effectiveness of these techniques by measuring their effects on a sizeable application — the certifying compiler itself. Using these techniques, which include common-subexpression elimination of types, higher-order type abbreviations, and selective reverification, can dramatically change certificate size and verification time.
This material is based on work supported in part by the AFOSR grant F49620- 97-1-0013, ARPA/RADC grant F30602-1-0317, and a National Science Foundation Graduate Fellowship. Any opinions,findings, and conclusions or recommendations expressed in this publication are those of the authors and do not reflect the views of these agencies.

Fulltext Preview

Image of the first page of the fulltext document