Abstract
This paper presents STAL, a variant of Typed Assembly Language with constructs and types to support a limited form of stack allocation. As with other statically-typed low-level languages, the type system of STAL ensures that a wide class of errors cannot occur at run time, and therefore the language can be adapted for use in certifying compilers where security is a concern. Like the Java Virtual Machine Language (JVML), STAL supports stack allocation of local variables and procedure activation records, but unlike the JVML, STAL does not pre-suppose fixed notions of procedures, exceptions, or calling conventions. Rather, compiler writers can choose encodings for these high-level constructs using the more primitive RISC-like mechanisms of STAL. Consequently, some important optimizations that are impossible to perform within the JVML, such as tail call elimination or callee-saves registers, can be easily expressed within STAL.
Original language | English (US) |
---|---|
Pages (from-to) | 43-88 |
Number of pages | 46 |
Journal | Journal of Functional Programming |
Volume | 12 |
Issue number | 1 |
DOIs | |
State | Published - 2002 |
Externally published | Yes |
All Science Journal Classification (ASJC) codes
- Software