It seems natural to use different languages for the different purposes of description or programming on the one hand, and prescription or specification on the other hand. Certainly there have been recent attempts to conflate these two types of language, but in the author’s opinion they have not been convincing. It is, however, the purpose of this paper not to argue this point, but rather to explore a consequence of accepting the use of different languages for the two purposes. I propose to use the word “description” as a generalisation of “program”; ii is something which will describe both the spatial or modular structure of a performing agent (hardware or program) and also the temporal details of its performance. A prescription or specification, on the other hand, defines properties of the agent’s performancebut only those properties which are expressi le in terms of that part of the performance which is observable, e.g. the initial and fi 1 values of a program’s memory, or the program’s intermediate interactions with the user, or the electrical behaviour at the boundary of a chip. The connectives or operators for building specifications are naturally logical; many of those for building descriptions are not naturally logical but express operations: or structural ideas like sequencing, interaction and juxtaposition. If it is natural to use two languages, it is essential to define the relationship between them. It is not just that the designer (programmer, or describer) and the specifier shotrid be able to interact, but that the two languages and what they express must form a single conceptual framework in w both designer and specifier operate (indeed, they may be the same person). shall use the term calculus to mean a pair of languages in a definite relationship. aving defined calculu at what it means to in in another. We have in to apply in practice, while others are powerful and speci applications, and easier to work in. W an applied calculus o avoid an anarchic ple au-
[1]
Chris M. N. Tofts,et al.
Proof methods and pragmatics for parallel programming
,
1990
.
[2]
C. A. R. Hoare,et al.
An axiomatic basis for computer programming
,
1969,
CACM.
[3]
Robin Milner,et al.
Communication and concurrency
,
1989,
PHI Series in computer science.
[4]
Cliff B. Jones,et al.
Specification and Design of (Parallel) Programs
,
1983,
IFIP Congress.
[5]
Robin Milner,et al.
A Calculus of Communicating Systems
,
1980,
Lecture Notes in Computer Science.
[6]
Matthew Hennessy,et al.
The Power of the Future Perfect in Program Logics
,
1985,
Inf. Control..
[7]
Joseph A. Goguen,et al.
Introducing Institutions
,
1983,
Logic of Programs.
[8]
Robin Milner,et al.
Calculi for Synchrony and Asynchrony
,
1983,
Theor. Comput. Sci..
[9]
Colin Stirling,et al.
A Generalization of Owicki-Gries's Hoare Logic for a Concurrent while Language
,
1988,
Theor. Comput. Sci..