Dijkstra's interpretation of the approach to solving a problem of program correctness

Authors

  • Branko Markoski Technical Faculty, "Mihajlo Pupin", Zrenjanin
  • Petar Hotomski Technical Faculty "Mihajlo Pupin", Zrenjanin
  • Dušan Malbaški Faculty of Technical Sciences, Institute of Computing and Control, Novi Sad
  • Danilo Obradović Faculty of Technical Sciences, Institute of Computing and Control, Novi Sad

DOI:

https://doi.org/10.2298/YJOR1002229M

Keywords:

Dijkstra, denotative interpretation, predicate, terminate, operator.

Abstract

Proving the program correctness and designing the correct programs are two connected theoretical problems, which are of great practical importance. The first is solved within program analysis, and the second one in program synthesis, although intertwining of these two processes is often due to connection between the analysis and synthesis of programs. Nevertheless, having in mind the automated methods of proving correctness and methods of automatic program synthesis, the difference is easy to tell. This paper presents denotative interpretation of programming calculation explaining semantics by formulae φ and ψ, in such a way that they can be used for defining state sets for program P.

References

de Boer, F.S., Gabbrielli,, Meo, M.C. (2000) A timed concurrent constraint language. Information and Computation, August 25

Dijkstra, E.W. (1993) A discipline of programming. Englewood Cliffs, NJ, itd: Prentice Hall

Dijkstra, E.W. (1997) A Discipline of Programming. Upper Saddle River,NJ: Prentice Hall

Floyd, R.W. (1980) Assigning meanings to programs. u: Symposium in Applied Math., Mathematical Aspects of Computer Science, Proceedings, American Mathematical Society, 19, str. 19-32

Harrison-Gegg, T.S., Buce, G.R., Ganetyky, D., Rebecca, O.C.M., Wilson, J.D. (2003) Studying program correctness. u: Proceedings of the 8th Annual Conference on Innovation and Technology in Computer Science Education, Thessalonica, Greece

Hoare, C.A. (1969) An axiomatic basis for computer programming. Communications of the ACM, 12(10): 576

Hoare, C.A., Wirth, N. (1973) An axiomatic definition of the programming language PASCAL. Acta Informatica, 2(4): 335

Hoare, C.A.R. (1980) Notes on data structuring. u: Dahl Dijkstra [ur.] Hoare Structured programming, Academic Press, str. 83-174

Lacey, D., Jones, D.N., Wyk, E.V., Frederiksen, C.C. (2002) Proving correctness of complier optimations by temporal logic. u: Proceedings of the 29th ACM SIGPLAN -SIGAST Symposium on Principles of programming languages, Portland

Manna, Z. (1969) The correctness of programs. Journal of Computer and System Sciences, 3 (2)

Paul, C., Jorgensen (1995) Software testing. CRC Press

Sands, D. (1995) Total correctness by local improvement in program transformation. u: ACM SIGPLAN -SIGAST symposium on Principles of programming languages (22), S. Francisco, Proceedings

Scott, E., Zadirov, A., Feinberg, S., Jayakody, R. (2003) u: Proceedings of Informing Science Educational Technology Education Joint Conference, Pori

Valencia, F.D. (2000) Reactive constraint programming. Denmark: Centre for Basic Research in Computer Science (Brics), Tech. rep

Downloads

Published

2010-09-01

Issue

Section

Research Articles