Algebraic Laws for Nondeterminism and Concurrency

Total Page:16

File Type:pdf, Size:1020Kb

Algebraic Laws for Nondeterminism and Concurrency Algebraic Laws for Nondeterminism and Concurrency MATTHEW HENNESSY AND ROBIN MILNER University of Edinburgh, Edinburgh, Scotland Abstract. Since a nondeterministic and concurrent program may, in general, communicate repeatedly with its environment, its meaning cannot be presented naturally as an input/output function (as is often done in the denotational approach to semantics). In this paper, an alternative is put forth. First, a definition is given of what it is for two programs or program parts to be equivalent for all observers; then two program parts are said to be observation congruent iff they are, in all program contexts, equivalent. The behavior of a program part, that is, its meaning, is defined to be its observation congruence class. The paper demonstrates, for a sequence of simple languages expressing finite (terminating) behaviors, that in each case observation congruence can be axiomatized algebraically. Moreover, with the addition of recursion and another simple extension, the algebraic language described here becomes a calculus for writing and specifying concurrent programs and for proving their properties. Categories and Subject Descriptors: F.3.2 [Logics and Meanings of Programs]:Semantics of Program- ming Languages-algebraic approaches to semantics General Terms: Theory Additional Key Words and Phrases: Communicating processes,observational equivalence 1. Introduction The denotational approach to the semantics of programming languageshas been well developed in recent years [ 1, 111and applied successfullyto many nontrivial languages.Even languageswith parallel constructs have been treated in this way, using the power-domain constructions of [3], [7], and [lo]. Indeed for such languagesthere is no shortage of possible denotational models. For example, there are severalsimple variations on the model for processes,introduced in [4]. In the face of such an abundance, it is best to recall the motivation for seeking such models. They provide a useful mathematical framework for the analysis of programs, and for developing logical systemsfor proving their properties. However, if either the mathematics or the logic is to have any relevance,a link must be made between the denotational model and the behavior, or operational semantics,of the programs. One way of making the link is to demand that the denotational model befully abstract with respectto the operational semantics.This means simply that two program phrases should have the same denotation if, and only if, the opera- A preliminary version of this paper, entitled “On Observing Nondeterminism and Concurrency,” appeared in the Proceedings of the 7th Colloquium on Automata, Languages and Programming. Lecture Notes in Computer Science, vol. 85. Springer-Verlag, New York, Berlin, Heidelberg, 1980, pp. 299- 309. Those. portions that appeared in the preliminary are reprinted with permission of Springer-Verlag. Authors’ address: Department of Computer Science, James Clerk Maxwell Building, The Kings Buildings, University of Edinburgh, Mayfield Road, Edinburgh EH9 352, Scotland. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. 0 1985 ACM 0004-541 l/85/0100-0137 $00.75 Journal of the Association for Computing Machinery. Vol. 32, No. I, January 1985, pp. 137-161 138 M. HENNESSYAND R. MILNER tional meaning of every program remains unchanged when one phrase is replaced by the other. What exactly is meant by the behavior of nondeterministic or concurrent programs is far from clear and in this paper we put forth one possible definition. The essenceof our approach is that the behavior of a program is determined by how it communicates with an observer.We begin by assumingthat every program action is observable in this way; later we allow that some actions (in particular, internal communications between concurrent components) are not observable. We apply our d.efinition to a sequence of simple languages for expressing programs with finite behavior, and show that in each case it can be characterized by algebraic axioms. This leads automatically to a fully abstract model; it is just the initial algebra generated by the axioms. Moreover, a proper understanding of the finite case seerns a necessary prelude to a study of programs with infinite behavior. Such programs may be gained simply by adding recursion to our languages. In fact, with the alddition of recursion and with a natural extension to allow data valuesto be communicated between concurrently active agents,the simple algebra described here becomesa languagefor writing and specifying concurrent programs and for proving their properties. This languagewas introduced in [5]; it was partly the need for a firm basis for the algebraic laws discussed there that led to the present study of observation equivalence. In Section 2 we present our general framework. In Sections 3-6 we outline and summarize our results for the languagesconsidered. Proofs of the main results are contained in Appendixes A-C. The present paper is a full presentation, complete with proofs, of results first announced without proof in [2]. 2. Observational Equivalence of Processes 2.1. EQUIVALENCE. In this section we introduce a way of defining equivalence between programs t.hat is based entirely on operational considerations; informally, two programs are equivalent when no observations can distinguish them. Further, two subprograms or program phrasesare congruent if the result of placing each of them in any progralm context yields two equivalent programs. Then, considering the phrasesas modules, one can be exchangedfor the other in any program without affecting the observedbehavior of the latter. However, much is left vague by this prescription. First, what are obse;ations? Second, how can they be used to distinguish programs? In this section we answer these two questions, thereby obtaining a precise notion of equivalence, and hence also of congruence. Note that the answer to the first question does not determine the answer to the second; observations may be used in many different ways to distinguish more or fewer programs. We cannot argue that our answer is best, only that it is natural; to this end, we give an alternative characterization of the resulting equivalence relation in Section 2.2. In the caseof deterministic sequential programs, the behavior of a program p is usually taken to be its input-output function IO(p). Here, an observation of p is taken to be a pair of states(or values):an input state and the resulting output state (if any). Then proyFamsp and q are equivalent, written p - q, if they yield the same observation sets; that is, if IO(p) = IO(q). The corresponding congruence relation -c is then defined as follows: p -c q if for every suitable program context 55[ 1, JZb] - .Y[q]. If the language is defined algebraically, that is, by operations Algebraic Laws for Nondeterminism and Concurrency 139 for constructing new programs from ones already defined, the wCturns out to be the largest congruence relation included in -. However, any satisfactory comparison of the behavior of concurrent programs must take into account their intermediate states as they progress through a computation, because differing intermediate states can be exploited in different program contexts to produce different overall behavior (e.g., deadlock). With this in mind, we now proceed to a more refined notion of behavioral equivalence, which we call observational equivalence. This notion may be defined for objects more general than programs, which (for the remainder of the present section) we shall call processes. Let P, then, be a set of objects that we may think of as processes.We take the view that any observation of p E P entails some participation by p itself; p is an active participant, as well as the observer. Thus, the act of observing a process changesits state. So if we adopt the familiar technique of identifying the state of a processwith the processitself, we can say that observation changesthe processinto a new process.This changemay not be deterministic; hence the effect of a particular type of observation-applied to an arbitrary process-may be captured by a binary relation over P. In general, we presupposea set Z of possible types of observation, so we then have a set (Ri C P x P, i E I) of observation relations. Using these relations, we define a sequence of equivalence relations -” over P (n 2 0), in such a way that N~+IC -,,, as follows: p m. q ifp, q E P (i.e., m. = P x P); p -n+l q if for every i E Z, (i) (p, p’) E Ri implies, for some q’, (q, q’) E R; and p’ -,, q’; (ii) (q, q’ ) E Ri implies, for some p’, (p, p’) E Ri and p’ -R q’. Then p and q are observationally equivalent, written p - q, if p -,, q for every n. Thus, we have defined - to be fl, -,,. In fact, we have taken - to be the limit n, E”( P x P), where E(S) is defined for any S G P x P as follows: (p, q) E E(S) if for every i E Z (i) (p, p’) E Ri implies, for some q’, (q, q’) E Ri and (p’, q’) E S; (ii) (q, q’ ) E Ri implies, for some p’, (p, p’) E Ri and (p’, q’) E S. Now if E has the property that E(fl, Sn) = fl, (E(S,)) for every decreasing sequenceS, of relations, that is if E is anticontinuous, then it follows from classical fixed-point theory that - is the maximum fixed-point of the map E of relations. Let us say that R C P x P is image-finite if, for each p E P, (p’ 1(p, p’) E RJ is finite.
Recommended publications
  • The Origins of Structural Operational Semantics
    The Origins of Structural Operational Semantics Gordon D. Plotkin Laboratory for Foundations of Computer Science, School of Informatics, University of Edinburgh, King’s Buildings, Edinburgh EH9 3JZ, Scotland I am delighted to see my Aarhus notes [59] on SOS, Structural Operational Semantics, published as part of this special issue. The notes already contain some historical remarks, but the reader may be interested to know more of the personal intellectual context in which they arose. I must straightaway admit that at this distance in time I do not claim total accuracy or completeness: what I write should rather be considered as a reconstruction, based on (possibly faulty) memory, papers, old notes and consultations with colleagues. As a postgraduate I learnt the untyped λ-calculus from Rod Burstall. I was further deeply impressed by the work of Peter Landin on the semantics of pro- gramming languages [34–37] which includes his abstract SECD machine. One should also single out John McCarthy’s contributions [45–48], which include his 1962 introduction of abstract syntax, an essential tool, then and since, for all approaches to the semantics of programming languages. The IBM Vienna school [42, 41] were interested in specifying real programming languages, and, in particular, worked on an abstract interpreting machine for PL/I using VDL, their Vienna Definition Language; they were influenced by the ideas of McCarthy, Landin and Elgot [18]. I remember attending a seminar at Edinburgh where the intricacies of their PL/I abstract machine were explained. The states of these machines are tuples of various kinds of complex trees and there is also a stack of environments; the transition rules involve much tree traversal to access syntactical control points, handle jumps, and to manage concurrency.
    [Show full text]
  • Edinburgh, 16Th – 18Th April 2012 the Symposium About Robin Who Should Attend Robin Milner Funding Speakers Venue Scientific C
    Milner Symposium Edinburgh, 16th – 18th April 2012 The symposium Robin Milner The Milner Symposium is a celebration of the life and work of one of the world’s greatest computer scientists, Robin Milner. The symposium will feature leading researchers whose work is inspired by Robin Milner. About Robin Professor Robin Milner FRS FRSE (1934–2010) was an internationally leading researcher in theoretical computer science. He worked in the Department of Computer Science of the University of Edinburgh from 1973 to 1998, and was the prime mover in the creation of the Laboratory for the Foundations of Computer Science. He subsequently served as chair of computer science at Cambridge. His vision of a new science of information, broader than computer science, inspired the formation of Informatics at Edinburgh and he chaired the international committee which recommended its foundation. He received many prestigious awards, including computing’s highest honour, the ACM A.M. Turing Award in 1991. Who should attend The symposium will bring together leading researchers from around the world and provide an excellent opportunity for researchers at all stages of their career – from Ph.D. students through early career researchers, to established scientists – to network and form new collaborations and to Venue be inspired by the work of a scientific career which is unparalleled in its The venue for all of the talks given in the Milner Symposium is the breadth and scope and impact. Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB. Speakers Scientific
    [Show full text]
  • Curriculum Vitae Luca Aceto
    Curriculum Vitae Luca Aceto School of Computer Science Reykjav´ık University Menntavegur 1 101 Reykjav´ık Iceland Telephone: +354–5996419 (Direct Line) Fax: +354–5996301 Email: [email protected], [email protected] http://www.ru.is/faculty/luca October 19, 2014 Personal Details Born July 2, 1961, Pescara, Italy. Italian Citizenship. Languages: Italian (native), English (fluent), Danish (Basic). French (Basic), Icelandic (Basic). Research Interests Semantics of concurrency, with emphasis on the study of algebraic process description languages and on the techniques they support to specify and reason about reactive systems. Logic in Computer Science. Appli- cations of equational logic in Computer Science, with special focus on process algebras, formal languages, automata, tropical semirings, min-max algebras and the theory of fixed points. Structural Operational Se- mantics. Computational complexity of verification problems and of problems in bioinformatics. Academic Qualifications University of Sussex, DPhil Computer Science, July 1991 Under the supervision of Prof. Matthew Hennessy, I studied notions of semantic equivalence for process algebras which differ in their view of the granularity of actions. In particular the work focused on seman- tic theories for process algebras enriched with combinators which allow for the refinement of actions by processes. The thesis was examined by Prof. Robin Milner (external examiner) and Dr. Mark Millington (internal examiner). It was awarded one of the two Distinguished Dissertations in Computer Science awards in 1990/1991 and has been published by Cambridge University Press in September 1992. University of Pisa, Laurea (MSc) in Computer Science, July 1986 I followed an MSc course in Computer Science and graduated by writing a thesis entitled “Behavioural Semantics for Concurrency” under the supervision of Prof.
    [Show full text]
  • Analysis of Spatio-Temporal Properties of Stochastic Systems Using TSTL
    Edinburgh Research Explorer Analysis of spatio-temporal properties of stochastic systems using TSTL Citation for published version: Luisa Vissat, L, Loreti, M, Nenzi, L, Hillston, J & Marion, G 2019, 'Analysis of spatio-temporal properties of stochastic systems using TSTL', ACM Transactions on Modeling and Computer Simulation, vol. 29, no. 4, 20, pp. 20:1-20:24. https://doi.org/10.1145/3326168 Digital Object Identifier (DOI): 10.1145/3326168 Link: Link to publication record in Edinburgh Research Explorer Document Version: Peer reviewed version Published In: ACM Transactions on Modeling and Computer Simulation General rights Copyright for the publications made accessible via the Edinburgh Research Explorer is retained by the author(s) and / or other copyright owners and it is a condition of accessing these publications that users recognise and abide by the legal requirements associated with these rights. Take down policy The University of Edinburgh has made every reasonable effort to ensure that Edinburgh Research Explorer content complies with UK legislation. If you believe that the public display of this file breaches copyright please contact [email protected] providing details, and we will remove access to the work immediately and investigate your claim. Download date: 07. Oct. 2021 Analysis of spatio-temporal properties of stochastic systems using TSTL LUDOVICA LUISA VISSAT, School of Informatics, University of Edinburgh, UK MICHELE LORETI, School of Science and Technology, University of Camerino, Italy LAURA NENZI, Department of Mathematics and Geosciences, University of Trieste, Italy JANE HILLSTON, School of Informatics, University of Edinburgh, UK GLENN MARION, Biomathematics and Statistics Scotland, Edinburgh, UK In this paper, we present Three-Valued Spatio-Temporal Logic (TSTL), which enriches the available spatio- temporal analysis of properties expressed in Signal Spatio-Temporal Logic (SSTL), to give further insight into the dynamic behaviour of systems.
    [Show full text]
  • Technical Report TCD-CS-2012-17 Foundations and Methods Research Group 1St October 2012 Modelling MAC-Layer Communications in Wireless Systems
    TRINITY COLLEGE DUBLIN COLAISTE´ NA TR´IONOIDE´ ,BAILE A´ THA CLIATH Modelling MAC-layer communications in wireless systems Andrea Cerone, Matthew Hennessy Trinity College Dublin, Ireland Massimo Merro Universita` degli Studi di Verona, Italy Computer Science Department Technical Report TCD-CS-2012-17 Foundations and Methods Research Group 1st October 2012 Modelling MAC-layer communications in wireless systems Andrea Cerone and Matthew Hennessy∗ Trinity College Dublin, Ireland Massimo Merro Universita` degli Studi di Verona, Italy 1st October 2012 Abstract We present a timed process calculus for modelling wireless networks in which individual stations broadcast and receive messages; moreover the broadcasts are subject to collisions. Based on a reduction semantics for the calculus we define a contextual equivalence to com- pare the external behaviour of such wireless networks. Further, we construct an extensional LTS (labelled transition system) which models the activities of stations that can be directly ob- served by the external environment. Standard bisimulations in this LTS provide a sound proof method for proving systems contextually equivalence. We illustrate the usefulness of the proof methodology by a series of examples. Finally we show that this proof method is also complete, for a large class of systems. ∗Supported by SFI project SFI 06 IN.1 1898. 1 1 Introduction Wireless networks are becoming increasingly pervasive with applications across many domains, [38, 1]. They are also becoming increasingly complex, with their behaviour depending on ever more sophisticated protocols. Assuring the correctness of their behaviour has always been difficult, and with the increase in their complexity this problem will get even more urgent.
    [Show full text]
  • Extended Abstract)
    Electronic Notes in Theoretical Computer Science 229 (2009) 117–129 www.elsevier.com/locate/entcs Counting the Cost in the Picalculus (Extended Abstract) Matthew Hennessy 1 ,2 Department of Computer Science Trinity College Dublin Dublin, Ireland Manish Gaur3 Department of Informatics University of Sussex Brighton, UK Abstract We design a new variation on the picalculus, πcost, in which the use of channels or resources must be paid for. Processes operate relative to a cost environment, and communications can only happen if principals have provided sufficient funds for the channels associated with the communications. We define a bisimulation-based behavioural preorder in which two processes are related if, intuitively, they exhibit the same behaviour but one may be more efficient than the other. We justify our choice of preorder by proving that it is characterised by three intuitive properties which behavioural preorders should satisfy in a framework in which the use of resources must be funded. Keywords: picalculus, resources, cost bisimulations 1 Introduction The picalculus [20] is a basic abstract formal language for describing communicat- ing processes and has a very developed behavioural theory [28], expressed as an equivalence relation between process descriptions; P ≈ Q signifies that, although P and Q may be intentionally very different they offer essentially the same behaviour to users. 1 This work is a part of the doctoral studies of the second author and is supported by Commonwealth Scholarship Commission UK (Ref: INCS-2005-145). The support of SFI, Ireland is also acknowledged. 2 Email: [email protected] 3 Email: [email protected] 1571-0661/$ – see front matter © 2009 Elsevier B.V.
    [Show full text]
  • Extended Abstract)
    ICE 2008 Counting the cost in the picalculus (Extended Abstract) Matthew Hennessy 1 ,2 Department of Computer Science Trinity College Dublin Dublin, Ireland Manish Gaur3 Department of Informatics University of Sussex Brighton, UK Abstract We design a new variation on the picalculus, πcost, in which the use of channels or resources must be paid for. Processes operate relative to a cost environment, and communications can only happen if principals have provided sufficient funds for the channels associated with the communications. We define a bisimulation-based behavioural preorder in which two processes are related if, intuitively, they exhibit the same behaviour but one may be more efficient than the other. We justify our choice of preorder by proving that it is characterised by three intuitive properties which behavioural preorders should satisfy in a framework in which the use of resources must be funded. Keywords: picalculus, resources, cost bisimulations 1 Introduction The picalculus [20] is a basic abstract formal language for describing communicating pro- cesses and has a very developed behavioural theory [28], expressed as an equivalence re- lation between process descriptions; P ≈ Q signifies that, although P and Q may be inten- tionally very different they offer essentially the same behaviour to users. The basic language and its related theory has been extended in myriad ways in order to incorporate many different aspects of concurrent behaviour [1,26,8]. In one family of 1 This work is a part of the doctoral studies of the second author and is supported by Commonwealth Scholarship Commis- sion UK (Ref: INCS-2005-145). The support of SFI, Ireland is also acknowledged.
    [Show full text]
  • Acceptance Trees
    Acceptance Trees M. HENNESSY Oniversity of Edinburgh, Edinburgh, Scotland Abstract. A simple model, AT, for nondeterministic machines is presented which is based on certain types of trees. A set of operations, 2, is defined over AT and it is shown to be completely characterized by a set of inequations over 2. AT is used to define the denotational semantics of a language for defining nondeterministic machines. The significance ofthe model is demonstrated by showing that this semantics reflects an intuitive operational semantics of machines based on the idea that machines should only be differentiated if there is some experiment that differentiates between them. Categories and Subject Descriptors: F.3. I [Logics and Meanings of Programs]: Specifying and Verifying and Reasoning about Programs--log& of programs; F.3.2 [Logics and Meanings of Programs]: Semantics of Programming Languages-algebraic approaches to semantics; denotational semantics General Terms: Theory Additional Key Words and Phrases: Axioms, nondeterministic machines, testing equivalence, trees 1. Introduction There is a well-developed and very successful theory of (nondeterministic) machines based on their ability to accept strings. For the most part, this has been developed by formal language theorists who view machines as formal mechanisms for recog- nizing languages. A large body of work exists relating various methods of generating languages, in the form of grammars, with methods of recognizing languages, in the form of machines [20]. Indeed, it can be argued that this connection with grammars has greatly influenced our traditional view of machines. Consider the three finite automata, MI, it42, A43,in Figure 1. We use the notation of [20] so that q.
    [Show full text]
  • Final L Isting of Accepted Publications
    List of Accepted Papers As of 12/13/2011 Advances in Spatial and Image-based Information Systems Track Track Co-Chairs: Richard Chbeir, University of Bourgogne, France Christophe Claramunt, Ecole Navale, Brest, France Ki-Joune Li, Pusan National University, Korea Kokou Yetongnon, University of Bourgogne, France A Method for Identification of Moving Objects by Integrative Use of a Camera and Accelerometers .......................................................................................................................................................1 Naoka Maruhashi, Kobe University, Japan Tsutomu Terada, Kobe University, Japan Masahiko Tsukamoto, Kobe University, Japan History-independence: A Fresh Look at the Case of R-trees ............................................................................7 Theodoros Tzouramanis, University of the Aegean, Greece Representation and management of Spatiotemporal data in Object-Relational Databases.........................13 Luís Matos, IEETA - University of Aveiro, Portugal José Moreira, IEETA/DETI - University of Aveiro, Portugal Alexandre Carvalho, INESC/DEI – University of Porto, Portugal Poster Papers High Level Adaptive Fusion Approach: Application to Land Cover Change Prediction in Satellite Image Databases...................................................................................................................................................21 Wadii Boulila, RIADI, ENSI, Tunisia Karim Saheb Ettabaa, RIADI, ENSI, Tunisia Imed Riadh Farah, RIADI, ENSI, Tunisia Basel Solaiman,
    [Show full text]
  • Topics in Structural Operational Semantics
    Topics in Structural Operational Semantics Arnar Birgisson Master of Science May 2009 Reykjavík University - School of Computer Science M.Sc. Thesis Topics in Structural Operational Semantics by Arnar Birgisson Thesis submitted to the School of Computer Science at Reykjavík University in partial fulfillment of the requirements for the degree of Master of Science May 2009 Thesis Committee: Dr. Luca Aceto, supervisor Professor, Reykjavík University Dr. Úlfar Erlingsson Associate Professor, Reykjavik University and Microsoft Research Dr. MohammadReza Mousavi Assistant Professor, Eindhoven University of Technology Dr. Marjan Sirjani Assistant Professor, Reykjavík University Copyright Arnar Birgisson May 2009 Topics in Structural Operational Semantics by Arnar Birgisson May 2009 Abstract Structural Operational Semantics (SOS) provides a mathematically rigourous way of specifying the semantics of formal (programming) languages. This thesis presents three individual contributions which highlight different uses of SOS and demonstrate how it may be used to benefit computer science. To- gether, the topics span a relatively wide spectrum, but their common theme is their use of SOS although each topic contains its own scientific contribu- tion as well. In order, the topics range from practical applications of SOS to abstract meta-theory reasoning about SOS rules at a higher level. The first contribution relates to the use of operational semantics to specify the behaviour of a policy enforcement architecture built on top of transac- tional memory in Haskell. The second one discusses work in constructing a method for compositional reasoning about process calculi that includes a representation of the history of a computation, and allows the specification logic to look into the past.
    [Show full text]
  • Modal Logics for Communicating Systems
    Theoretical Computer Science 49 (1987) 311-347 311 North-Holland MODAL LOGICS FOR COMMUNICATING SYSTEMS Colin STIRLING Department of Computer Science, Edinburgh University, Edinburgh EH8 9YL, Scotland, U.K. Abstract. Simple modal logics for Milner’s SCCS and CCS are presented. We offer sound and complete axiomatizations of validity relative to these calculi as models. Also we present composi- tional proof systems for when a program satisfies a formula. These involve proof rules which are like Gentzen introduction rules except that there are also introduction rules for the program combinators of SCCS and CCS. The compositional rules for restriction (or hiding) and parallel combinators arise out of a simple semantic strategy. Introduction Transition systems are often used as models of concurrent programs. By themselves they are too concrete for determining when one program could be computationally equivalent to, or could approximate, another. Addition of a plausible computational equivalence or preorder on transition systems overcomes this. An alternative addition is logical languages whose semantics are defined on transition systems. Two programs are equivalent relative to a logical language if they have the same transition system properties expressible in it (and program p approximates q if q has more properties than p). The expressive power of the language is then the determining feature. A coherence is attainable when a natural logical language characterizes a plausible computational equivalence or preorder: this happens when the two equivalences or preorders coincide. Then they reinforce each other as appropriate to the analysis of concurrency. In [ 141 the authors propose a computational equivalence, observation (or bisimu- lation) equivalence, on transition systems as well as a logical language, Hennessy- Milner logic, which characterizes it.
    [Show full text]
  • The Formal Semantics of Programming Languages: an Introduction, Glynn Winskel, 1993 the Formal Semantics of Programming Languages an Introduction
    Foundations of Computing Michael Garey and Albert Meyer, editors Complexity Issues in VLSI: Optimal Layouts for the Shuffle-Exchange Graph and Other Networks, Frank Thomson Leighton, 1983 Equational Logic as a Programming Language, Michael J. 0 'Donnell, 1985 General Theory of Deductive Systems and Its Applications, S. Yu Maslov, 1987 Resource Allocation Problems: Algorithmic Approaches, Toshihide Ibaraki and Naoki Katoh, 1988 Algebraic Theory of Processes, Matthew Hennessy, 1988 PX: A Computational Logic, Susumu Hayashi and Hiroshi Nakano, 1989 The Stable Marriage Problem: Structure and Algorithms, Dan Gusfield and Robert Irving, 1989 Realistic Compiler Generation, Peter Lee, 1989 Single-Layer Wire Routing and Compaction,F. Miller Maley, 1990 Basic Category Theory for Computer Scientists, Benjamin C. Pierce, 1991 Categories, Types, and Structures: An Introduction to Category Theory for the Working Computer Scientist, Andrea Asperti and Giuseppe Longo, 1991 Semantics of Programming Languages: Structures and Techniques, Carl A. Gunter, 1992 The Formal Semantics of Programming Languages: An Introduction, Glynn Winskel, 1993 The Formal Semantics of Programming Languages An Introduction Glynn Winskel The MIT Press Cambridge, Massachusetts London, England Second printing, 1994 ©1993 Massachusetts Institute of Technology All rights reserved. No part ofthis book may be reproduced in any form by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without permission in writing from the publisher. This book was printed and bound in the United States of America. Library of Congress Cataloging-in-Publication Data Winskel, G. (Glynn) The formal semantics of programming languages : an introduction Glynn Winskel. p. cm. - (Foundations of computing) Includes bibliographical references and index.
    [Show full text]