scispace - formally typeset
Search or ask a question
Book ChapterDOI

Insight, Inspiration and Collaboration

01 Jan 2010-pp 1-32
TL;DR: The development of Tony Hoare's work is examined through a review of the development of some of his most influential pieces of work such as Hoare logic, CSP and Unifying Theories.
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.

Content maybe subject to copyright    Report

Citations
More filters
DOI
30 Dec 1899
TL;DR: In this paper, the mathematical theory of computation is discussed and several descriptive formalisms with a few examples of their use and theories that enable to prove the equivalence of computations expressed in these formalisms are also presented.
Abstract: Publisher Summary This chapter discusses the mathematical theory of computation. Computation essentially explores how machines can be made to carry out intellectual processes. Any intellectual process that can be carried out mechanically can be performed by a general purpose digital computer. There are three established directions of mathematical research that are relevant to the science of computation—namely, numerical analysis, theory of computability, and theory of finite automata. The chapter explores what practical results can be expected from a suitable mathematical theory. Further, the chapter presents several descriptive formalisms with a few examples of their use and theories that enable to prove the equivalence of computations expressed in these formalisms. A few mathematical results about the properties of the formalisms are also presented.

416 citations

01 Jan 1981
TL;DR: Ambiguities and insecurities in the programming language Pascal are discussed and ideas to address these issues are proposed.
Abstract: Ambiguities and insecurities in the programming language Pascal are discussed.

104 citations

Journal Article
TL;DR: This paper develops Brinch-Hansen's concept of a monitor as a method of structuring an operating system, introduces a form of synchronization, describes a possible method of implementation in terms of semaphores and gives a suitable proof rule.
Abstract: This paper develops Brinch-Hansen's concept of a monitor as a method of structuring an operating system. It introduces a form of synchronization, describes a possible method of implementation in terms of semaphores and gives a suitable proof rule. Illustrative examples include a single resource scheduler, a bounded buffer, an alarm clock, a buffer pool, a disk head optimizer, and a version of the problem of readers and writers.

79 citations

Dissertation
01 Jan 1982
TL;DR: This thesis introduced much of the theory for Hoare's CSP, including the failures and failures-divergences model and methods of proving properties of processes based on metric, order and topological structures.
Abstract: (Brief abstract written by the author in 2011 since I don't have the original to hand.)This thesis introduced much of the theory for Hoare's CSP, including the failures and failures-divergences model and methods of proving properties of processes based on metric, order and topological structures. The final chapter investigates the structures underlying operational semantics.

47 citations

References
More filters
Book ChapterDOI

[...]

01 Jan 2012

139,059 citations


"Insight, Inspiration and Collaborat..." refers background in this paper

  • ...There are hints of the need to reason about programs in [12] and a proposal in [35] for an approach that uses a clear notion of assertions being added to a flowchart of a program....

    [...]

Journal ArticleDOI
TL;DR: It is suggested that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method.
Abstract: This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of a familiar programming exercises.

11,419 citations

Book
01 Jan 1985

9,210 citations

Book
01 Jan 1980
TL;DR: A case study in synchronization and proof techniques, and some proofs about data structures in value-communication as a model of CCS 2.0.
Abstract: 0. Introduction.- 1. Experimenting on nondeterministic machines.- 2. Synchronization.- 3. A case study in synchronization and proof techniques.- 4. Case studies in value-communication.- 5. Syntax and semantics of CCS.- 6. Communication trees (CTs) as a model of CCS.- 7. Observation equivalence and its properties.- 8. Some proofs about data structures.- 9. Translation into CCS.- 10. Determinancy and confluence.- 11. Conclusion.

4,752 citations


"Insight, Inspiration and Collaborat..." refers background in this paper

  • ...Indeed it is one of the first two developed examples (the other being CCS) of what rapidly became known as a process algebra: a notation for creating algebraic terms representing the interacting behaviour of a number of distinct processes....

    [...]

  • ...Whether CSP and CCS seem similar to a reader will depend on his or her viewpoint, but certainly they are very similar when viewed from the standpoint of Imperative CSP....

    [...]

  • ...CSP is a retract of CCS....

    [...]

  • ...Indeed, in both CSP and CCS and most subsequent process algebras, there is no semantic distinction between sequential and parallel processes, and every parallel process is equivalent to a sequential one, ¿From this discussion alone the reader will appreciate that the creation of these first process algebras represented a huge intellectual step: that from a programming language to calculi that attempt to attribute meaning to patterns of communication....

    [...]

  • ...It was these constrasting decisions, of course, which led to the different choice operators of CCS [25] and CSP: the CCS “+” being the obvious operational version....

    [...]

Book
01 Jan 1976

4,719 citations


"Insight, Inspiration and Collaborat..." refers background in this paper

  • ...version of the language is essentially Dijkstra’s language of guarded commands [ 8 ] (a simple imperative language) with point-to-point communication added, so we have termed it Imperative CSP....

    [...]