By Topic

Algebraic Semantics of Imperative Programs

Cover Image Copyright Year: 1996
Author(s): Joseph A. Goguen; Grant Malcolm
Publisher: MIT Press
Content Type : Books & eBooks
Topics: Computing & Processing
  • Print

Abstract

Algebraic Semantics of Imperative Programs presents a self-contained and novel "executable" introduction to formal reasoning about imperative programs. The authors' primary goal is to improve programming ability by improving intuition about what programs mean and how they run.The semantics of imperative programs is specified in a formal, implemented notation, the language OBJ; this makes the semantics highly rigorous yet simple, and provides support for the mechanical verification of program properties.OBJ was designed for algebraic semantics; its declarations introduce symbols for sorts and functions, its statements are equations, and its computations are equational proofs. Thus, an OBJ "program" is an equational theory, and every OBJ computation proves some theorem about such a theory. This means that an OBJ program used for defining the semantics of a program already has a precise mathematical meaning. Moreover, standard techniques for mechanizing equational reasoning can be used for verifying axioms that describe the effect of imperative programs on abstract machines. These axioms can then be used in mechanical proofs of properties of programs.Intended for advanced undergraduates or beginning graduate students, Algebraic Semantics of Imperative Programs contains many examples and exercises in program verification, all of which can be done in OBJ.

  •   Click to expandTable of Contents

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Front Matter

      Page(s): i - 9
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: Half-Title, Foundations of Computing, Title, Copyright, Contents, Series Foreword, Introduction View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Background in General Algebra and OBJ

      Page(s): 11 - 50
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: Signatures, Algebras, Terms, Variables, Equations, Rewriting and Equational Deduction, Importing Modules, Literature, Exercises View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Stores, Variables, Values, and Assignment

      Page(s): 51 - 65
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: Stores, Variables, and Values View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Composition and Conditionals

      Page(s): 67 - 78
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: Sequential Composition, Conditionals, Structural Induction, Exercises View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Proving Program Correctness

      Page(s): 79 - 89
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: Example: Absolute Value, Example: Computing the Maximum of Two Values View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Iteration

      Page(s): 91 - 108
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: Invariants, Termination View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Arrays

      Page(s): 109 - 129
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: Some Simple Examples, Exercises, Specifications and Proofs, Exercises View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Procedures

      Page(s): 131 - 167
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: Non-recursive Procedures, Recursive Procedures View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Some Comparison with Other Approaches

      Page(s): 169 - 173
      Copyright Year: 1996

      MIT Press eBook Chapters

      Algebraic Semantics of Imperative Programs presents a self-contained and novel "executable" introduction to formal reasoning about imperative programs. The authors' primary goal is to improve programming ability by improving intuition about what programs mean and how they run.The semantics of imperative programs is specified in a formal, implemented notation, the language OBJ; this makes the semantics highly rigorous yet simple, and provides support for the mechanical verification of program properties.OBJ was designed for algebraic semantics; its declarations introduce symbols for sorts and functions, its statements are equations, and its computations are equational proofs. Thus, an OBJ "program" is an equational theory, and every OBJ computation proves some theorem about such a theory. This means that an OBJ program used for defining the semantics of a program already has a precise mathematical meaning. Moreover, standard techniques for mechanizing equational reasoning can be used for verifying axioms that describe the effect of imperative programs on abstract machines. These axioms can then be used in mechanical proofs of properties of programs.Intended for advanced undergraduates or beginning graduate students, Algebraic Semantics of Imperative Programs contains many examples and exercises in program verification, all of which can be done in OBJ. View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Summary of the Semantics

      Page(s): 175 - 184
      Copyright Year: 1996

      MIT Press eBook Chapters

      Algebraic Semantics of Imperative Programs presents a self-contained and novel "executable" introduction to formal reasoning about imperative programs. The authors' primary goal is to improve programming ability by improving intuition about what programs mean and how they run.The semantics of imperative programs is specified in a formal, implemented notation, the language OBJ; this makes the semantics highly rigorous yet simple, and provides support for the mechanical verification of program properties.OBJ was designed for algebraic semantics; its declarations introduce symbols for sorts and functions, its statements are equations, and its computations are equational proofs. Thus, an OBJ "program" is an equational theory, and every OBJ computation proves some theorem about such a theory. This means that an OBJ program used for defining the semantics of a program already has a precise mathematical meaning. Moreover, standard techniques for mechanizing equational reasoning can be used for verifying axioms that describe the effect of imperative programs on abstract machines. These axioms can then be used in mechanical proofs of properties of programs.Intended for advanced undergraduates or beginning graduate students, Algebraic Semantics of Imperative Programs contains many examples and exercises in program verification, all of which can be done in OBJ. View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      First Order Logic and Induction

      Page(s): 185 - 201
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: An Example, First Order Logic, Induction View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Order Sorted Algebra

      Page(s): 203 - 208
      Copyright Year: 1996

      MIT Press eBook Chapters

      This chapter contains sections titled: Retracts View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      OBJ3 Syntax

      Page(s): 209 - 214
      Copyright Year: 1996

      MIT Press eBook Chapters

      Algebraic Semantics of Imperative Programs presents a self-contained and novel "executable" introduction to formal reasoning about imperative programs. The authors' primary goal is to improve programming ability by improving intuition about what programs mean and how they run.The semantics of imperative programs is specified in a formal, implemented notation, the language OBJ; this makes the semantics highly rigorous yet simple, and provides support for the mechanical verification of program properties.OBJ was designed for algebraic semantics; its declarations introduce symbols for sorts and functions, its statements are equations, and its computations are equational proofs. Thus, an OBJ "program" is an equational theory, and every OBJ computation proves some theorem about such a theory. This means that an OBJ program used for defining the semantics of a program already has a precise mathematical meaning. Moreover, standard techniques for mechanizing equational reasoning can be used for verifying axioms that describe the effect of imperative programs on abstract machines. These axioms can then be used in mechanical proofs of properties of programs.Intended for advanced undergraduates or beginning graduate students, Algebraic Semantics of Imperative Programs contains many examples and exercises in program verification, all of which can be done in OBJ. View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Instructors' Guide

      Page(s): 215 - 222
      Copyright Year: 1996

      MIT Press eBook Chapters

      Algebraic Semantics of Imperative Programs presents a self-contained and novel "executable" introduction to formal reasoning about imperative programs. The authors' primary goal is to improve programming ability by improving intuition about what programs mean and how they run.The semantics of imperative programs is specified in a formal, implemented notation, the language OBJ; this makes the semantics highly rigorous yet simple, and provides support for the mechanical verification of program properties.OBJ was designed for algebraic semantics; its declarations introduce symbols for sorts and functions, its statements are equations, and its computations are equational proofs. Thus, an OBJ "program" is an equational theory, and every OBJ computation proves some theorem about such a theory. This means that an OBJ program used for defining the semantics of a program already has a precise mathematical meaning. Moreover, standard techniques for mechanizing equational reasoning can be used for verifying axioms that describe the effect of imperative programs on abstract machines. These axioms can then be used in mechanical proofs of properties of programs.Intended for advanced undergraduates or beginning graduate students, Algebraic Semantics of Imperative Programs contains many examples and exercises in program verification, all of which can be done in OBJ. View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Bibliography

      Page(s): 223 - 225
      Copyright Year: 1996

      MIT Press eBook Chapters

      Algebraic Semantics of Imperative Programs presents a self-contained and novel "executable" introduction to formal reasoning about imperative programs. The authors' primary goal is to improve programming ability by improving intuition about what programs mean and how they run.The semantics of imperative programs is specified in a formal, implemented notation, the language OBJ; this makes the semantics highly rigorous yet simple, and provides support for the mechanical verification of program properties.OBJ was designed for algebraic semantics; its declarations introduce symbols for sorts and functions, its statements are equations, and its computations are equational proofs. Thus, an OBJ "program" is an equational theory, and every OBJ computation proves some theorem about such a theory. This means that an OBJ program used for defining the semantics of a program already has a precise mathematical meaning. Moreover, standard techniques for mechanizing equational reasoning can be used for verifying axioms that describe the effect of imperative programs on abstract machines. These axioms can then be used in mechanical proofs of properties of programs.Intended for advanced undergraduates or beginning graduate students, Algebraic Semantics of Imperative Programs contains many examples and exercises in program verification, all of which can be done in OBJ. View full abstract»

    • Full text access may be available. Click article title to sign in or learn about subscription options.

      Index

      Page(s): 227 - 228
      Copyright Year: 1996

      MIT Press eBook Chapters

      Algebraic Semantics of Imperative Programs presents a self-contained and novel "executable" introduction to formal reasoning about imperative programs. The authors' primary goal is to improve programming ability by improving intuition about what programs mean and how they run.The semantics of imperative programs is specified in a formal, implemented notation, the language OBJ; this makes the semantics highly rigorous yet simple, and provides support for the mechanical verification of program properties.OBJ was designed for algebraic semantics; its declarations introduce symbols for sorts and functions, its statements are equations, and its computations are equational proofs. Thus, an OBJ "program" is an equational theory, and every OBJ computation proves some theorem about such a theory. This means that an OBJ program used for defining the semantics of a program already has a precise mathematical meaning. Moreover, standard techniques for mechanizing equational reasoning can be used for verifying axioms that describe the effect of imperative programs on abstract machines. These axioms can then be used in mechanical proofs of properties of programs.Intended for advanced undergraduates or beginning graduate students, Algebraic Semantics of Imperative Programs contains many examples and exercises in program verification, all of which can be done in OBJ. View full abstract»