next up previous
Next: What makes a solution Up: Introduction Previous: Programming parallel computers is

How this thesis addresses these problems

Traces have been known as a powerful model of concurrency for a long time. In recent work [Bro96b,Bro97], Stephen Brookes has taken a particular kind of trace, called transition traces, and shown how they give rise to a fully abstract model for concurrent computation that is tractable, supports different levels of granularity, and is reasonably architecture-independent. Transition traces thus make an excellent candidate for a model that meets the requirements mentioned above. The purpose of this thesis is to equip Brookes' model with a viable software development methodology. In particular, we propose a refinement calculus that allows the formal, stepwise development of shared-variable and distributed, message-passing parallel programs from trusted, abstract specifications.

A refinement calculus consists of a specification and programming notation, a refinement relation and a set of rules that govern this relation. For a specification and programming notation to provide a useful basis for a calculus it should have certain properties:

Moreover, the refinement relation itself also should meet certain minimal requirements. Finally, note that the rules should also have certain properties.

Note that this work will not attempt to address performance, complexity, or implementation issues. The semantics will concentrate on the sequences of states a program runs through during execution and will thus be geared towards correctness. Consequently, if two programs exhibit the same traces they will be equated in the semantics regardless of their performance. Whether the model can be augmented with cost measures, or be efficiently implemented, is left for future research.

Moreover, we will not consider data-refinement, or data-reification. We regard data-reification as an largely orthogonal program development technique that should easily mesh with our work here on procedural or operations refinement.



next up previous
Next: What makes a solution Up: Introduction Previous: Programming parallel computers is



Juergen Dingel
Fri Aug 6 12:11:51 EDT 1999