MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  TALx86: A realistic typed assembly language (1999) [119 citations — 40 self]

Download:
Download as a PDF | Download as a PS
by Greg Morrisett, Karl Crary, Neal Glew, Dan Grossman, Richard Samuels, Frederick Smith, David Walker, Stephanie Weirich, Steve Zdancewic
In Second Workshop on Compiler Support for System Software
http://www.cs.cmu.edu/afs/cs/user/crary/www/papers/1999/talx86/talx86.ps.gz
Add To MetaCart

Abstract:

The goal of typed assembly language (TAL) is to provide a low-level, statically typed target language that is better suited than Java bytecodes for supporting a wide variety of source languages and a number of important optimizations. In previous work, we formalized idealized versions of TAL and proved important safety properties about them. In this paper, we present our progress in defining and implementing a realistic typed assembly language called TALx86. The TALx86 instructions comprise a relatively complete fragment of the Intel IA32 (32-bit 80x86 flat model) assembly language and are thus executable on processors such as the Intel Pentium. The type system for the language incorporates a number of advanced features necessary for safely compiling large programs to good code. To motivate the design of the type system, we demonstrate how various high-level language features are compiled to TALx86. For this purpose, we present a type-safe C-like language called Popcorn. 1

Citations

1021 The C Programming Language – Kernighan, Ritchie - 1988
894 The Java Virtual Machine Specification – Lindholm, Yellin - 1999
817 Proof-carrying code – Necula - 1997
486 From system F to typed assembly language – Morrisett, Walker, et al. - 1998
300 Pizza into Java: Translating theory into practice – Odersky, Wadler - 1997
239 Garbage collection in an uncooperative environment – Boehm, Weiser - 1988
216 Dependent Types in Practical Programming – Xi - 1998
181 A type system for java bytecode subroutines – Stata, Abadi - 1998
169 Typed memory management in a calculus of capabilities – Crary, Walker, et al. - 1999
169 Revised report on the algorithmic language Scheme – Kelsey, Clinger, et al. - 1998
160 Parameterized types for java – Myers, Bank, et al. - 1997
144 Eliminating array bound checking through dependent types – Xi, Pfenning - 1998
124 Stack-based typed assembly language – Morrisett, Crary, et al.
58 A simple, comprehensive type system for Java bytecode subroutines – O’Callahan - 1999
28 Certifying compilation and run-time code generation – Hornof, Jim - 1999
13 From System F to typed assembly language (extended version – Morrisett, Walker, et al. - 1997
12 A simple proof technique for certain parametricity results – Crary - 1998
8 Type safe linking and modular assembly language – Glew, Morrisett - 1999
5 The MLJ User Guide – Benton, Kennedy, et al. - 1998
2 Formal Underpinnings of Java – Workshop - 1998