R. J. Brown1
Dreams is a message passing object oriented programming system. It allows for before, after, and around methods, multiple inheritance, and operator overloading. It is based on a prototype model of object oriented programming and dynamic scoping, rather than the more traditional class model and lexical scoping. Designed for real-time, Dreams has a fixed, predictable overhead.
A dream object is implemented as a contiguous data structure, and is therefore a suitable candidate for I/O. This makes it possible for objects and messages to be sent and recieved over a communications link or network, and for objects to be written to and read from a file or database.
Implementation techniques based on indirect threading, direct threading, token threading, and subroutine threading are discussed. The threading scheme chosen has a significant effect upon the efficiency of multitasking and MIMD parallelism. A hardware implementation of the dynamic binding mechanism used in Dreams is discussed. This hardware will permit determination of the currently active binding of any object without the addition of any processor cycles.