{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

# I4-2 - Sedma Nacionalna Konferencija so Me|unarodno U~estvo...

This preview shows pages 1–2. Sign up to view the full content.

DIJKSTRA'S APPROACH TO SOLVING A PROBLEM OF PROGRAM CORRECTNESS Branko Markoski 1 , Dušan Malbaški 1 , Petar Hotomski 2 1 University of Novi Sad, Faculty of Technical Sciences, Institute of Computing and Control, Serbia and Montenegro, [email protected]ns.ac.yu 2 University of Novi Sad, Technical Faculty "Mihajlo Pupin" Zrenjanin, Serbia and Montenegro Abstract – Proving program correctness and designing correct programs are two connected theoretical problems of great practical importance. First one is being solved within program analysis, and second in program synthesis, although intertwining of these processes is often due to connection between analyze and synthesis of programs. Nevertheless, having in mind automated methods of proving correctness and methods of automatic program synthesis, difference is easy to tell. This paper presents denotation interpretation of programming calculation giving semantics by formulae ϕ and ψ , in such a way to use them for definition of state sets for program P. Keywords – Dijkstra, denotation interpretation, predicate, terminate, operator 1. INTRODUCTION We are citing, according to [ Č ub, 1989 ] main results based on matemathical-logical approach (Floyd, Manna, Waldinger, Weisman, Ness). For every program a question of termination and correctness is presented, and for two programs - question of their equivalence. Using directed graph, a notion of abstract (non- interpreted) program is defined. Partially interpreted program is than obtained using interpretation of functional, predicate and constants symbols. Realized program is obtained by interpretation of free variables within a partially interpreted program. Functioning of realized program may be followed by its executing sequence . According to [ Dijkstra, 1988 ] basic assumptions of programming logic are given. Interesting system is one which would, starting from initial state, "terminate" in final state (which, as a rule, depends on choice of initial state). We assume that input value is presented in choice of initial state and that output value is presented in final state. "Condition characterizing a set of all initial states, from which activation surely leads to correct termination of events in such a way that leaves a system in final state satisfying given conclusion is called widest precondition regarding that conclusion" [Dijkstra, 1988]. If a mechanism or machine as a system is noted as S, and desired conclusion as R, than widest precondition may be noted as follows: wp(S,R) where wp is a function of two arguments of S and a predicate R. Semantics of some mechanism is known well enough if we know its predicate transformer, which tells us that for every conclusion R we may derive the widest precondition (noted as wp(S,R)).

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}