Affiliation:
1. University of Utah, Department of Computer Science, 3190 M.E.B., Salt Lake City, Utah
Abstract
An interface definition language (
IDL
) is a nontraditional language for describing interfaces between software components.
IDL
compilers generate "stubs" that provide separate communicating processes with the abstraction of local object invocation or procedure call. High-quality stub generation is essential for applications to benefit from component-based designs, whether the components reside on a single computer or on multiple networked hosts. Typical
IDL
compilers, however, do little code optimization, incorrectly assuming that interprocess communication is always the primary bottleneck. More generally, typical
IDL
compilers are "rigid" and limited to supporting only a single
IDL
, a fixed mapping onto a target language, and a narrow range of data encodings and transport mechanisms.
Flick
, our new
IDL
compiler, is based on the insight that
IDL
s are true languages amenable to modern compilation techniques. Flick exploits concepts from traditional programming language compilers to bring both flexibility and optimization to the domain of
IDL
compilation. Through the use of carefully chosen intermediate representations, Flick supports multiple
IDL
s, diverse data encodings, multiple transport mechanisms, and applies numerous optimizations to all of the code it generates. Our experiments show that Flick-generated stubs marshal data between 2 and 17 times faster than stubs produced by traditional
IDL
compilers, and on today's generic operating systems, increase end-to-end throughput by factors between 1.2 and 3.7.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献