Title: The B-book
First published: 1996
Description: The B method is a means for specifying, designing and coding software systems. The long-awaited B-Book is the standard reference for everything concerning this method. It contains the mathematical basis on which it is founded, the precise definitions of the notations used, and a large number of examples illustrating its use in practice.

J-R Abrial, the inventor of B, has written the book in such a way that it can be used for self-study or for reference. It is in four parts, the first dealing with the mathematical foundations, including a systematic construction of predicate logic and set theory, and the definition of the various mathematical structures that are needed to formalise software systems; special emphasis is placed on the notion of proof.

The second part contains a presentation of the Generalised Substitution Language and of the Abstract Machine Notation, which are both used to specify software systems; examples are given to show how large specifications can be constructed systematically.

The next part introduces the two basic programming features of sequencing and loop, with examples showing how to construct small algorithms. The last part covers the very important notion of refinement. It shows how to construct large software systems by means of layered architectures of modules. It culminates in the presentation of several examples of complete development with a special emphasis on the methodological approach.

Finally, appendices give summaries of all the logical and mathematical definitions and of all the rules and proof obligations. With the appearance of the B-Book, formal methods practitioners, computer scientists, and systems developers at last will have access to what is both the definitive account of the B method, and one of the standard references on the formal approach to the construction of software systems.
Subjects: B method (Computer science), Computer science, B (Computer program language), Computer programming
LC classification: QA76.9.B22 A27 1996