Nothing Special   »   [go: up one dir, main page]

skip to main content
LOGICS OF PROGRAMS: AXIOMATICS AND DESCRIPTIVE POWERMay 1978
1978 Technical Report
Publisher:
  • Massachusetts Institute of Technology
  • 201 Vassar Street, W59-200 Cambridge, MA
  • United States
Published:01 May 1978
Reflects downloads up to 14 Dec 2024Bibliometrics
Skip Abstract Section
Abstract

This thesis is concerned with the development of mathematical tools for reasoning about computer programs. The approach is to design and investigate the properties of various dynamic logics with an emphasis on useful expressive power and adequate proof theory. First, rigorous definitions of the propositional and first-order dynamic logics are given, with an emphasis on the flexibility obtained by leaving unspecified the class of programs which these logics can discuss. A large portion of the result obtained to date in the investigation of dynamic logic is included and put in proper perspective. Then, a proof theory is developed based upon the idea of axiomatizing the first order dynamic logics relative to arithmetical universes. Such axiomatizations are supplied and proved arithmetically complete for the regular (flowcharts) and context-free (recursive programs) cases. The notions of diverging and failing are then introduced, with the aid of which the concept of the total correctness of a nondeterministic program is defined and the concept of a weakest precondition clarified. A detailed investigation of the properties of diverging and failing is then carried out, including the construction of arithmetically complete axiomatizations of both the regular and context-free logics obtained by supply dynamic logic with the ability to discuss diverging directly. If a termination condition, a list of zero or more objects, and a new environment; the termination condition is used to govern control flow. This uniform treatment of expressions and statements allows a simple definition of the run-time exception handling mechanism provided in CLU. The meaning of a procedure generator or iterator generator is a function that takes a list of actual parameters, a list of arguments, and an environment, and produces a result as for statement and expression evaluation. The meaning of parameters is given in terms of textual substitution. A non-parameterized routine is viewed as being a generator with an empty parameter list. The meaning of a cluster is a function that takes a list of actual cluster parameters and an operation name, and produces the meaning of that operation.

Contributors
  • Weizmann Institute of Science Israel
Please enable JavaScript to view thecomments powered by Disqus.

Recommendations