The foundations of program verification
The foundations of program verification
The logical basis for computer programming. Volume 1: deductive reasoning
The logical basis for computer programming. Volume 1: deductive reasoning
Programming language landscape: syntax, semantics, and implementation
Programming language landscape: syntax, semantics, and implementation
Data structures using Pascal
A mathematically focused curriculum for computer science
Communications of the ACM
The spine of software. Designing provably correct software: theory and practice
The spine of software. Designing provably correct software: theory and practice
Programming logics: an introduction to verification and semantics
Programming logics: an introduction to verification and semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Science of Programming
The Craft of Programming
Formal Specifications of Programming Language: A Panoramic Primer
Formal Specifications of Programming Language: A Panoramic Primer
Induction, Recursion and Programming
Induction, Recursion and Programming
Mathematical Theory of Program Correctness
Mathematical Theory of Program Correctness
The Denotational Description of Programming Languages: An Introduction
The Denotational Description of Programming Languages: An Introduction
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Introduction to Mathematical Theory of Computation
Introduction to Mathematical Theory of Computation
Elements of the Theory of Computation
Elements of the Theory of Computation
An Introduction to the PL/CV2 Programming Logic
An Introduction to the PL/CV2 Programming Logic
Introduction to Program Verification
Introduction to Program Verification
Hi-index | 0.00 |
We describe a first course in program verification and the semantics of programming languages developed for advanced undergraduate and beginning graduate students. The course is intended to support other courses in the curriculum that stress a disciplined approach to programming as well as to prepare students for more advanced courses in semantics and other areas such as software engineering and compiler technology. In order of emphasis, the course covers axiomatic, operational, translational, and denotational semantics. We discuss the development of the course, course prerequisites, the rationale for the selection of the topics covered, and the appropriateness of the course in the curriculum.