Communications of the ACM · 1983 · 3.8K citations · 14 references
EngineeringGuarded CommandSoftware AnalysisFormal VerificationSystems EngineeringFamiliar Programming ExercisesConcurrent ProgrammingProgramming Language ImplementationProcess SpecificationComputer ScienceProcess CalculusSoftware DesignProgramming Language DesignDeclarative ProgrammingAutomated ReasoningProgram AnalysisConcurrency TheoryProcess ControlFormal MethodsParallel ProgrammingSystem SoftwareSequential Processes
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 familiar programming exercises.
14
The Semantics of a Simple Language for Parallel Programming.
Gilles Kahn · IFIP Congress · 1974 · 2.1K citations
Proof of correctness of data representations
C. A. R. Hoare · Acta Informatica · 1972 · 964 citations
Olle Dahl, E. Dijkstra, C. A. R. Hoare · 1972 · 889 citations
Dynamic Data Structure, Declarative Programming, Engineering +15
The programming language pascal
Niklaus Wirth · Acta Informatica · 1971 · 722 citations
Programming Language Theory, Engineering, Automated Reasoning +8