Problematic Features of Programming Languages: A Situational-Calculus Approach. Part I. Assignment Statements.

Abstract

Certain features of programming languages, such as data structure operations and procedure call mechanisms, have been found to resist formalization by classical techniques. An alternate approach is presented, based on a 'situational calculus,' which makes explicit reference to the states of a computation. For each state, a distinction is drawn between an expression, its value, and the location of the value. Within this conceptual framework, the features of a programming language can be described axiomatically. Programs in the language can then be synthesized, executed, verified, or transformed by performing deductions in this axiomatic system. Properties of entire classes of programs, and of programming languages, can also be expressed and proved in this way. The approach is amenable to machine implementation. In a situational-calculus formalism it is possible to model precisely many 'problematic' features of programming languages, including operations on such data structures as arrays, pointers, lists, and records, and such procedure call mechanisms as call-by-reference, call-by-value, and call-by-name. No particular obstacle is presented by aliasing between variables, by declarations, or by recursive procedures. The paper is divided into three parts, focusing respectively on the assignment statement, on data structure operations, and on procedure call mechanisms.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 1980
Accession Number
ADA091639

Entities

People

  • Richard Waldinger
  • Zohar Manna

Organizations

  • Stanford University

Tags

Communities of Interest

  • Autonomy
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Abstracts
  • Artificial Intelligence
  • Calculus
  • Classification
  • Computations
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Data Links
  • Language
  • Military Research
  • Programming Languages
  • Security
  • Semantics
  • Side Effects
  • Trees (Data Structures)

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Systems Analysis and Design