Conference on Domain-Specific Languages, 1997
Typed Common Intermediate Format
Application languages are very effective in solving specific software
problems. Unfortunately, they pose great challenges to reliable and
efficient implementations. In fact, most existing application languages
are slow, interpreted, and have poor interoperability with general-purpose
This paper presents a framework on building high-quality
systems environment for multiple advanced languages. Our key
innovation is the use of a common typed intermediate language, named FLINT,
to model the semantics and interactions of various language-specific
features. FLINT is based on a predicative variant of the Girard-Reynolds
polymorphic calculus Fomega, extended with a very rich set of primitive
types and functions.
FLINT provides a common compiler infrastructure that can be quickly adapted
to generate compilers for new general-purpose and domain-specific languages.
With its single unified type system, FLINT serves as a great platform for
reasoning about cross-language interoperations. FLINT types act as a glue
to connect language features that complicate interoperability, such as mixed
data representations, multiple function calling conventions, and different
memory management protocols. In addition, because all runtime representations
are determined by FLINT types, languages compiled under FLINT can share the
same system-wide garbage collector and foreign function call interface.
- View the full text of this paper in
HTML form and
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.