Freshly Printed - allow 8 days lead
Transitions and Trees
An Introduction to Structural Operational Semantics
A rigorous, self-contained introduction to the theory of operational semantics of programming languages and its use.
Hans Hüttel (Author)
9780521197465, Cambridge University Press
Hardback, published 29 April 2010
290 pages, 25 b/w illus. 75 tables 85 exercises
25.4 x 18 x 1.9 cm, 0.67 kg
'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
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.
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.
Subject Areas: Mathematical theory of computation [UYA], Functional programming [UMJ], Algorithms & data structures [UMB]