Flick is a flexible and optimizing compiler for interface definition languages (IDLs). Like a traditional IDL compiler, Flick reads a high-level interface specification and from that produces C or C++ language stubs to implement communication between client and server programs or between distributed objects. Unlike traditional IDL compilers, however, Flick generates speed-optimized code for a wide variety of IDLs, stub styles, and communication infrastructures. Flick can generate optimized code for many different applications such as ONC RPC (Sun RPC) systems, third-party CORBA ORBs, and other, more specialized situations. In sum, Flick is a "kit": the user picks the IDL, language mapping, and transport components that are required in order to implement the stubs for the user's particular application.

This manual describes how to build Flick, how to run the various compiler passes, and how to use the generated stubs. A simple client/server phonebook is presented and implemented in three different ways: as an ONC RPC (Sun RPC) application, as a CORBA C application, and as a CORBA C++ application. The examples are presented in detail and illustrate how users can make use of Flick-generated stubs in their own programs.