Abstract
The paper describes a method of the systematic development of programs supplemented by specifications. A program in our sense consists of an instruction (the virtual program) plus the specification which in turn consists of a precondition, a postcondition and a set of assertions. Such a program is called correct if the instruction is totally correct wrt the pre- and postcondition, if it does not abort and if the set of assertions is adequate for the corresponding proof of correctness. In the presented method correct programs are developed by sound transformations. The method is illustrated by the derivation of a bubblesort program.
Preview
Unable to display preview. Download preview PDF.
References
Back, R. J., On the correctness of refinement steps in program development, Dept. of Computer Science, University of Helsinki, Report A-1978-4.
Bär, D., A Methodology for simultaneously developing and verifying PASCAL programs, in: Constructing Quality Software (Proc. IFIP TC-2 Working Conf., May 1977, Novosibirsk), North Holland, Amsterdam 1978.
Bjørner, D., The Vienna development method (VDM): Software specification & program synthesis, in: Mathematical Studies of Information Processing (Proc. Int. Conf. Kyoto, August 1978), 307–340, to appear in LNCS by Springer Verlag.
Blikle, A., A mathematical approach to the derivation of correct programs, in: Semantics of Programming Languages (Proc. Int. Workshop, Bad Honnef, March 1977), Abteilung Informatik, Universität Dortmund, Bericht Nr. 4,1 (1977), 25–29.
Blikle, A., Towards mathematical structured programming, in: Formal Description of Programming Concepts (Proc. IFIP Working Conf. St. Anarews, N.B. Canada, August 1–5, 1977, E.J. Neuhold, ed.), 183–202, North Holland, Amsterdam 1978.
Blikle, A., A comparative review of some program-verification methods. Mathematical Foundations of Computer Science 1977 (Proc. 6th Symp. Tatranska Lomnica, 1977), Lecture Notes in Computer Science 53, Springer Verlag, Heidelberg 1977, 17–33.
Blikle, A., Specified programming, in: Mathematical Studies of Information Processing (Proc. Int. Conf. Kyoto, August 1978).
Blikle, A., A survey of input-output semantics and program verification. ICS PAS Reports 344 (1979).
Blikle, A., On the development of correct programs with the documentation, College of Eng., University of California, Berkeley, Memo UCB/ERL, M7925, April 1979.
Burstall, R.M. and Darlington, J., A transformation system for developing recursive programs, J. ACM, 24 (1977), 44–67.
Darlington, J., Applications of program transformation to program synthesis, Proc. Symp. of Proving and Improving Programs, Arc-et-Senans 1975, pp. 133–144.
Darlington, J., Transforming specifications into efficient programs. New Directions in Algorithmic Languages 1976 (ed. S.A. Schuman), IRIA Rocquencourt 1976.
Dershowitz, N. and Manna, Z., Inference rules for program annotation, Report No. STAN-CS-77-631 (1977).
Dijkstra, E.W., A constructive approach to the problem of program correctness, BIT 8 (1968), 174–186.
Dijkstra, E.W., Guarded commands, non-determinism and a calculus for the derivation of programs, Proc. 1975 Int. Conf. Reliable Software, pp. 2.0–2.13. Also in: Comm. ACM, 18 (1975), 453–457.
Dijkstra, E.W., Formal techniques and sizable programs, Proc. 1st Conf. Eur. Coop. Inf. Amsterdam 1976, Lecture Notes Comput. Sci. 44, 225–235 (1976).
Emden van, M.H., Verification conditions as representations for programs, manuscript (1975).
Emden van, M.H., Unstructured systematic programming, Dept. CS, Univ. Waterloo, CS-76-09 (1976).
Erig, H., Kreowski, H.J., Padawitz, P., Stepwise specification and implementation of abstract data types, in: Automata Languages and Programming (Proc. Fifth Coll. Udine, July 1978), Springer-Verlag LNCS 62, New York 1978, 205–226.
Floyd, R.W., Assigning meanings to programs, Proc. Sym. in Applied Math., 19 (1967), 19–32.
Goguen, J., Some ideas in algebraic semantics, (manuscript) presented at IBM Conference in Kyoto (Japan), 1978.
Goguen, J.A., Thatcher, J.W., Wagner, E.G., Wright, J.B., Abstract data types as initial algebras and correctness of data representations, Proc. Conf. on Comp. Graphics, Pattern Recognition and Data Structure, May 1975, 89–93.
Guttag, J., Abstract data types and the development of data structures, Comm. ACM, 20 (1977), 396–404.
Irlik, J., Constructing iterative version of a system of recursive procedures, In: MFCS (Proc. Int. Symp. MFCS'76) Lecture Notes in CS, Springer-Verlag, Heidelberg 1976, vol. 45.
Lee, S., de Roever, W.R., Gerhart, S.L., The evolution of list-copying algorithms, 6th ACM Symposium on Principles of Programming Languages, January 1979.
Liskov, B.H., Zilles, S.N., Specification techniques for data abstraction, IEEE Trans. on SE Vol. Se-1, No. 1 (1975), 7–19.
Manna, Z., Mathematical Theory of Computation, McGraw-Hill, New York 1974.
Manna, Z., Pnueli, A., Axiomatic approach to total correctness of programs, Acta Informatica (1974).
McCarthy, J., A basis for a mathematical theory of computation, in: Computer Programming and Formal Systems, R. Braffort and D. Hirschberg eds., North-Holland, Amsterdam 1976, pp. 33–70.
Spitzen, J.M., Levitt, K.N., Lawrence, R., An example of hierarchial design and proof. New Directions in Algorithmic Languages 1976 (ed. S.A. Schuman), IRIA, Rocquencourt 1976.
Wegbreit, B., Goal-directed program transformations, IEEE TSE. Vol. SE-2, No. 2, (1976), 69–79.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1979 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Blikle, A.J. (1979). Assertion programming. In: Bečvář, J. (eds) Mathematical Foundations of Computer Science 1979. MFCS 1979. Lecture Notes in Computer Science, vol 74. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-09526-8_3
Download citation
DOI: https://doi.org/10.1007/3-540-09526-8_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-09526-2
Online ISBN: 978-3-540-35088-0
eBook Packages: Springer Book Archive