About Per Brinch Hansen
Lived 1938 – 2007 (aged 68). Per Brinch Hansen was a Danish and American computer scientist, engineer and university teacher, known for Concurrent Pascal, Concurrent programming and Distributed computing.
Per Brinch Hansen (13 November 1938 – 31 July 2007) was a Danish-American computer scientist known for his work in operating systems, concurrent programming and parallel and distributed computing.
Biography
Early life and education
Per Brinch Hansen was born in Frederiksberg, an enclave surrounded by Copenhagen, Denmark. His father, Jørgen Brinch Hansen, worked as a civil engineer, becoming a leading expert in soil mechanics, and later accepting a professorship at Technical University of Denmark. His mother, Elsebeth Brinch Hansen (née Ring), was the daughter of Danish composer Oluf Ring and worked as a hairdresser before marrying.
Brinch Hansen attended Skt. Jørgens Gymnasium and then studied electrical engineering at Technical University of Denmark where he sought an area to pursue that "was still in its pioneering phase" on the belief that "If a subject was being taught, it was probably already too late to make fundamental contributions." After a seven-week student internship at IBM's Hursley Laboratory in England, he decided to dedicate his career to computers. Initially focused on computer construction, reading a book on the IBM 7030 Stretch project that described computer organization from a programmer's point of view refocused his interest toward becoming a computer architect. Edsger Dijkstra had sent him to understand process synchronization using semaphores, and then implemented a specialized RC 4000 real-time monitor for use in managing a fertilizer plant. Peter Kraft and Charles Simonyi, who was still a teenager, wrote a p-code interpreter and data logging task programs that were compiled to p-code. By the spring of 1969, a well-documented, reliable version of the RC 4000 multiprogramming system was running.
California Institute of Technology
In July 1972, Brinch Hansen joined the faculty of the California Institute of Technology (Caltech) as an Associate Professor of computer science, where he began work on defining a programming language with concurrent processes and monitors. In April 1974, he distributed a technical report on Concurrent Pascal. Subsequently, Brinch Hansen began writing model operating systems in Concurrent Pascal, to evaluate the language. In May 1975, he completed Solo, a single-user operating system for development of Concurrent Pascal programs. Next, he rewrote the original RC 4000 real-time scheduler in Concurrent Pascal, taking three days to write it, and three hours of machine time to systematically test it. In 1978, Brinch Hansen became the first computer scientist awarded the Doctor Technices degree, the highest academic distinction within engineering and technological science in Denmark, for the work documented in The Architecture of Concurrent Programs. Later in 1978, Brinch Hansen published the Distributed Processes language concept, proposing the use of remote procedure calls to synchronize processes running across a microcomputer network.
Also in 1978, L. J. Sevins and Steve Goings from Mostek visited Brinch Hansen at USC, where he outlined a low-cost multiprocessor architecture. Mostek began a project to implement such a multiprocessor, with Brinch Hansen working as a consultant. As with the RC 4000 project, Edison was also used as a formal specification language for the hardware. Mostek got an initial 4-node multiprocessor working and Brinch Hansen wrote a portable Edison compiler on a PDP 11/55, but shortly after, United Technologies acquired Mostek and cancelled the project. In 1982, Brinch Hansen moved the Edison system to an IBM Personal Computer (PC), and then published his third book, Programming a Personal Computer.
In 1982, Brinch Hansen was named the first Henry Salvatori Professor of Computer Science at USC.
While designing a multicomputer operating system for Danish company GN Elmi, Brinch Hansen concluded he needed a new language, this time leveraging the message passing paradigm of Hoare's CSP. Brinch Hansen developed a portable implementation on an IBM PC. with programs rewritten in SuperPascal, a fully implemented publication language he created for parallel algorithms.
Last years In his later years, Brinch Hansen published a retrospective of his most important papers, The Search for Simplicity (1996), a text for a course in programming for non-majors, Programming for Everyone in Java (1999), a retrospective on the evolution of operating systems, Classic Operating Systems: From Batch Processing to Distributed Systems (2001), and a retrospective on the evolution of concurrent programming, The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls (2002). He self-published a 2004 memoir, A Programmer's Story: The Life of a Computer Pioneer, on his website.
On July 31, 2007, Brinch Hansen died, shortly after being diagnosed with terminal cancer.
Personal life Brinch Hansen met his wife Milena (née Hrastar) on a class trip to Yugoslavia in 1962. They married in 1965 and had two children, daughter Mette and son Thomas. and his commitment to testing concepts in working systems – Brinch Hansen implemented and distributed working systems for new concepts he developed, noting:
Operating systems The RC 4000 multiprogramming system introduced the now-standard concept of an operating system kernel and the separation of mechanism and policy in operating system design. Modern microkernel architectures trace their roots to the extensible nucleus architecture of the RC 4000. It is now available from the ACM Digital Library.
Using Concurrent Pascal, Brinch Hansen demonstrated that it was feasible to fully implement operating systems in high level languages, and that doing so reduced the development effort by one to two orders of magnitude. Furthermore, entire operating systems could be published, and understood in their entirety. Brinch Hansen did precisely that in The Architecture of Concurrent Programs, leading Roy Maddux and Harlan Mills to declare:
Concurrent programming Brinch Hansen and Hoare developed the monitor concept. Brinch Hansen published the first monitor notation, adopting the class concept of Simula 67, Hoare refined the rules of process resumption. Brinch Hansen created the first implementation of monitors, in Concurrent Pascal. More than a dozen additional monitor-based languages had been created by 1990: Simone, Modula, CSP/k, CCNPascal, PLY, Pascal Plus, Mesa, SB-Mod, Concurrent Euclid, Pascalc, Concurrent C, Emerald, Real-time Euclid, Pascal-FC, Turing Plus, Predula. high-level facilities for concurrency, where the system could guarantee that processes access disjoint sets of variables only and do not interfere with each other in time dependent ways.
Source and portable code for Concurrent Pascal and the Solo operating system were distributed to at least 75 companies and 100 universities in 21 countries, resulting in its widespread adoption, porting and adaptation in both industry and academia.
In his 1978 paper on distributed processes, Brinch Hansen proposed a language for distributed computing based on external requests consisting of procedure calls between processes. This later became known in an operating system context as the remote procedure call.
Later, Brinch Hansen developed two languages extending Hoare's CSP message-passing paradigm with parallel recursion,
Honors and awards Doctor Technices, Technical University of Denmark, for The Architecture of Concurrent Programs, 1978 First Henry Salvatori Professor of Computer Science, University of Southern California, 1982 IEEE Fellow, 1985 Distinguished Professor, Syracuse University, 1987 Chancellor's Medal, Syracuse University, 1989 IEEE Computer Pioneer Award, for pioneering development in operating systems and concurrent programming exemplified by work on the RC 4000 multiprogramming system, monitors, and Concurrent Pascal, 2002
Programming languages Concurrent Pascal (1975) Distributed Processes (1978) Edison (1981) Joyce (1987) SuperPascal (1993)
Quotations Writing is a rigorous test of simplicity: It is just not possible to write convincingly about ideas that cannot be understood Programming is the art of writing essays in crystal clear prose and making them executable
Publications Books Operating System Principles (1973, ) The Architecture of Concurrent Programs (1977, ) Programming a Personal Computer (1983, ) Brinch Hansen on Pascal Compilers (1985, ) Studies in Computational Science: Parallel Programming Paradigms (1995, ) The Search for Simplicity: Essays in Parallel Programming (1996, ) Programming for Everyone in Java (1999, ) Classic Operating Systems: From Batch Processing to Distributed Systems (editor, 2001, ) The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls (editor, 2002, ) A Programmer's Story: The Life of a Computer Pioneer (2004, available at http://brinch-hansen.net/)
Selected papers The Cobol compiler for the Siemens 3003, BIT 6, 1 (1966), 1–23 (with Roger House) Design Considerations for the RC 4000 Computer, Regnecentralen, Copenhagen, Denmark (1966) (with Peter Kraft) The logical structure of the RC 4000 computer, BIT 7, 3 (1967), 191– 199 The RC 4000 real-time control system at Pulawy, BIT 7, 4 (1967), 279–288 RC 4000 Software: Multiprogramming System, Part I General Description, Regnecentralen, Copenhagen, Denmark (1969) 13–52 RC 4000 Software: Multiprogramming System (Complete), Regnecentralen, Copenhagen, Denmark (1969) RC 4000 Computer: Reference Manual, Regnecentralen, Copenhagen, Denmark (1969) The nucleus of a multiprogramming system, Communications of the ACM 13, 4 (April 1970), 238–242 An outline of a course on operating system principles, in Operating Systems Techniques, Proceedings of a Seminar at Queen's University, Belfast, Northern Ireland, August–September 1971. C. A. R. Hoare and R. H. Perrott, Eds. Academic Press, New York (1972), 29–36 Structured multiprogramming, Communications of the ACM 15, 7 (July 1972), 574–578 Shared Classes, in Operating System Principles, Section 7.2 Class Concept, Prentice Hall, Englewood Cliffs, NJ, (July 1973), 226–232 Testing a multiprogramming system, Software: Practice and Experience 3, 2 (April–June), 145–150 The programming language Concurrent Pascal, IEEE Transactions on Software Engineering 1, 2 (June 1975), 199–207 The Solo operating system: a Concurrent Pascal program, Software— Practice and Experience 6, 2 (April–June 1976), 141–149 The Solo operating system: processes, monitors and classes, Software— Practice and Experience 6, 2 (April–June 1976), 165–200 The Programmer as a Young Dog, English translation by the author of Programmøren som hvalp, In Niels Ivar Bech—en epoke i edbudviklingen i Danmark, P. Sveistrup, P. Naur, H.B. Hansen, and C. Gram, Eds., (in Danish), Data, Copenhagen, Denmark, (1976), 65–68 Experience with modular concurrent programming, IEEE Transactions on Software Engineering 3, 2 (March 1977), 156–159 Design Principles, in The Architecture of Concurrent Programs, Chapter 1 Design Principles, Prentice Hall, Englewood Cliffs, NJ, (July 1977), 3–14 Network: A multiprocessor program, IEEE Transactions on Software Engineering 4, 3 (May 1978), 194–199 Distributed processes: A concurrent programming concept, Communications of the ACM 21, 11 (November 1978), 934–941 Reproducible testing of monitors, Software: Practice and Experience 8, 6 (November–December), 721–729 A keynote address on concurrent programming, Keynote address for the IEEE Computer Software & Applications Conference, Chicago, IL, November 1978, Computer 12, 5 (May 1979), 50–56 The Design of Edison, Software: Practice and Experience 11, 4 (April 1981), 363–396 Joyce—A programming language for distributed systems, Software— Practice and Experience 17, 1 (January 1987), 29–50 The Joyce Language Report, Software: Practice and Experience 19, 6 (June 1989), 553–578 A multiprocessor implementation of Joyce, Software: Practice and Experience 19, 6 (June 1989), 579–592 The nature of parallel programming, Inaugural Symposium at Syracuse University, Syracuse, NY, March 1989, In Natural and Artificial Parallel Computation, M.A. Arbib and J.A. Robinson, Eds. The MIT Press, Cambridge, MA, (1990), 31–46 The linear search rediscovered, Structured Programming 11, (1990), 53–55 Householder reduction of linear equations, ACM Computing Surveys 24, 2 (June 1992), 185–194 Monitors and Concurrent Pascal: A personal history, 2nd ACM Conference on the History of Programming Languages, Cambridge, MA, April 1993, In SIGPLAN Notices 28, 3 (March 1993), 1–35 Model programs for computational science: A programming methodology for multicomputers, Concurrency—Practice and Experience 5, 5 (August 1993), 407–423 Parallel Cellular Automata: A model program for computational science, Concurrency—Practice and Experience 5, 5 (August 1993), 425–448 Multiple-length division revisited: A tour of the minefield, Software: Practice and Experience 24, (June 1994), 579–601 SuperPascal—A publication language for parallel scientific computing, Concurrency—Practice and Experience 6, 5 (August 1994), 461–483 Interference control in SuperPascal—A block-structured language parallel language, The Computer Journal 37, 5 (1994), 399–406 Efficient parallel recursion, SIGPLAN Notices 30, 12 (December 1995), 9–16 The All-Pairs Pipeline, in Studies in Computational Science, Chapter 4: The all-pairs pipeline. Prentice Hall, Englewood Cliffs, NJ, (March 1995), 73–89 Balancing a Pipeline, in Studies in Computational Science, Chapter 5: Balancing a pipeline. Prentice Hall, Englewood Cliffs, NJ, (March 1995), 90–100 Java's insecure parallelism, SIGPLAN Notices 34, 4 (April 1999), 38–45 The evolution of operating systems, In Classic Operating Systems: From Batch Processing to Distributed Systems, P. Brinch Hansen, Ed., Springer-Verlag, New York (2001) The invention of concurrent programming, In The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls, P. Brinch Hansen, Ed., Springer-Verlag, New York (2002)
Don’t just read it —
keep it.
Full-length biographies made to live with: read them, listen on the way to work, watch them tonight.
- E-book
- Audio
- Video
Instant download · yours to keep · every purchase keeps this site free
Important facts
more
Parallel computing, RC 4000 multiprogramming systemPeople in Per Brinch Hansen's life
Named in this biography and alive at the same time
Contemporaries
People whose lives overlapped Per Brinch Hansen's
Frequently asked questions
Who was Per Brinch Hansen?
computer scientist (1938-2007)
When was Per Brinch Hansen born?
Per Brinch Hansen was born on 13 November 1938 in Frederiksberg.
When did Per Brinch Hansen die?
Per Brinch Hansen died on 31 July 2007 in Syracuse.
What was Per Brinch Hansen's occupation?
Per Brinch Hansen was a computer scientist, engineer and university teacher.
What was Per Brinch Hansen known for?
Per Brinch Hansen was known for Concurrent Pascal, Concurrent programming, Distributed computing, Microkernel, Monitor (synchronization) and Operating system.
What nationality was Per Brinch Hansen?
Per Brinch Hansen was Danish and American.
Sources & further reading
· Wikipedia: Per Brinch Hansen
Cite this page
APA: Biography.guide. (2026). Per Brinch Hansen. https://biography.guide/per-brinch-hansen/
MLA: "Per Brinch Hansen." Biography.guide, https://biography.guide/per-brinch-hansen/.
Chicago: "Per Brinch Hansen." Biography.guide. https://biography.guide/per-brinch-hansen/.
Data last updated: 2026-09-26 · Spot an error? Report a correction.
Page generated 2026-09-27 05:15 UTC