The Design and Implementation of the MASTERMIND Toolkit (MMTK)
The MASTERMIND project is concerned with the design, integration, and automatic generation of interactive systems from declarative models. One model describes the tasks a user will perform as a protocol of end user actions and their affect on other aspects of the application. The MASTERMIND Dialogue Language (MDL) is a declarative notation for specifying user tasks. The MASTERMIND Toolkit (MMTK) is a run-time infrastructure and collection of reusable C++ components which can be instantiated and aggregated to implement MDL specifications. Code generators implement an MDL behavior expression E by aggregating MMTK components (representing the various operators within E) into a class and connecting these components according to the syntactic structure of E. This approach distributes the control policy of an MDL operator over many independent components. These components implement orderings by issuing control commands to sub-ordinate components and announcing activity and status to parent components in a tree hierarchy. We designed these components around a model of machine execution in which each component is independent and may (/em message) other components without waiting for them to return. This document outlines our design.