Stack-based typed assembly language

Greg Morrisett, Karl Crary, Neal Glew, David Walker

Research output: Contribution to journalArticlepeer-review

47 Scopus citations


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 languageEnglish (US)
Pages (from-to)43-88
Number of pages46
JournalJournal of Functional Programming
Issue number1
StatePublished - 2002
Externally publishedYes

All Science Journal Classification (ASJC) codes

  • Software


Dive into the research topics of 'Stack-based typed assembly language'. Together they form a unique fingerprint.

Cite this