From System F to typed assembly language

G Morrisett, D Walker, K Crary, N Glew - ACM Transactions on …, 1999 - dl.acm.org
ACM Transactions on Programming Languages and Systems (TOPLAS), 1999dl.acm.org
We motivate the design of typed assembly language (TAL) and present a type-preserving
ttranslation from Systemn F to TAL. The typed assembly language we pressent is based on a
conventional RISC assembly language, but its static type sytem provides support for
enforcing high-level language abstratctions, such as closures, tuples, and user-defined
abstract data types. The type system ensures that well-typed programs cannot violatet these
abstractionsl In addition, the typing constructs admit many low-level compiler optimiztaions …
We motivate the design of typed assembly language (TAL) and present a type-preserving ttranslation from Systemn F to TAL. The typed assembly language we pressent is based on a conventional RISC assembly language, but its static type sytem provides support for enforcing high-level language abstratctions, such as closures, tuples, and user-defined abstract data types. The type system ensures that well-typed programs cannot violatet these abstractionsl In addition, the typing constructs admit many low-level compiler optimiztaions. Our translation to TAL is specified as a sequence of type-preserving transformations, including CPS and closure conversion phases; type-correct source programs are mapped to type-correct assembly language. A key contribution is an approach to polymorphic closure conversion that is considerably simpler than previous work. The compiler and typed assembly lanugage provide a fully automatic way to produce certified code, suitable for use in systems where unstrusted and potentially malicious code must be checked for safety before execution.
ACM Digital Library