Stack-based typed assembly language

Greg Morrisett, Karl Crary, Neal Glew, David Walker

Research output: Chapter in Book/Report/Conference proceedingConference contribution

65 Scopus citations

Abstract

In previous work, we presented a Typed Assembly Language (TAL). TAL is sufficiently expressive to serve as a target language for compilers of high-level languages such as ML. This work assumed such a compiler would perform a continuation-passing style transform and eliminate the control stack by heap-allocating activation records. However, most compilers are based on stack allocation. This paper presents STAL, an extension of TAL with stack constructs and stack types to support the stack allocation style. We show that STAL is sufficiently expressive to support languages such as Java, Pascal, and ML; constructs such as exceptions and displays; and optimizations such as tail call elimination and callee-saves registers. This paper also formalizes the typing connection between CPS-based compilation and stack-based compilation and illustrates how STAL can formally model calling conventions by specifying them as formal translations of source function types to STAL types.

Original languageEnglish (US)
Title of host publicationTypes in Compilation - 2nd International Workshop, TIC 1998, Proceedings
EditorsXavier Leroy, Atsushi Ohori
PublisherSpringer Verlag
Pages28-52
Number of pages25
ISBN (Print)3540649255, 9783540649250
DOIs
StatePublished - 1998
Externally publishedYes
Event2nd International Workshop on Types in Compilation, TIC 1998 - Kyoto, Japan
Duration: Mar 25 1998Mar 27 1998

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume1473
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Other

Other2nd International Workshop on Types in Compilation, TIC 1998
Country/TerritoryJapan
CityKyoto
Period3/25/983/27/98

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • General Computer Science

Fingerprint

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

Cite this