ESSAYS IN COMPUTING

Selected Papers

by Per Brinch Hansen

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.

bullet.gif (943 bytes) 1966a

The Cobol compiler for the Siemens 3003

bullet.gif (943 bytes) 1966b

Design considerations for the RC 4000 computer

bullet.gif (943 bytes) 1967a

The logical structure of the RC 4000 computer

bullet.gif (943 bytes) 1967b

The RC 4000 real-time control system at Pulawy

bullet.gif (943 bytes) 1969a

RC 4000 Software: Multiprogramming System (abridged)

bullet.gif (943 bytes) 1969b

RC 4000 Computer: Reference Manual

bullet.gif (943 bytes) 1969c

RC 4000 Software: Multiprogramming System (complete)

bullet.gif (943 bytes) 1970a

The nucleus of a multiprogramming system

bullet.gif (943 bytes) 1971a

An outline of a course on operating system principles

bullet.gif (943 bytes) 1972a

Structured multiprogramming

bullet.gif (943 bytes) 1973b

Shared classes

bullet.gif (943 bytes) 1973c

Testing a multiprogramming system

bullet.gif (943 bytes) 1975a

The programming language Concurrent Pascal

bullet.gif (943 bytes) 1976b

The Solo operating system: A Concurrent Pascal program

bullet.gif (943 bytes) 1976c

The Solo operating system: Processes, monitors, and classes

bullet.gif (943 bytes) 1976e

The programmer as a young dog

bullet.gif (943 bytes) 1977a

Experience with modular concurrent programming

bullet.gif (943 bytes) 1977c

Design principles

bullet.gif (943 bytes) 1977d

Network---A multiprocessor program

bullet.gif (943 bytes) 1978a

Distributed processes: A concurrent programming concept

bullet.gif (943 bytes) 1978b

Reproducible testing of monitors

bullet.gif (943 bytes) 1978c

A keynote address on concurrent programming

bullet.gif (943 bytes) 1981b

The design of Edison

bullet.gif (943 bytes) 1987a

Joyce---A programming language for distributed systems

bullet.gif (943 bytes) 1989a

A multiprocessor implementation of Joyce

bullet.gif (943 bytes) 1989b

The nature of parallel programming

bullet.gif (943 bytes) 1989c

The Joyce Language Report

bullet.gif (943 bytes) 1990a

The linear search rediscovered

bullet.gif (943 bytes) 1992a

Householder reduction of linear equations

bullet.gif (943 bytes) 1993a

Monitors and Concurrent Pascal: A personal history

bullet.gif (943 bytes) 1993b

Model programs for computational science

bullet.gif (943 bytes) 1993c

Parallel cellular automata

bullet.gif (943 bytes) 1994b

Multiple-length division revisited

bullet.gif (943 bytes) 1994c

SuperPascal---A publication language

bullet.gif (943 bytes) 1994d

Interference control in SuperPascal

bullet.gif (943 bytes) 1995c

Efficient parallel recursion

bullet.gif (943 bytes) 1995d

The all-pairs pipeline

bullet.gif (943 bytes) 1995e

Balancing a pipeline

bullet.gif (943 bytes) 1999b

Java's insecure parallelism

bullet.gif (943 bytes) 2001b

The evolution of operating systems

bullet.gif (943 bytes) 2002b

The invention of concurrent programming