Download:
|
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
|