Foundations of Algebraic Specification and Formal Software Development
Author | : Donald Sannella |
Publisher | : Springer Science & Business Media |
Total Pages | : 594 |
Release | : 2012-01-05 |
ISBN-10 | : 9783642173363 |
ISBN-13 | : 3642173365 |
Rating | : 4/5 (365 Downloads) |
Download or read book Foundations of Algebraic Specification and Formal Software Development written by Donald Sannella and published by Springer Science & Business Media. This book was released on 2012-01-05 with total page 594 pages. Available in PDF, EPUB and Kindle. Book excerpt: This book provides foundations for software specification and formal software development from the perspective of work on algebraic specification, concentrating on developing basic concepts and studying their fundamental properties. These foundations are built on a solid mathematical basis, using elements of universal algebra, category theory and logic, and this mathematical toolbox provides a convenient language for precisely formulating the concepts involved in software specification and development. Once formally defined, these notions become subject to mathematical investigation, and this interplay between mathematics and software engineering yields results that are mathematically interesting, conceptually revealing, and practically useful. The theory presented by the authors has its origins in work on algebraic specifications that started in the early 1970s, and their treatment is comprehensive. This book contains five kinds of material: the requisite mathematical foundations; traditional algebraic specifications; elements of the theory of institutions; formal specification and development; and proof methods. While the book is self-contained, mathematical maturity and familiarity with the problems of software engineering is required; and in the examples that directly relate to programming, the authors assume acquaintance with the concepts of functional programming. The book will be of value to researchers and advanced graduate students in the areas of programming and theoretical computer science.