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

  1. Simula 67 — Classes and Inheritance Enter a Programming Language

Last updated:

Share