Stack-Based Typed Assembly Language

Abstract

In previous work, we presented Typed Assembly Language (TAL). TAL is sufficiently expressive to serve as a target language for compilers of high level languages such as ML. That 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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Nov 01, 1998
Accession Number
ADA358572

Entities

People

  • David Walker
  • Greg Morrisett
  • Karl Crary
  • Neal Glew

Organizations

  • Carnegie Mellon University

Tags

DTIC Thesaurus Topics

  • Abstracts
  • Assembly
  • Assembly Languages
  • Compilers
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Computing System Architectures
  • Environment
  • High Level Languages
  • Instruction Set Architecture
  • Judgment
  • Language
  • Programming Languages
  • Software Development
  • Standards

Fields of Study

  • Computer science

Readers

  • Business Analytics
  • Parallel and Distributed Computing.
  • Software Engineering.