Structural operational semantics is a simple, yet powerful mathematical theory for describing the behaviour of programs in an implementation-independent manner. This book provides a self-contained introduction to structural operational semantics, featuring semantic definitions using big-step and small-step semantics of many standard programming language constructs, including control structures, structured declarations and objects, parameter mechanisms and procedural abstraction, concurrency, nondeterminism and the features of functional programming languages. Along the way, the text introduces and applies the relevant proof techniques, including forms of induction and notions of semantic equivalence (including bisimilarity). Thoroughly class-tested, this book has evolved from lecture notes used by the author over a 10-year period at Aalborg University to teach undergraduate and graduate students. The result is a thorough introduction that makes the subject clear to students and computing professionals without sacrificing its rigour. No experience with any specific programming language is required.
Hans Huttel (Aalborg University Denmark)
Cambridge University Press
Country of Publication:
29 April 2010
Professional and scholarly
List of illustrations; List of tables; Preface; About the illustrations; Part I. Background: 1. A question of semantics; 2. Mathematical preliminaries; Part II. First Examples: 3. The basic principles; 4. Basic imperative statements; Part III. Language Constructs: 5. Control structures; 6. Blocks and procedures (1); 7. Parameters; 8. Concurrent communicating processes; 9. Structured declarations; 10. Blocks and procedures (2); 11. Concurrent object-oriented languages; 12. Functional programming languages; Part IV. Related Topics: 13. Typed programming languages; 14. An introduction to denotational semantics; 15. Recursive definitions; Appendix A. A big-step semantics of Bip; Appendix B. Implementing semantic definitions in SML; References; Index.
Hans Huttel is Associate Professor in the Department of Computer Science at Aalborg University, Denmark.
Reviews for Transitions and Trees: An Introduction to Structural Operational Semantics
'This book explains how programming languages actually work, with a wealth of examples. It shows convincingly that these languages go hand-in-hand with the simplest kind of logic. I would enjoy teaching from it.' Robin Milner, University of Cambridge 'A useful and thorough introduction to the structural operational semantics of programming languages.' Gordon Plotkin, University of Edinburgh 'This book is an excellent introduction to the theory of structured operational semantics, an ideal choice for a first course on semantics for students in computer science. The book covers the theory all the way from a few simple mathematical preliminaries to advanced examples of its use in describing and reasoning about modern programming language features. The presentation is a result of the author's experience in teaching the material over more than ten years, and it is unique in its pedagogical approach, guiding the reader gently via illustrative examples and exercises, as well as several invitations to the reader to pause and reflect: a moment's thought.' Mogens Nielsen, Aarhus University Each chapter of the book contains various examples and problems, making it very suitable for teaching purposes. There are more than enough bibliographical directions for starting a thorough study of any of the presented topics. The book does not limit itself to structural operational semantics; it provides introductory information on several related topics. All of these aspects make the book a well-rounded presentation on the subject. The book can be successfully used by students, professionals, and researchers as a good introduction to the semantics of programming languages that will help them describe and reason about the behavior of programs. G. Ciobanu, Computing Reviews Transitions and Trees is a detailed, rigorous, and thorough textbook on structural operational semantics on an advanced undergraduate level. The book's strength is the comprehensive coverage of many aspects of structural operational semantics. Transitions and Trees is generally well written and the large number of examples and interspersed exercises help in understanding the material. Stephan Falke for SIGACT News