skip to main content
Skip header Section
Control flow semanticsJuly 1996
  • Authors:
  • Jaco de Bakker,
  • Erik de Vink
Publisher:
  • MIT Press
  • 55 Hayward St.
  • Cambridge
  • MA
  • United States
ISBN:978-0-262-04154-6
Published:31 July 1996
Pages:
564
Skip Bibliometrics Section
Reflects downloads up to 16 Jan 2025Bibliometrics
Abstract

No abstract available.

Cited By

  1. Ciobanu G and Todoran E (2023). Spiking neural P systems and their semantics in Haskell, Natural Computing: an international journal, 22:1, (41-54), Online publication date: 1-Mar-2023.
  2. ACM
    Sheng F, Zhu H, He J, Yang Z and Bowen J (2019). Theoretical and Practical Aspects of Linking Operational and Algebraic Semantics for MDESL, ACM Transactions on Software Engineering and Methodology, 28:3, (1-46), Online publication date: 31-Jul-2019.
  3. Ciobanu G and Todoran E (2017). Denotational semantics of membrane systems by using complete metric spaces, Theoretical Computer Science, 701:C, (85-108), Online publication date: 21-Nov-2017.
  4. Ciobanu G and Todoran E (2016). Correct metric semantics for a language inspired by DNA computing, Concurrency and Computation: Practice & Experience, 28:11, (3042-3060), Online publication date: 10-Aug-2016.
  5. Groenewegen L, Kuiper R and Vink E Towards a Proof Method for Paradigm Essays Dedicated to Frank de Boer on Theory and Practice of Formal Methods - Volume 9660, (242-260)
  6. Ciobanu G and Todoran E (2014). Continuation Semantics for Asynchronous Concurrency, Fundamenta Informaticae, 131:3-4, (373-388), Online publication date: 1-Jul-2014.
  7. Velebil J and Kurz A (2011). Equational presentations of functors and monads, Mathematical Structures in Computer Science, 21:2, (363-381), Online publication date: 1-Apr-2011.
  8. Rodríguez-López J, Romaguera S and Sánchez-Álvarez J (2010). The Hausdorff fuzzy quasi-metric, Fuzzy Sets and Systems, 161:8, (1078-1096), Online publication date: 1-Apr-2010.
  9. KüNzi H, RodríGuez-LóPez J and Romaguera S (2010). Hyperspaces of a weightable quasi-metric space, Mathematical and Computer Modelling: An International Journal, 52:5-6, (674-682), Online publication date: 1-Sep-2010.
  10. Chawdhary A and Yang H Metric spaces and termination analyses Proceedings of the 8th Asian conference on Programming languages and systems, (156-171)
  11. Jacquet J and Linden I Towards a theory of refinement in timed coordination languages Proceedings of the 9th international conference on Coordination models and languages, (113-131)
  12. ACM
    Kurz A (2006). Coalgebras and their logics, ACM SIGACT News, 37:2, (57-77), Online publication date: 1-Jun-2006.
  13. Brogi A, Jacquet J and Linden I (2019). Fully Abstract Semantics for a Coordination Model with Asynchronous Communication and Enhanced Matching, Fundamenta Informaticae, 73:4, (431-478), Online publication date: 1-Dec-2006.
  14. Harrison W The essence of multitasking Proceedings of the 11th international conference on Algebraic Methodology and Software Technology, (158-172)
  15. van Breugel F, Hermida C, Makkai M and Worrell J An accessible approach to behavioural pseudometrics Proceedings of the 32nd international conference on Automata, Languages and Programming, (1018-1030)
  16. Boer F, Vries W, Meyer J, Eijk R and Hoek W (2019). Process algebra and constraint programming for modeling interactions in MAS, Applicable Algebra in Engineering, Communication and Computing, 16:2-3, (113-150), Online publication date: 1-Aug-2005.
  17. Kupke C, Kurz A and Venema Y (2004). Stone coalgebras, Theoretical Computer Science, 327:1-2, (109-134), Online publication date: 25-Oct-2004.
  18. Alessi F, Baldan P and Honsell F (2003). A category of compositional domain-models for separable stone spaces, Theoretical Computer Science, 290:1, (599-635), Online publication date: 1-Jan-2003.
  19. Hermanns H (2002). Interactive Markov chains, 10.5555/1744274, Online publication date: 1-Jan-2002.
  20. ACM
    Tucker J and Zucker J (2002). Abstract computability and algebraic specification, ACM Transactions on Computational Logic (TOCL), 3:2, (279-333), Online publication date: 1-Apr-2002.
  21. ACM
    Todoran E and Papaspyrou N Continuations for parallel logic programming Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming, (257-267)
  22. Bjørner D and Cuéllar J (2018). Software engineering education, Annals of Software Engineering, 6:1-4, (365-409), Online publication date: 1-Apr-1999.
  23. den Hartog J, de Vink E and de Bakker J (2019). Full Abstractness of a Metric Semantics for Action Refinement, Fundamenta Informaticae, 40:4, (335-382), Online publication date: 1-Dec-1999.
  24. De Giacomo G, Lesperance Y and Levesque H Reasoning about concurrent execution, prioritized interrupts, and exogenous actions in the situation calculus Proceedings of the Fifteenth international joint conference on Artifical intelligence - Volume 2, (1221-1226)
Contributors
  • Center for Mathematics and Computer Science - Amsterdam
  • Eindhoven University of Technology

Reviews

Markus Wolf

This ambitious book introduces complete metric spaces for treating the semantics of no less than 27 programming languages and concepts. It is encyclopedic in content and can be a textbook for graduate students. A brief introduction explains the main ideas of operational and denotational semantics on a simple language of regular expressions and elaborates the notion of control flow. The main body of the book is then divided into four parts and an appendix. Each part is subdivided into chapters; each chapter treats a major programming concept by introducing the concept, presenting the mathematical tools necessary to model its semantics, giving operational and denotational semantics for the constructs, and proving the equality of these semantics. Most chapters close with a discussion of alternatives, some exercises, and an overview of the subject's historical development and the relevant literature. Part 1 treats the control flow notions of recursion and nondeterminism and, most important, introduces the main mathematical tools for modeling their semantics. The first chapter elaborates on recursion and iteration and introduces techniques for describing operational semantics with (labeled) transition systems. Complete metric spaces, contractive maps, and the Banach theorem are introduced next, and it is shown how these mathematical tools can be used to give denotational semantics to a simple recursive language. The chapter contains a detailed development of a proof of equivalence between an operational semantics and a denotational semantics. An important technique in this proof is the systematic use of continuations and a syntactic counterpart, called resumptions. This technique is used extensively in later chapters and makes the development in those chapters flow smoothly. The second chapter discusses the topological notions of the Hausdorff metric, compact sets, their properties, and the compact powerdomain. These tools are then used to provide operational and denotational semantics of a language containing a nondeterministic choice construct. The last chapter of this part presents variations: a form of a guarded command language and a language with goto statements. The second part of the book, “Linear Models,” treats semantics that are ultimately based on sequences or traces of actions. No major new mathematical tools are introduced in this part, but a lot of previously untreated programming constructs are discussed. Chapter 4 treats a parallel composition operator and models its semantics in the interleaving manner. Chapter 5 introduces unbounded nondeterminism and discusses image-finite transition systems and the closed power domain. Chapter 6 treats locality in the sense of local variables and procedures with parameters. The next chapter introduces nonuniform parallelism in the sense of adding parallel composition to a while-programming language, resulting in shared variables and side effects. Chapter 8 revisits recursion and presents the &mgr;-calculus. The last chapter in this part (chapter 9) introduces the notions of backtracking and failure. This chapter is quite interesting, because the development of semantics manages, by introducing more complex notions of resumptions (nested resumptions), to follow the common scheme used throughout the book. These concepts are then used to model processes, viewed as stream transformers with dedicated input/output channels, together with a fork construct. Part 3 introduces new mathematical tools and more advanced concurrent programming concepts, such as deadlock, synchronization, and value-passing communication. The first chapter of this part (chapter 10) discusses tools needed for this development: domain equations (domains in this case are complete metric spaces) and how to solve them in order to treat the denotational semantics, and bisimulation between (labeled) transition systems in order to treat the operational semantics. The next chapter is devoted to branching domains, that is, domains that have a tree-like structure, and their use in modeling deadlock and synchronization. Chapter 12 is devoted to advanced topics in nonuniform parallelism, treating suspension (used, for example, in concurrent constraint languages) and value passing along communication channels. Chapter 13 discusses the treatment of processes with an encapsulated state that communicate via messages, that is, concurrent objects. This chapter is particularly interesting because the use of resumptions to model operational semantics is refined to cope with these concepts. The last chapter in this part presents semantic techniques for modeling atomization, commit, and action refinement. The last part of the book intends to show connections to other areas where the techniques developed in the first three parts can be useful. Chapter 15 discusses applications of the techniques to the control flow of logic programming by viewing Horn logic as a form of parallel programming language. Chapter 16 investigates issues of “true concurrency” (in contrast to the interleaving view taken throughout most of the book). Chapter 17 is devoted to the concept of full abstractness, that is, that the denotational semantics does not distinguish terms that are not distinguishable in every context in the operational semantics. The last chapter treats second-order assignments. The appendix is devoted to proofs and concepts that are too technical to be incorporated into the main body of the book. The first chapter of the appendix presents proofs of some of the topological theorems used in the first part of the book. The next chapter sheds light on some issues of operational semantics generated by finitely branching transition systems that had not been proven in chapters 2 and 5. The third chapter elaborates on the solving of domain equations and supplies some missing proofs. The last chapter of the appendix lists a few of the most important textbooks on semantics, programming logics, and functional programming. This book is important because it presents a nearly complete view of what metric techniques can accomplish for denotational semantics, without pretending that everything can be adequately modeled with complete metric spaces (although the staggering number of programming concepts might suggest this). It nearly succeeds in its ambitious aims, being a good textbook and a good reference work. There are a lot of pointers to the literature and well-chosen exercises, especially in Part 1. After studying the first part, most chapters are relatively self-contained and invite browsing. However, there are a few flaws. The index is much too short for a reference work. Most annoying, at least to me, is the fact that, although 27 different languages are defined, there is no appendix summarizing the syntax rules and labeled transition system for each language. Furthermore, neither syntax rules nor the transition systems are boxed in the text and, due to the compact definition styles, it is sometimes difficult to find the syntax rules or operational semantics. Such summaries, one for each language, would have made the book much easier to use. Maybe this flaw can be corrected in a second edition.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations