Insight, Inspiration and Collaboration

Total Page:16

File Type:pdf, Size:1020Kb

Insight, Inspiration and Collaboration Chapter 1 Insight, inspiration and collaboration C. B. Jones, A. W. Roscoe Abstract Tony Hoare's many contributions to computing science are marked by insight that was grounded in practical programming. Many of his papers have had a profound impact on the evolution of our field; they have moreover provided a source of inspiration to several generations of researchers. We examine the development of his work through a review of the development of some of his most influential pieces of work such as Hoare logic, CSP and Unifying Theories. 1.1 Introduction To many who know Tony Hoare only through his publications, they must often look like polished gems that come from a mind that rarely makes false steps, nor even perhaps has to work at their creation. As so often, this impres- sion is a further compliment to someone who actually adds to very hard work and many discarded attempts the final polish that makes complex ideas rel- atively easy for the reader to comprehend. As indicated on page xi of [HJ89], his ideas typically go through many revisions. The two authors of the current paper each had the honour of Tony Hoare supervising their doctoral studies in Oxford. They know at first hand his kind and generous style and will count it as an achievement if this paper can convey something of the working style of someone big enough to eschew competition and point scoring. Indeed it will be apparent from the following sections how often, having started some new way of thinking or exciting ideas, he happily leaves their exploration and development to others. We have both benefited personally from this. Tony retired from Oxford in 1999 and has had, as we write this, 10 ex- tremely active years at Microsoft, improving that company's software devel- opment techniques, engaging enthusiastically in the debates of the computer 1 2 C. B. Jones, A. W. Roscoe science and software engineering world, promoting Grand Challenges such as the Verifying Compiler, and taking renewed interests in programming logic thanks to topics such as Separation Logic. We, however, have restricted our- selves to studying his work up to 1999 on the grounds that 10 years is already too short a time to understand the impact of academic work. In writing about the various phases and topics of Tony's career we have tried to analyse the influences and developing themes that have run through it. 1.2 Education and early career Charles Antony Richard Hoare, the eldest of five children (he has two brothers and two sisters), was born of British parents on 11 January 1934 in Colombo in what was then called Ceylon (now Sri Lanka). Ceylon was at that time part of the British Empire, and his father and maternal grandfather were both Englishmen engaged in the business of Empire, and from somewhat upper-class backgrounds.1 After his family returned to England at the end of World War II, Tony attended the Dragon School, Oxford and King's School, Canterbury before going to Oxford University to study Greats (formally known as Literae Hu- maniores) at Merton College between 1952 and 1956. Greats is Oxford's clas- sics course, in which students study Latin and Greek for the first two years, and concentrate on philosophy, literature and ancient history for the final two. Tony specialised in modern philosophy, being taught by John Lucas, an expert on logic and G¨odelin particular, who was then a Junior Research Fellow2 at Merton. By the time the authors studied at Oxford from the mid 1970s to early 1980s, Greats had gained the reputation of being one of the best courses to do at Oxford if you wanted to become a computer programmer. So perhaps the training Greats offered in systematic thinking, particularly given Lucas' influence, was in fact the ideal education for an early computer scientist. There was no undergraduate course in computer science at Oxford until about a decade after Hoare returned as a professor. In 1956 Tony was called up into the Royal Navy to do his \National Ser- vice", two years' military service that was compulsory for young men in the UK until the early 1960s. Perhaps thanks to his linguistic background, he went on a course on the Russian language while in the Navy. Tony returned for a further year at Oxford after completing his National Service degree, studying Statistics. During that year he took a course in programming (Mercury Autocode) from Leslie Fox, the founding Director of 1 See thepeerage.com, for example. 2 This is a a type of position given by Oxford Colleges to allow leading young academics to pursue their research. 1 Insight, inspiration and collaboration 3 Oxford University Computing Laboratory, about two years after the Lab- oratory was founded. Fox, one of the great figures of Numerical Analysis, remained Director until he retired in 1983, at which point Hoare took over this role. He then went to Moscow State University as a graduate student and stud- ied Machine Translation, along with probability in the school of the great Russian Mathematician Andrey Kolmogorov. Tony states that it was there, in the context of dictionary processing, that he invented Quicksort while unaware of any sorting algorithms other than bubblesort, which he had re- discovered and decided was too slow. At the same time he began translating Russian literature on computer science into English. On his return to England he joined the small British computer company Elliott Brothers, by whom he had been recruited while still in Moscow. One of the first tasks he was given there was to implement Shellsort in Elliott 803 Autocode. He remarks in [Hoa81b] that he then bet his manager that he had an algorithm that would usually run faster. He remarks how difficult Quicksort was to explain in the language of the time; but he won his sixpenny ($0.025) bet. He famously led the team that wrote one of the first ALGOL 60 compilers, for the Elliott 503 (the curiously numbered successor to the 803), a computer with 8K of 39-bit words and which was advertised as being able to run \as many as 200 programs per day"3. By the time this compiler was released in 1963 Tony had married (in 1962) Jill Pym, a member of his team. The ALGOL compiler was \one pass": in other words it only required a single pass through the source code tree of the object program. There is no doubt that Tony's work on ALGOL helped to define his under- standing of the nature of programming. Indeed, in [Hoa81b], he writes \It was there [an ALGOL 60 course in Brighton by Naur, Dijkstra and Landin which inspired him to choose this language for Elliott] that I first learned about recursive procedures and saw how to program the sorting method which I had earlier found such difficulty in explaining." In [Hoa81b] Tony goes on to explain how his understanding of program- ming and the need for clear semantics of programming languages developed as the result of the failure to deliver an operating system for the Elliott 503 Mark II, and how this, in particular, inspired his work on concurrency: I did not see why the design and implementation of an operating system should be so much more difficult than that of a compiler. This is the reason why I have devoted my later research to problems of parallel programming and language constructs which would assist in clear structuring of operating systems{constructs such as monitors and communicating processes. Tony reached the position of Chief Engineer at Elliott Brothers, but de- cided to leave because of the effects of the company being taken over in 1968. His academic career therefore began after he saw an advertisement for the 3 According to [27] when the compiler was run on the much slower 803 a typical half-page ALGOL program would take half an hour to compile and execute. 4 C. B. Jones, A. W. Roscoe position of Professor at the Queen's University, Belfast. By this time his po- sition in the developing subject of computer science was secure thanks not only to Quicksort but, perhaps more importantly, to the collaborations and contacts he obtained through his ALGOL work and the work he was doing on the ALGOL Working Group (IFIP WG2.1). By the time Tony was recruited to Oxford in 1977 no application was necessary: he was simply contacted and told that he had been elected to the job. 1.3 Programming languages Hoare's most explicit set of positive rules for designers of programming lan- guages was titled \Hints on Programming Language Design". This was origi- nally written for the first (ACM SIGPLAN) POPL conference held in Boston in October 1973. Sadly, the paper did not appear in the proceedings but has been reprinted several times in slightly different forms | probably the most accessible electronic version is [Hoa73a]. Rather than repeat the points in this important paper, can we encourage our readers to study it? This plea is most strongly addressed to anyone who is thinking of designing a new language. The importance that Tony Hoare attaches to programming languages is made abundantly clear in his acceptance speech for the ACM Turing Award.4 This 1980 speech is published as [Hoa81b]. As mentioned in Section 1.2, he remarks there how he could only express Quicksort elegantly after he had seen ALGOL. Hoare also makes clear that he sees it \as the highest goal of programming language design to enable good ideas to be elegantly expressed". Later in the same paper he observes the importance of \programming notations so as to maximise the number of errors which cannot be made, or if made, can be reliably detected at compile time." ALGOL 60 had been devised by a committee; but a committee of the highest calibre.
Recommended publications
  • Edsger Dijkstra: the Man Who Carried Computer Science on His Shoulders
    INFERENCE / Vol. 5, No. 3 Edsger Dijkstra The Man Who Carried Computer Science on His Shoulders Krzysztof Apt s it turned out, the train I had taken from dsger dijkstra was born in Rotterdam in 1930. Nijmegen to Eindhoven arrived late. To make He described his father, at one time the president matters worse, I was then unable to find the right of the Dutch Chemical Society, as “an excellent Aoffice in the university building. When I eventually arrived Echemist,” and his mother as “a brilliant mathematician for my appointment, I was more than half an hour behind who had no job.”1 In 1948, Dijkstra achieved remarkable schedule. The professor completely ignored my profuse results when he completed secondary school at the famous apologies and proceeded to take a full hour for the meet- Erasmiaans Gymnasium in Rotterdam. His school diploma ing. It was the first time I met Edsger Wybe Dijkstra. shows that he earned the highest possible grade in no less At the time of our meeting in 1975, Dijkstra was 45 than six out of thirteen subjects. He then enrolled at the years old. The most prestigious award in computer sci- University of Leiden to study physics. ence, the ACM Turing Award, had been conferred on In September 1951, Dijkstra’s father suggested he attend him three years earlier. Almost twenty years his junior, I a three-week course on programming in Cambridge. It knew very little about the field—I had only learned what turned out to be an idea with far-reaching consequences. a flowchart was a couple of weeks earlier.
    [Show full text]
  • Probabilistic Models for the Guarded Command Language
    Science of Computer Programming ELSEVIER Science of Computer Programming 28 (1997) 171-192 Probabilistic models for the guarded command language He Jifeng *, K. Seidel, A. McIver Oxford University Computing Laboratory, Programming Research Group, 11 Keble. Road, Oxford OXI 3QD, UK Abstract The two models presented in this paper provide two different semantics for an extension of Dijkstra’s language of guarded commands. The extended language has an additional operator, namely probabilistic choice, which makes it possible to express randomized algorithms. An earlier model by Claire Jones included probabilistic choice but not non-determinism, which meant that it could not be used for the development of algorithms from specifications. Our second model is built on top of Claire Jones’ model, using a general method of extending a probabilistic cpo to one which abo contains non-determinism. The first model was constructed from scratch, as it were, guided only by the desire for certain algebraic properties of the language constructs, which we found lacking in the second model. We compare and contrast the properties of the two models both by giving examples and by constructing mappings between them and the non-probabilistic model. On the basis of this comparison we argue that, in general, the first model is preferable to the second. @ 1997 Elsevier Science B.V. Keywords: Probabilistic programming language; Semantics; Algebraic laws 1. Introduction Dijkstra’s language of guarded commands with its weakest precondition semantics [l] put reasoning about sequential imperative programs on a secure footing. The aim of this paper is to extend this language, its semantics, and formal reasoning to sequential randomized algorithms.
    [Show full text]
  • A Networked Robotic System and Its Use in an Oil Spill Monitoring Exercise
    A Networked Robotic System and its Use in an Oil Spill Monitoring Exercise El´oiPereira∗† Co-authors: Pedro Silvay, Clemens Krainerz, Christoph Kirschz, Jos´eMorgadoy, and Raja Sengupta∗ cpcc.berkeley.edu, eloipereira.com [email protected] Swarm at the Edge of the Could - ESWeek'13, Montreal, Canada September 29, 2013 ∗ - Systems Engineering, UC Berkeley y - Research Center, Portuguese Air Force Academy z - Computer Science Dept., University of Salzburg Programming the Ubiquitous World • In networked mobile systems (e.g. teams of robots, smartphones, etc.) the location and connectivity of \machines" may vary during the execution of its \programs" (computation specifications) • We investigate models for bridging \programs" and \machines" with dynamic structure (location and connectivity) • BigActors [PKSBdS13, PPKS13, PS13] are actors [Agh86] hosted by entities of the physical structure denoted as bigraph nodes [Mil09] E. Pereira, C. M. Kirsch, R. Sengupta, and J. B. de Sousa, \Bigactors - A Model for Structure-aware Computation," in ACM/IEEE 4th International Conference on Cyber-Physical Systems, 2013, pp. 199-208. Case study: Oil spill monitoring scenario • \Bilge dumping" is an environmental problem of great relevance for countries with large area of jurisdictional waters • EC created the European Maritime Safety Agency to \...prevent and respond to pollution by ships within the EU" • How to use networked robotics to monitor and take evidences of \bilge dumping" Figure: Portuguese Jurisdiction waters and evidences of \Bilge dumping".
    [Show full text]
  • Simula Mother Tongue for a Generation of Nordic Programmers
    Simula! Mother Tongue! for a Generation of! Nordic Programmers! Yngve Sundblad HCI, CSC, KTH! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Inspired by Ole-Johan Dahl, 1931-2002, and Kristen Nygaard, 1926-2002" “From the cold waters of Norway comes Object-Oriented Programming” " (first line in Bertrand Meyer#s widely used text book Object Oriented Software Construction) ! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Simula concepts 1967" •# Class of similar Objects (in Simula declaration of CLASS with data and actions)! •# Objects created as Instances of a Class (in Simula NEW object of class)! •# Data attributes of a class (in Simula type declared as parameters or internal)! •# Method attributes are patterns of action (PROCEDURE)! •# Message passing, calls of methods (in Simula dot-notation)! •# Subclasses that inherit from superclasses! •# Polymorphism with several subclasses to a superclass! •# Co-routines (in Simula Detach – Resume)! •# Encapsulation of data supporting abstractions! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Simula example BEGIN! REF(taxi) t;" CLASS taxi(n); INTEGER n;! BEGIN ! INTEGER pax;" PROCEDURE book;" IF pax<n THEN pax:=pax+1;! pax:=n;" END of taxi;! t:-NEW taxi(5);" t.book; t.book;" print(t.pax)" END! Output: 7 ! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad!
    [Show full text]
  • Submission Data for 2020-2021 CORE Conference Ranking Process International Symposium on Formal Methods (Was Formal Methods Europe FME)
    Submission Data for 2020-2021 CORE conference Ranking process International Symposium on Formal Methods (was Formal Methods Europe FME) Ana Cavalcanti, Stefania Gnesi, Lars-Henrik Eriksson, Nico Plat, Einar Broch Johnsen, Maurice ter Beek Conference Details Conference Title: International Symposium on Formal Methods (was Formal Methods Europe FME) Acronym : FM Rank: A Data and Metrics Google Scholar Metrics sub-category url: https://scholar.google.com.au/citations?view_op=top_venues&hl=en&vq=eng_theoreticalcomputerscienceposition in sub-category: 20+Image of top 20: ACM Metrics Not Sponsored by ACM Aminer Rank 1 Aminer Rank: 28Name in Aminer: World Congress on Formal MethodsAcronym or Shorthand: FMh-5 Index: 17CCF: BTHU: âĂŞ Top Aminer Cites: http://portal.core.edu.au/core/media/conf_submissions_citations/extra_info1804_aminer_top_cite.png Other Rankings Not aware of any other Rankings Conferences in area: 1. Formal Methods Symposium (FM) 2. Software Engineering and Formal Methods (SEFM), Integrated Formal Methods (IFM) 3. Fundamental Approaches to Software Engineering (FASE), NASA Formal Methods (NFM), Runtime Verification (RV) 4. Formal Aspects of Component Software (FACS), Automated Technology for Verification and Analysis (ATVA) 5. International Conference on Formal Engineering Methods (ICFEM), FormaliSE, Formal Methods in Computer-Aided Design (FMCAD), Formal Methods for Industrial Critical Systems (FMICS) 6. Brazilian Symposium on Formal Methods (SBMF), Theoretical Aspects of Software Engineering (TASE) 7. International Symposium On Leveraging Applications of Formal Methods, Verification and Validation (ISoLA) Top People Publishing Here name: Frank de Boer justification: h-index: 42 ( https://www.cwi.nl/people/frank-de-boer) Frank S. de Boer is senior researcher at the CWI, where he leads the research group on Formal Methods, and Professor of Software Correctness at Leiden University, The Netherlands.
    [Show full text]
  • The Standard Model for Programming Languages: the Birth of A
    The Standard Model for Programming Languages: The Birth of a Mathematical Theory of Computation Simone Martini Department of Computer Science and Engineering, University of Bologna, Italy INRIA, Sophia-Antipolis, Valbonne, France http://www.cs.unibo.it/~martini [email protected] Abstract Despite the insight of some of the pioneers (Turing, von Neumann, Curry, Böhm), programming the early computers was a matter of fiddling with small architecture-dependent details. Only in the sixties some form of “mathematical program development” will be in the agenda of some of the most influential players of that time. A “Mathematical Theory of Computation” is the name chosen by John McCarthy for his approach, which uses a class of recursively computable functions as an (extensional) model of a class of programs. It is the beginning of that grand endeavour to present programming as a mathematical activity, and reasoning on programs as a form of mathematical logic. An important part of this process is the standard model of programming languages – the informal assumption that the meaning of programs should be understood on an abstract machine with unbounded resources, and with true arithmetic. We present some crucial moments of this story, concluding with the emergence, in the seventies, of the need of more “intensional” semantics, like the sequential algorithms on concrete data structures. The paper is a small step of a larger project – reflecting and tracing the interaction between mathematical logic and programming (languages), identifying some
    [Show full text]
  • An Efficient Implementation of Guard-Based Synchronization for an Object-Oriented Programming Language an Efficient Implementation of Guard-Based
    AN EFFICIENT IMPLEMENTATION OF GUARD-BASED SYNCHRONIZATION FOR AN OBJECT-ORIENTED PROGRAMMING LANGUAGE AN EFFICIENT IMPLEMENTATION OF GUARD-BASED SYNCHRONIZATION FOR AN OBJECT-ORIENTED PROGRAMMING LANGUAGE By SHUCAI YAO, M.Sc., B.Sc. A Thesis Submitted to the Department of Computing and Software and the School of Graduate Studies of McMaster University in Partial Fulfilment of the Requirements for the Degree of Doctor of Philosophy McMaster University c Copyright by Shucai Yao, July 2020 Doctor of Philosophy (2020) McMaster University (Computing and Software) Hamilton, Ontario, Canada TITLE: An Efficient Implementation of Guard-Based Synchro- nization for an Object-Oriented Programming Language AUTHOR: Shucai Yao M.Sc., (Computer Science) University of Science and Technology Beijing B.Sc., (Computer Science) University of Science and Technology Beijing SUPERVISOR: Dr. Emil Sekerinski, Dr. William M. Farmer NUMBER OF PAGES: xvii,167 ii To my beloved family Abstract Object-oriented programming has had a significant impact on software development because it provides programmers with a clear structure of a large system. It encap- sulates data and operations into objects, groups objects into classes and dynamically binds operations to program code. With the emergence of multi-core processors, application developers have to explore concurrent programming to take full advan- tage of multi-core technology. However, when it comes to concurrent programming, object-oriented programming remains elusive as a useful programming tool. Most object-oriented programming languages do have some extensions for con- currency, but concurrency is implemented independently of objects: for example, concurrency in Java is managed separately with the Thread object. We employ a programming model called Lime that combines action systems tightly with object- oriented programming and implements concurrency by extending classes with actions and guarded methods.
    [Show full text]
  • Computing the Stabilization Times of Self-Stabilizing Systems
    IEICE TRANS. FUNDAMENTALS, VOL.E83–A, NO.11 NOVEMBER 2000 2245 PAPER Special Section on Concurrent Systems Technology Computing the Stabilization Times of Self-Stabilizing Systems Tatsuhiro TSUCHIYA†, Regular Member, Yusuke TOKUDA†, Nonmember, and Tohru KIKUNO†, Regular Member SUMMARY A distributed system is said to be self- state very fast. Research in this direction includes [1], stabilizing if it converges to some legitimate state from an ar- [8], [16]. bitrary state in a finite number of steps. The number of steps In this paper, we propose an automated method required for convergence is usually referred to as the ×ØabiÐiÞaØiÓÒ for computing the worst stabilization time, aiming at ØiÑe, and its reduction is one of the main performance issues in the design of self-stabilizing systems. In this paper, we propose supporting algorithm designers. In [6], Dolev et al. pro- an automated method for computing the stabilization time. The posed a theoretical method, called the scheduler luck method uses Boolean functions to represent the state space in game, for stabilization time analysis. This method can order to assuage the state explosion problem, and computes the stabilization time by manipulating the Boolean functions. To deal with randomized algorithms only, and it is not au- demonstrate the usefulness of the method, we apply it to the tomated. Some work addresses the issues of automatic analysis of existing self-stabilizing algorithms. The results show verification of self-stabilizing systems (e.g., [11], [12], that the method can perform stabilization time analysis very fast, [14]). To the best of our knowledge, however, there has even when an underlying state space is very huge.
    [Show full text]
  • Compsci 6 Programming Design and Analysis
    CompSci 6 Programming Design and Analysis Robert C. Duvall http://www.cs.duke.edu/courses/cps006/fall04 http://www.cs.duke.edu/~rcd CompSci 6 : Spring 2005 1.1 What is Computer Science? Computer science is no more about computers than astronomy is about telescopes. Edsger Dijkstra Computer science is not as old as physics; it lags by a couple of hundred years. However, this does not mean that there is significantly less on the computer scientist's plate than on the physicist's: younger it may be, but it has had a far more intense upbringing! Richard Feynman http://www.wordiq.com CompSci 6 : Spring 2005 1.2 Scientists and Engineers Scientists build to learn, engineers learn to build – Fred Brooks CompSci 6 : Spring 2005 1.3 Computer Science and Programming Computer Science is more than programming The discipline is called informatics in many countries Elements of both science and engineering Elements of mathematics, physics, cognitive science, music, art, and many other fields Computer Science is a young discipline Fiftieth anniversary in 1997, but closer to forty years of research and development First graduate program at CMU (then Carnegie Tech) in 1965 To some programming is an art, to others a science, to others an engineering discipline CompSci 6 : Spring 2005 1.4 What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread which gathers these disparate branches into a single discipline? My answer to these questions is simple --- it is the art of programming a computer.
    [Show full text]
  • Beyond Structured Programming
    Beyond Structured Programming M.H. van Emden Technical Report DCS-359-IR Department of Computer Science University of Victoria Abstract The correctness of a structured program is, at best, plausible. Though this is a step forward compared to what came before, it falls short of verified correctness. To verify a structured program according to Hoare’s method one is faced with the problem of finding assertions to fit existing code. In 1971 this mode of verification was declared by Dijkstra as too hard to be of practical use—he advised that proof and code were to grow together. A method for doing this was independently published by Reynolds in 1978 and by van Emden in 1979. The latter was further developed to attain the form of matrix code. This form of code not only obviates the need of fitting assertions to existing code, but helps in discovering an algorithm that reaches a given postcondition from a fixed precondition. In this paper a keyboard-editable version of matrix code is presented that uses E.W. Dijkstra’s guarded commands as starting point. The result is reached by using Floyd’s method rather than Hoare’s as starting point. 1 Introduction Structured Programming is the name of a method introduced by E.W. Dijkstra in 1969 [6]. At the time the method was revolutionary: it advocated the elimination of the goto statement and the ex- clusive use of conditional, alternative, and repetitive clauses. In a few years structured programming evolved from controversy to orthodoxy. C.A.R. Hoare invented a logic-based verification method for structured programs [13].
    [Show full text]
  • The Space and Motion of Communicating Agents
    The space and motion of communicating agents Robin Milner December 1, 2008 ii to my family: Lucy, Barney, Chloe,¨ and in memory of Gabriel iv Contents Prologue vii Part I : Space 1 1 The idea of bigraphs 3 2 Defining bigraphs 15 2.1 Bigraphsandtheirassembly . 15 2.2 Mathematicalframework . 19 2.3 Bigraphicalcategories . 24 3 Algebra for bigraphs 27 3.1 Elementarybigraphsandnormalforms. 27 3.2 Derivedoperations ........................... 31 4 Relative and minimal bounds 37 5 Bigraphical structure 43 5.1 RPOsforbigraphs............................ 43 5.2 IPOsinbigraphs ............................ 48 5.3 AbstractbigraphslackRPOs . 53 6 Sorting 55 6.1 PlacesortingandCCS ......................... 55 6.2 Linksorting,arithmeticnetsandPetrinets . ..... 60 6.3 Theimpactofsorting .......................... 64 Part II : Motion 66 7 Reactions and transitions 67 7.1 Reactivesystems ............................ 68 7.2 Transitionsystems ........................... 71 7.3 Subtransitionsystems .. .... ... .... .... .... .... 76 v vi CONTENTS 7.4 Abstracttransitionsystems . 77 8 Bigraphical reactive systems 81 8.1 DynamicsforaBRS .......................... 82 8.2 DynamicsforaniceBRS.... ... .... .... .... ... .. 87 9 Behaviour in link graphs 93 9.1 Arithmeticnets ............................. 93 9.2 Condition-eventnets .. .... ... .... .... .... ... .. 95 10 Behavioural theory for CCS 103 10.1 SyntaxandreactionsforCCSinbigraphs . 103 10.2 TransitionsforCCSinbigraphs . 107 Part III : Development 113 11 Further topics 115 11.1Tracking................................
    [Show full text]
  • 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]