Program execution is not adequately reflected in usual syntactic programming language definition by formal grammar, although either actual or mental execution is referred to during reading (tracing) and correctness proving. An advanced programming languages definition associates in input/output variables, the domain, and the computable function with each program. It is based on a computer automaton when inputs from In, states from St are viewed as instructions, memory states, respectively. The heart of it, is its transition (next-state) function trans: In x St → St.Arithmetic symbols occuring in a program are interpreted (by programmer) in usual infinite arithmetics during problem solving while they are interpreted (by a computer) in finite computer arithmetics when the program is executed. The program is characterized by its execution-semantics expressed in its control (next-instruction) function contr: In x St → In. The discrepancy between finite and infinite interpretation-semantics are studied as suggested in [Hoar 69], in particular, the two computable functions are compared.Total and partial correctness [Mann 74] does not show which interpretation should be considered; therefore, the third component of a proof of correctness, a domain correctness proof, is added.
[1]
J. K. Iliffe.
Advanced computer design
,
1982
.
[2]
Nai-Kuan Tsao.
Error Complexity Analysis of Algorithms for Matrix Multiplication and Matrix Chain Product
,
1981,
IEEE Trans. Computers.
[3]
Zohar Manna,et al.
Introduction to mathematical theory of computation
,
1972
.
[4]
C. A. R. Hoare,et al.
An axiomatic basis for computer programming
,
1969,
CACM.
[5]
Glen G. Langdon,et al.
Computer Design
,
1982
.
[6]
Flaviu Cristian,et al.
Systematic Detection of Exception Occurrences
,
1981,
Sci. Comput. Program..