The FLINT Project

Research

People

Publications

Software

Support

Links

Internal

Type-Directed Continuation Allocation

Last modified: Tue Mar 14 19:27:56 2000 GMT.

Authors

Zhong Shao
Valery Trifonov

Abstract

Suppose we translate two different source languages, L1 and L2, into the same intermediate language; can they safely interoperate in the same address space and under the same runtime system? If L1 supports first-class continuations (call/cc) and L2 does not, can L2 programs call arbitrary L1 functions? Would the fact of possibly calling L1 impose restrictions on the implementation strategy of L2? Can we compile L1 functions that do not invoke call/cc using more efficient techniques borrowed from the L2 implementation? Our view is that the implementation of a common intermediate language ought to support the so-called pay-as-you-go efficiency: first-order monomorphic functions should be compiled as efficiently as in C and assembly languages, even though they may be passed to arbitrary polymorphic functions that support advanced control primitives (e.g. call/cc). In this paper we present a typed intermediate language with effect and resource annotations, ensuring the safety of inter-language calls while allowing the compiler to choose continuation allocation strategies.

Published

In the Second International Workshops on Types in Compilation (TIC'98), pages 116-135, Kyoto, Japan, March 1998. Lecture Notes in Computer Science Vol 1473, Springer-Verlag.

Text

Gzipped Postscript [125k]
PDF
BibTeX Entry

Copyright © 1996-2017 The FLINT Group <flint at cs dot yale dot edu>
Yale University Department of Computer Science
Validate this page
colophon