Summary
Deterministic programs are rules for functions; their specifications are relations. Designing a program to meet a specification (relation) R amounts to determining a function that meets some consistency requirement with R. This problem becomes more complex when relation R is complex, hence the potential need to decompose relation R. Complex relations can be built from simpler relations by relative product, union or transitive closure; hence complex relations (specifications) can be decomposed into simpler ones by writing them as a relative product, a union or a transitive closure of simpler ones. These decomposition strategies correspond to the traditional programming language constructs of sequence (;), alternative (if-then-else) and iteration (while-do). This paper presents relational decomposition rules and discusses their validity and significance.
Similar content being viewed by others
References
Manna, Z., Waldinger, R.: The Logic of Computer Programming. IEEE-TSE SE-4(3) 199–229 (1978)
Mills, H.D.: The New Math of Computer Programming. CACM 18(1) 43–48 (1975)
Mills, H.D., Austing, R.H., Basili, V.R., Gannon, J.D., Hamlet, R.G., Kohl, J.E., Schniederman, B.: The Calculus of Computer Programming, Vol. I. Boston, MA: Allyn and Bacon (to appear)
Morris, J.H., Wegbreit, B.: Program Verification by Subgoal Induction. Current Trends in Programming Methodology, Vol II, Chapter 8. Yeh, R.T. (ed.). New York: Prentice-Hall, 1977.
Tarski, A.: On The Calculus of Relations. The Journal of Symbolic Logic, 6(3), 73–89 (1941)
Author information
Authors and Affiliations
Additional information
This research is supported by the Research Council of Canada under grant number A 2509
Also McGill University in Montreal, Canada
Rights and permissions
About this article
Cite this article
Mili, A. A relational approach to the design of deterministic programs. Acta Informatica 20, 315–328 (1983). https://doi.org/10.1007/BF00264277
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00264277