TR-2008-06

Equation-preserving multilanguage systems

Jacob Matthews. 25 April, 2008.
Communicated by Robby Findler.

Abstract

Kennedy has recently argued that the designers of Cshould try to informally verify that their compilation from C♯ source to Microsoft Common Language Run- time (CLR) bytecode is “fully abstract” in the sense that any two code fragments that C♯ programs cannot distinguish must compile into CLR code fragments that CLR programs also cannot distinguish. In this paper we treat that property as a criterion for what constitutes a well-designed interoperability system and refine it using the techniques of Matthews-Findler-style multilanguage systems. We begin by giving our own variation on Kennedy’s criterion that does not directly involve a notion of compilation. Then we argue that our criterion is useful and workable by using it to guide our development of a multilanguage system that combines call-by-name and call-by-value lambda calculi. We begin with a straightforward system that we show does not meet our criterion. Then we refine that system’s interoperability rules and show that the result does meet our criterion. We con- clude by sketching how our criterion would apply to multilanguage systems whose constituent languages had more advanced features such as state, exceptions, and concurrent threads.

Original Document

The original document is available in PDF (uploaded 25 April, 2008 by Robby Findler).