Research Reading Map
Through Dijkstra for agentic systems: coordination, communication, notation, correctness, and disciplined tool-building.
I. Orientation: Why Dijkstra for Agentic Systems
Start with the archive as a discipline of precise cooperation rather than a list of historical curiosities.
- EWD340 The humble programmer Available Frames humility as an engineering constraint for systems that exceed individual intuition.
- EWD447 On the role of scientific thought Available Connects computing practice to explicit models, controlled vocabulary, and criticism.
- EWD988 On the phenomenon of scientific disciplines Available Useful for treating agent systems as an emerging discipline rather than a bag of demos.
II. Primary Reading Path
A compact path through method, concurrency, formal notation, derivation, and tool discipline.
- EWD123 Cooperating sequential processes Available The central bridge from individual sequential agents to shared protocols and exclusion.
- EWD249 Notes on Structured Programming Available Makes disciplined decomposition the default tool for systems that must be understood.
- EWD340 The humble programmer Available A research posture for building systems whose behavior is too large to inspect by anecdote.
- EWD391 Self-stabilization in spite of distributed control Available A compact model of local rules producing global recovery under distributed control.
- EWD418 Guarded commands, non-determinacy and a calculus for the derivation of programs Available The core notation for nondeterministic choice, derivation, and correctness arguments.
- EWD476 Concurrent programming: a preliminary investigation Available Turns recognizers, generators, and buffers into a concrete vocabulary for concurrent components.
- EWD607 A correctness proof for communicating processes: a small exercise Available Shows correctness as an internal design loop for interacting processes.
- EWD684 Termination detection for diffusing computations (with C.S.Scholten) Available A reference point for deciding when a distributed computation is actually finished.
- EWD831 Why numbering should start at zero Available A short demonstration of notation as a design decision, not surface syntax.
- EWD993 The nature of my research and why I do it Available Closes the path by making research discipline explicit.
III. Agent Swarms and Distributed Control
- EWD391 Self-stabilization in spite of distributed control Available A minimal distributed-control model for recovery without a central repair authority.
- EWD397 Self-stabilizing systems with distributed control Available Expands the self-stabilization argument into a family of distributed designs.
- EWD426 Self-stabilizing systems in spite of distributed control Available A later presentation of the same core problem of autonomous global recovery.
- EWD752 Distributed Arbitration (DRAFT, with C.S.Scholten) Available A direct entry into arbitration protocols and reduced centralized assumptions.
- EWD851 Reducing control traffic in a distributed implementation of mutual exclusion Available Relevant for multi-agent coordination overhead and control-plane economy.
IV. Communication, Synchronization, and Resource Protocols
- EWD123 Cooperating sequential processes Available The foundational protocol text for mutual exclusion and cooperating processes.
- EWD108 An algorithm for preventing deadly embrace Needs review A translation-priority deadlock text for resource allocation in cooperating systems.
- EWD116 The banker’s algorithm and refinements thereof Needs review A translation-priority companion to deadlock avoidance and resource guarantees.
- EWD405 Synchronization and sequencing Translation pending A translation-priority synchronization text with OCR-derived source risk.
- EWD476 Concurrent programming: a preliminary investigation Available Gives concrete recognizer, generator, and buffer examples for communicating processes.
- EWD643 A class of simple communication patterns (with C.S.Scholten) Available A compact protocol vocabulary for message patterns in cooperating components.
- EWD703 A tutorial on the split binary semaphore Available Useful for resource handoff and semaphore discipline in small interacting agents.
- EWD684 Termination detection for diffusing computations (with C.S.Scholten) Available A durable pattern for detecting quiescence across a distributed computation.
V. Formal Languages, Notation, and Calculi
- EWD418 Guarded commands, non-determinacy and a calculus for the derivation of programs Available The most direct bridge from nondeterministic behavior to a manipulable calculus.
- EWD372 A simple axiomatic basis for programming language constructs Available Shows language design as a set of reasoning commitments.
- EWD737 A notational alternative for quantification Available Highlights notation as a way to change what proof steps feel natural.
- EWD815 Remarks on notation (with A.J.M. van Gasteren) Available A direct source for notation as an engineering tool.
- EWD831 Why numbering should start at zero Available A short case study in choosing representations that simplify reasoning.
- EWD882 The regularity calculus: a first trial Available An example of building calculi for regularity rather than relying on prose.
- EWD950 On notation (with A.J.M. van Gasteren) Available A later, explicit treatment of notation and proof format.
- EWD1300 The notational conventions I adopted, and why Available A retrospective account of notation choices as reusable research tools.
VI. Correctness as the Internal Design Loop
- EWD209 A constructive approach to the problem of program correctness Available Places correctness inside construction instead of after-the-fact testing.
- EWD288 Concern for correctness as a guiding principle for program construction Available A concise statement of correctness as a design driver.
- EWD360 On the Necessity of Correctness Proofs Available Argues why proof obligations cannot be replaced by confidence alone.
- EWD472 Guarded commands, non-determinacy and formal derivation of programs Available A paper form of the derivation discipline behind guarded commands.
- EWD607 A correctness proof for communicating processes: a small exercise Available Applies proof discipline directly to communicating-process behavior.
- EWD640 Finding the correctness proof of a concurrent program Available Useful for reading proof as a design artifact for concurrent systems.
- EWD720 Why correctness must be a mathematical concern Available Sharpens the boundary between engineering argument and empirical trial.
- EWD897 A formal program derivation for the record Available A worked example of preserving derivation as an inspectable research object.
VII. Tools, Abstraction, and the External Environment
- EWD237 A preliminary investigation into Computer Assisted Programming Available An early tool-building text: assistance must preserve the programmer’s reasoning task.
- EWD251 Requirements of programming tools Available A direct checklist for disciplined tools rather than tool spectacle.
- EWD393 On representational abstraction Available A useful reminder that abstractions are chosen interfaces to reasoning.
- EWD540 Two views of programming Available Contrasts programming as execution management with programming as formal construction.
- EWD648 “Why is software so expensive?” An explanation to the hardware designer Available Explains tool cost and software difficulty without treating automation as magic.
- EWD667 On the foolishness of “natural language programming” Available Relevant when agent tools are tempted to blur specification and natural-language chatter.
- EWD833 Proven Tools and Techniques of Structured Methodology Available A practical bridge from methodology to external tooling.
VIII. Scientific Thought and Research Discipline
- EWD447 On the role of scientific thought Available A compact account of thought discipline as a technical resource.
- EWD637 The Three Golden Rules for Successful Scientific Research Available A short operating manual for research taste and restraint.
- EWD682 The nature of Computer Science (first draft) Available A broad disciplinary statement for computing as more than machine operation.
- EWD709 My hopes of computing science Available Places computing science in an intellectual rather than purely industrial frame.
- EWD896 On the nature of computing science Available A later discussion of what computing science should be accountable to.
- EWD936 On anthropomorphism in science Available Useful guardrail for not projecting agency where a model should do the work.
- EWD993 The nature of my research and why I do it Available A reflective close on research purpose and method.
- EWD1036 On the cruelty of really teaching computing science Available A demanding account of teaching precision and intellectual responsibility.
IX. Translation and Review Priorities
Curated map entries whose source is translated, under review, or still blocked before public English text can be trusted.
- EWD108 An algorithm for preventing deadly embrace Needs review Public machine translation exists; review is still required for resource-accounting terminology and preserved source identifiers.
- EWD116 The banker’s algorithm and refinements thereof Needs review Public machine translation exists; source-critical correction decisions remain guarded by review.
- EWD405 Synchronization and sequencing Translation pending Synchronization and sequencing should be translated before expanding the protocol path.
X. Full Archive Indexes
The complete archive remains available outside the curated research path.
- Numerical Numerical index Every EWD page in archive-number order.
- Chronological Chronological index Every EWD page grouped by archive period.
- Themes Thematic index A broad automatic archive index, not the curated research map.
- Queue Translation and review queue Pending and review-priority source records.
- Review Translation review summary Public English-only review-state summary for translated and source-blocked records.