next up previous contents
Next: End User to Up: No Title Previous: Hardware Specifications

Contracts

  In this section we describe, in detail, our new three-stage contract paradigm that:

  1. forces the end user to specify practical goals without being allowed to specify implementation details
  2. forces the application programmer to specify performance in the algorithm description without being able to assume target hardware
  3. enables the compiler to use a local hardware specification or microcode simulator to determine whether or not the application programmer's specifications are feasible -- and if not, to provide feedback and alternatives to the application programmer. The compiler is not allowed to make clandestine changes to the code. This is a marked departure from current programming methodology.
As an example, we provide a generic contract except in part of the second-stage contract where specific contract information for solving a quadratic equation is provided. In the generic contract, the notation is loosely based on the Backus-Naur Form (BNF) specification and is defined as follows:
##
comment follows to end of line
itemlist
required item or items
alternation -- pick one from this itemlist
[]
enclosed optional item

We hope that all other notation is self-explanatory.





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