Table of contents
About this book
Thousands of different programming languages exist, and many more are being created each year, yet all those involved in such work must acknowledge that it is "the highest goal of programming-language design to enable good ideas to be elegantly expressed" These are the words of Sir Charles Antony Richard Hoare, or Tony Hoare to his colleagues and friends, a man who has inspired generations of researchers in computer science. His work, grounded in practical programming, has had a profound impact on the evolution of the field. This includes the development of Hoare logic and Communicating Sequential Processes (CSP).
Reflections on the Work of C.A.R. Hoare presents a comprehensive edited survey of all aspects of these subjects, with original contributions by more than 30 international leaders in the field. The book, while honoring Hoare's important contributions, assembles a collection of chapters showing the state of the art in programming languages, sequential programs, concurrency, and unified theories of programming.
Topics and features:
- Provides a scientific biography of Tony Hoare
- Demonstrates a principled combination of CSP and functional programming, and a CSP semantics for the π-calculus
- Reviews methods for proving Hoare formulae
- Investigates developments in game semantics and semantics based on the state monad
- Examines the satisfiability problem, void safety, and issues of auxiliary variables
- Introduces type families in Haskell and a description of Quicksort in Orc
- Describes an experiment using the Tokeneer archive, and a correctness proof of cryptographic protocols based on the Shadow Security model
- Presents a representation of CSP as a bigraphical reactive system, and shows how simple entities can be related to CSP processes
- Discusses the problem-frames approach, and explores algebraic properties of the new programming combinators
This accessible monograph is an ideal overview of theoretical and empirical evolution in programming logic and semantics of programming languages. It will serve as an invaluable resource for professionals, researchers, libraries, and students who are interested in broadening their knowledge in all of the areas covered.