Theory of Compiler Specification and Verification.

Abstract

The formal specification, design, implementation, and verification of a compiler for a Pascal-like language is described. All components of the compilation process such as scanning, parsing, type checking, and code generation are considered. The implemented language contains most control structures of Pascal, recursive procedures and functions, and jumps. It provides user defined data types including arrays, records, and pointers. A simple facility for input-output is provided. The target language assumes a stack machine including a display mechanism to handle procedure and function calls. The compiler itself is written in Pascal Plus, a dialect of Pascal accepted by the Stanford verifier. The Stanford verifier is used to give a complete formal machine checked verification of the compiler. One of the main problem areas considered is the formal mathematical treatment of programming languages and compilers suitable as input for automated program verification systems. Several technical and methodological problems of mechanically verifying large software systems are considered. Some new verification techniques are developed, notably methods to reason about pointers, fixed points, and quantification. These techniques are of general importance and are not limited to compiler verification. The result of this research demonstrates that construction of large correct programs is possible with the existing verification technology. It indicates that verification will become a useful software engineering tool in the future. Several problem areas of current verification systems are pointed out and areas for future research are outlined. (Author)

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 1980
Accession Number
ADA094604

Entities

People

  • Wolfgang Heinz Polak

Organizations

  • Stanford University

Tags

DTIC Thesaurus Topics

  • Command And Control
  • Command Control Communications
  • Computer Programming
  • Computer Science
  • Computers
  • Construction
  • Contracts
  • Department Of Defense
  • Department Of Veterans Affairs
  • Engineering
  • Governments
  • Language
  • Plastic Explosives
  • Programming Languages
  • Software Development
  • Specifications
  • Tank Guns

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Mathematical Modeling and Probability Theory.