Here I have selected close to forty of my one hundred publications. Written over a period of forty years, these essays document the technical aspects of my life in computer programming. Most of them are mentioned in my autobiography, A Programmer's Story.
You can read, print, or download individual papers in PDF format by clicking on the publication years. A footnote on the title page of each paper gives full credit to the publication in which the work first appeared, including the name of the copyright holder.
![]() |
1966a | The Cobol compiler for the Siemens 3003 |
![]() |
1966b | Design considerations for the RC 4000 computer |
![]() |
1967a | The logical structure of the RC 4000 computer |
![]() |
1967b | The RC 4000 real-time control system at Pulawy |
![]() |
1969a | RC 4000 Software: Multiprogramming System (abridged) |
![]() |
1969b | RC 4000 Computer: Reference Manual |
![]() |
1969c | RC 4000 Software: Multiprogramming System (complete) |
![]() |
1970a | The nucleus of a multiprogramming system |
![]() |
1971a | An outline of a course on operating system principles |
![]() |
1972a | Structured multiprogramming |
![]() |
1973b | Shared classes |
![]() |
1973c | Testing a multiprogramming system |
![]() |
1975a | The programming language Concurrent Pascal |
![]() |
1976b | The Solo operating system: A Concurrent Pascal program |
![]() |
1976c | The Solo operating system: Processes, monitors, and classes |
![]() |
1976e | The programmer as a young dog |
![]() |
1977a | Experience with modular concurrent programming |
![]() |
1977c | Design principles |
![]() |
1977d | Network---A multiprocessor program |
![]() |
1978a | Distributed processes: A concurrent programming concept |
![]() |
1978b | Reproducible testing of monitors |
![]() |
1978c | A keynote address on concurrent programming |
![]() |
1981b | The design of Edison |
![]() |
1987a | Joyce---A programming language for distributed systems |
![]() |
1989a | A multiprocessor implementation of Joyce |
![]() |
1989b | The nature of parallel programming |
![]() |
1989c | The Joyce Language Report |
![]() |
1990a | The linear search rediscovered |
![]() |
1992a | Householder reduction of linear equations |
![]() |
1993a | Monitors and Concurrent Pascal: A personal history |
![]() |
1993b | Model programs for computational science |
![]() |
1993c | Parallel cellular automata |
![]() |
1994b | Multiple-length division revisited |
![]() |
1994c | SuperPascal---A publication language |
![]() |
1994d | Interference control in SuperPascal |
![]() |
1995c | Efficient parallel recursion |
![]() |
1995d | The all-pairs pipeline |
![]() |
1995e | Balancing a pipeline |
![]() |
1999b | Java's insecure parallelism |
![]() |
2001b | The evolution of operating systems |
![]() |
2002b | The invention of concurrent programming |