by Benjamin C. Pierce
Publisher: University of Pennsylvania 2010
These are notes for a one-semester course on Software Foundations -- the mathematical theory of programming and programming languages -- suitable for graduate or upper-level undergraduate students. They develop basic concepts of functional programming, logic, operational semantics, lambda-calculus, and static type systems, using the Coq proof assistant.
Home page url
Download or read it online for free here:
by Leslie Lamport - Addison-Wesley Professional
This book shows how to write unambiguous specifications of complex computer systems. It provides a complete reference manual for the TLA+, the language developed by the author for writing simple and elegant specifications of algorithms and protocols.
by C.A.R. Hoare - Prentice Hall
CSP is a language for describing patterns of interaction. It is supported by an elegant mathematical theory, a set of proof tools, and an extensive literature. The book is an excellent introduction to the language, and also to the mathematical theory.
by Antoni Niederlinski
Introductory and down-to-earth presentation of Constraint Logic Programming, an exciting software paradigm, more and more popular for solving combinatorial as well as continuous constraint satisfaction problems and constraint optimization problems.
by Cliff B. Jones and Robert C. F. Shaw - Prentice Hall
This book covers the case studies on the application of the most widely known formal methods in software development, the Vienna Development Method. VDM was developed in an industrial environment but has also evoked considerable academic research.