Investigations Into Abstraction and Concurrency
No Access Until
Permanent Link(s)
Collections
Other Titles
Author(s)
Abstract
Abstract semantics serves as an interface between a language and the user: the interface serving to hide a significant degree of operational detail and present a simpler view of program execution to the user. What are the properties that an abstract semantics should satisfy? It was an insight of Strachey [4l] that the abstract semantics must be compositional; thus, one must be able to "build up" the abstract meaning of a program from the abstract meanings of its components. Note that it is not immediately obvious how one thinks of recursive programs in this manner. This is the role of fixpoint theory developed by Scott [62]. Informally, fixpoint theory formalisms the intuitive inductive arguments that one uses in reasoning about recursive programs. The theory developed by Scott works for determinate programs: programs that yield one output for every input. Thus, the theory is inadequate to handle indeterminate programs: programs that can yield more than one output for a given input. Powerdomains, that can be viewed as the computable analogue of the powerset, were developed to enlarge the scope of the theory of Scott to handle indeterminate computations [52,64]. Domain theory, enriched with powerdomain constructions to handle indeterminacy has been successful in serving as a mathematical formalism powerful enough to specify abstract semantics for tranformational programs: programs that take a input, compute in isolation and return an output. Thus, programs are usually denoted by functions in the determinate case and as Input-Output relations in the indeterminate case. The semantics is termed abstract because it hides significant degree of internal operational detail and presents an extensional view of programs. The situation is not as clear for interactive programming systems: systems built out of processes which engage in communication with the environment and/or other processes while computing. The key difference from transformational systems is that the output produced by a process can influence its input. Static, determinate dataflow [32] is the prime example of the few models interactive systems that are amenable to extensional treatment.