PERSON
Ole-Johan Dahl
With Kristen Nygaard, the designer of the Simula languages, in which the basic concepts of object orientation were first assembled into a general-purpose language. Born in Mandal, Norway in 1931. After working at the Norwegian Defence Research Establishment under Jan V. Garwick on programming for the Ferranti Mercury, he joined the Norwegian Computing Center full-time in 1963 and led the implementation of Simula I (completed 1965) and of Simula 67. It was largely Dahl who turned classes, subclasses and virtual procedures into forms that could actually be compiled. In 1968 he became Norway's first professor of informatics, at the University of Oslo, and moved on to Structured Programming (1972, with Dijkstra and Hoare) and to formal methods. ACM A.M. Turing Award 2001; IEEE John von Neumann Medal 2002. He died in 2002.
Profile
- Born
- 1931
- Died
- 2002
- Span
- 71 years
- Appearances
- 01
- Name
- ENOle-Johan DahlJAオーレ=ヨハン・ダール
Ole-Johan Dahl (12 October 1931, Mandal, Norway – 29 June 2002, Asker) designed the Simula languages with Kristen Nygaard. The Department of Informatics at the University of Oslo, where he spent the second half of his career, describes him as one of the fathers of Simula and of object-oriented programming, together with Nygaard.
The two divided the work. Nygaard brought the ambition and the problem; Dahl was the one who could see instantly whether an idea could be implemented, and who recast proposals into shapes that satisfied both the concept and the compiler.
The Ferranti Mercury, and Nygaard
His family moved to Drammen when he was seven, and when he was thirteen they fled to Sweden during the German occupation of Norway. After the war he studied numerical mathematics at the University of Oslo.
He then worked at the Norwegian Defence Research Establishment under Jan V. Garwick, programming the Ferranti Mercury: his 1957 report Multiple index countings on the Ferranti Mercury computer and the 1958 Programmer's handbook for the Ferranti Mercury Computer, written with Garwick, date from that period. Nygaard was at NDRE until 1960. That is where the two men came to know each other.
Simula
In January 1962, Nygaard — by then at the Norwegian Computing Center — wrote that his ideas for describing queueing systems had become reasonably clear, and that he was about to meet an expert programmer about implementing them. The programmer was Dahl, who joined the NCC full-time in May 1963.
The early design, later called Simula 0, was to be built as a preprocessor to an ALGOL compiler; ALGOL's last-in-first-out allocation made that impossible for objects with independent lifetimes. Dahl went inside the compiler instead, designing heap allocation and a garbage collector based on reference counts and free lists, with a last-resort search that could also reclaim cycles. That freedom is what allowed the language to be generalised — the active "stations" and passive "customers" of the early design collapsing into a single concept, the process.
Simula I was implemented between April 1964 and January 1965, by converting the UNIVAC 1107's ALGOL compiler into a Simula compiler. Dahl led the work and did much of it himself, with Bjørn Myhrhaug and Sigurd Kubosch.
For Simula 67, C.A.R. Hoare's proposal for record classes supplied the missing piece, and late in 1966 Dahl and Nygaard found the form that made it work: a subclass declared syntactically independently of its superclass, with the superclass written as a prefix. Virtual procedures were settled after the paper was submitted in March 1967 and reached the Lysebu conference that May just in time. The language was frozen by the Common Base Language report the Simula Standardization Group accepted on 10 February 1968.
Stein Krogdahl's history of Simula quotes the pair's own HOPL account of how they worked: in some research teams a new idea is treated with loving care, and in the Simula development it was not — when one of them announced an idea, the other would brighten up and, in their words, "do his best to kill it off". Nothing entered the language without surviving a long argument.
Oslo and Formal Methods
In 1968 Dahl became a full professor at the University of Oslo — the first professor of informatics in Norway, and the founder of computer science as a discipline there.
His most influential university publication was "Hierarchical Program Structures", which appeared in Structured Programming (1972), the volume he wrote with Edsger Dijkstra and C.A.R. Hoare and probably the best-known academic book about software of that decade.
From there his interests moved to formal methods — reasoning rigorously about programs, including about object orientation. Unlike much theoretical computer science of the time, his work stayed anchored in implementation experience. With Olaf Owe, his closest collaborator, he pursued languages, specification, verification and tool development in the long-running ABEL project.
Honours
- 2000 — Commander of the Royal Norwegian Order of St. Olav, with Nygaard
- 2001 — ACM A.M. Turing Award, shared with Nygaard
- 2002 — IEEE John von Neumann Medal, shared with Nygaard
On 27 September 2017 an IEEE Milestone plaque, "Object-Oriented Programming, 1961-1967", was dedicated at the University of Oslo. The international object-technology association AITO names its Dahl–Nygaard Prize after the two of them.
Simula's Ideas in Other People's Languages
The concepts Dahl and Nygaard built spread through other people's languages rather than their own. Alan Kay took up Simula's ideas at Xerox PARC in the 1970s and produced Smalltalk; Bjarne Stroustrup designed C++ to provide Simula's facilities for organising a program together with C's efficiency. Java, C# and Python all inherited the same vocabulary of classes, inheritance and virtual procedures.
Very few people write Simula now. Most working programmers spend every day inside Dahl's design anyway.
Appearances
Last updated: