×

Stack-based typed assembly language. (English) Zbl 0998.68037

J. Funct. Program. 12, No. 1, 43-88 (2002); errata ibid. 13, No. 5, 957-959 (2003).
Summary: 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.

MSC:

68N20 Theory of compilers and interpreters
68N15 Theory of programming languages

Software:

TALx86
PDFBibTeX XMLCite
Full Text: DOI