next up previous contents
Next: Hardware Specifications Up: Participants Previous: Application Program

The Compiler

The third stage of the contract is between the compiler and the hardware. The compiler will examine, say, a block of application source code as well as its timing and precision requirements. It then consults a table that is specific to a computer system that describes the hardware: the number of functional units and the restriction on using them simultaneously, the size of each memory regime, and any other feature that must be known to establish timing and error estimates. Alternately, a microcode simulator can be used instead of a table, but it should still be able to give a maximum wall clock time and output error estimate for the conditions of the contract.

If the compiling of the block of an application program fails to meet performance requirements, then the compiler can:

The compiler should not be burdened with -hard optimization problems of resource allocation. If someone finds a clever solution to a common optimization problem, then that should be placed in the standard library of routines. That standard library can contain, say, all the best known methods for performing the operation for the whole spectrum of computer architectures. That library function might be lengthy and complicated, but would be attached to a simple performance specification usable by the compiler to see if a contractual obligation to the application programmer can be met.



Dr. T. L. Marchioro II
Wed Aug 9 16:54:08 CDT 1995