Data-level interoperability

Abstract

Practical implementations of high-level languages must provide access to libraries and system services that have APIs specified in a low-level language (usually C). Our approach to supporting foreign interfaces in the Moby compiler is based on a mechanism for data-level interoperability, which allows Moby code to manipulate C data representations directly. Data-level interoperability is important when dealing with large external data sets or data that is in a fixed format. It also serves as the foundation for a wide range of different foreign-interface policies. We describe tools that implement three such policies: Charon, which embeds C types directly into Moby, moby-idl, which provides an IDL-based embedding, and an API miner, which enables application-specific embeddings. The benefits of our approach stem from the design of our compiler and do not rely on properties of the Moby language.


Last modified: April 6, 2004.
Comments to: John Reppy