12th October 1931 in Mandal, Norway
29th June 2002 from Lymphatic Cancer at Asker, Norway
MS in Numerical Mathematics, University of Oslo (1957).
Military Service at Institute of Defense Research, Oslo, under Jan Garwick (1952–1963); Joined Nygaard at Norwegian Computing Center (1963); Professor at the University of Oslo (1968).
Rosing Prize, Norwegian Data Association (1999); Commander of the Order of Saint Olav, awarded by the King of Norway (2000); ACM Turing Award (2001); IEEE von Neumann Medal (2002); Association Internationale pour les Technologies Objets (AiTO) annually awards two prizes named in honor of Dahl and Nygaard.
With Kristen Nygaard, for ideas fundamental to the emergence of object oriented programming, through their design of the programming languages Simula I and Simula 67.
Object-oriented programming is a dominant programming paradigm of this age. Fundamental to the emergence of this paradigm were core concepts such as objects, classes, and inheritance with virtual quantities, all clearly established in Ole Johan Dahl and Kristen Nygaard's discrete event simulation language Simula I and general programming language Simula 67. The objects integrate data, procedural, and cooperating action sequence aspects into one very general and powerful unifying entity.
By embodying these core concepts in a language designed both for system description and programming, Dahl and Nygaard provided both a logical and a notational basis for the ideas. Software could be built in layers of abstraction, each one relying on the description and conceptual platform implemented by the previous layers. By defining Simula 67 to be an extension of an international standard language, Algol-60, this medium of expression was accessible and available to the entire research community. Simula shaped and sped the emergence of object-oriented programming and the management discipline that accompanies it by many years.
Ole-Johan Dahl was born on 12th October 1931 in Mandal, a small town on the south coast of Norway. Although now a resort, the residents of Mandal had historically looked to the sea for their livelihoods, and Dahl was descended on both sides from long lines of sea captains and sailors. It soon became evident that Dahl was not to continue that tradition, because his early interests were reading, mathematics, and playing the piano. His mother was a housewife, and neither his sister nor his brother was academically inclined.
When he was seven, his family moved to Drammen, south of Oslo. When he was thirteen, his elder cousin was shot dead by the Nazis and the whole family fled to Sweden. Consequently he missed the final year of elementary school and started directly in high school after taking the entrance examination as an external candidate. Because he was able to help his teacher explain mathematics to the other pupils, he was soon nicknamed “the professor.”
Dahl heard classical music for the first time when he was 3 years old and was captivated by it. His passion for music stayed with him throughout his life, but it seems that he decided quite early to make his career elsewhere. He chose an academic career focused on mathematics, because music was a personal and private affair used to enrich his life and those of his friends, rather than a field to be used as a profession.
Dahl studied numerical mathematics at the University of Oslo. During his time at the University he also worked part-time at the Norwegian Defense Research Establishment (NDRE), to which he was assigned in 1952 for his compulsory military service. He continued to work there full-time after he graduated. It was at NDRE that he was first introduced to computers. He was also fortunate to fall under the influence of Jan Garwick (often called the “father of informatics” in Norway), who was able to stimulate and nurture Dahl's talents. In 1954 Dahl became Garwick's assistant.
By 1957 the NDRE had obtained an early Ferranti Mercury computer. Dahl designed and implemented what was then considered to be a high-level language for the Mercury, called MAC (Mercury Automatic Coding). Dahl's university degree, while officially in the area of numerical analysis, was actually about computer science: the title of his thesis was “Multiple Index Countings on the Ferranti Mercury Computer.”
At NDRE Dahl also encountered Kristen Nygaard, and the partnership between these two men was to change the face of computing. Nygaard had been working on calculations related to the diameter of the uranium rods for Norway's first nuclear reactor. In 1949 NDRE started using Monte Carlo simulation, with the calculations performed by hand, instead of attempting to solve the equations exactly. “In that [simulation] model the physical paths and histories of a large number of neutrons were generated and a statistical analysis of their properties used to estimate the proper choice of rod diameter” [Nyggard 1986]. Later Nygaard applied the same approach to other problems, changing his focus to operational research, and in 1956 earning a Master of Science degree with a thesis on probability theory.
In 1960 Nygaard moved to the Norwegian Computing Center (NCC), a semi-governmental research institute that had been established in 1958. His brief was to expand the NCC's research capabilities in computer science and operational research. He wrote “Many of the civilian tasks turned out to present the same kind of methodological problems [as his earlier military work]: the necessity of using simulation, the need of concepts and a language for system description, lack of tools for generating simulation programs'' . In 1961 he started designing a simulation language as a way of attacking those problems.
In January 1962 Nygaard wrote a letter describing his progress, addressed to Charles Salzmann, a French specialist in operational research. Nygaard wrote:
The status of the Simulation Language (Monte Carlo Compiler) is that I have rather clear ideas on how to describe queueing systems, and have developed concepts which I feel allow a reasonably easy description of large classes of situations. I believe that these results have some interest even isolated from the compiler, since the presently used ways of describing such systems are not very satisfactory. ...
The work on the compiler could not start before the language was fairly well developed, but this stage seems now to have been reached. The expert programmer who is interested in this part of the job will meet me tomorrow. He has been rather optimistic during our previous meetings. .
The “expert programmer” was Ole-Johan Dahl. Working with Nygaard, Dahl produced the initial ideas for object-oriented programming, which is now the dominant style of programming for commercial and industrial applications. Dahl joined the NCC in 1963 and stayed there until 1968, when he was invited to become a full professor at the University of Oslo
The languages that Dahl and Nygaard developed together were, first (1962-1964) a simulation language called SIMULA, now usually referred to as SIMULA I, and subsequently a general-purpose language called SIMULA 67.
SIMULA I was intended to be used both for describing complex systems and for programming simulations of their behavior. Nygaard wrote:
SIMULA [I] should give its users a set of concepts in terms of which they could comprehend the system considered, and a language for precise and complete description of its properties. It should thus be a tool both for the person writing the description and for people with whom he wanted to communicate about the system.
At the same time this system description should, with the necessary input/output and data analysis information added, be compilable into a computer simulation program, providing quantitative information about the system’s behaviour. .
Although designed as a simulation language, almost from the beginning SIMULA I was used not only for simulation but also for general-purpose programming. It introduced its users to the idea of organizing their programs as a system of interacting, executing components, and this idea proved useful for a wide range of applications. These interacting components became the “objects” of SIMULA 67.
SIMULA 67 was designed from the beginning as a general-purpose language, but Dahl and Nygaard invented a mechanism (class prefixing) that made the simulation-specific features of SIMULA I available in SIMULA 67 as a special kind of library. Prefixing could be used in two rather different ways, which have given rise to two of the most important ideas in modern programming languages: inheritance, which makes it easy to reuse code in unanticipated ways, and modules, which are used for extending the vocabulary of a programming language.
These ideas — objects, inheritance, and modularity — are among the major contributions of Dahl and Nygaard to the discipline of programming. SIMULA also contributed the process concept, which enabled programmers to express activities going on concurrently. With wonderful economy, all of these ideas were realized as variant uses of a single linguistic mechanism, the class.
Part of the success of Dahl and Nygaard in creating the ideas of object-orientation is clearly due to their extraordinary talents. But part is also due to their very differing backgrounds, which made every language feature proposed by one the subject of criticism by the other. One story has it that in the spring of 1967 a new employee told the switchboard operator in a shocked voice: “Two men are fighting violently in front of the blackboard in the upstairs corridor. What shall we do?” The operator came out of the office, listened for a few seconds and then said: “Relax. It's only Dahl and Nygaard discussing SIMULA.”
After Dahl moved to the University of Oslo he deliberately stopped work on further development of SIMULA and took on the responsibility, almost single-handed, of building up computer science in Norway as an academic discipline. For the first 10 years he was the only professor of computer science at the University. He taught during the day, wrote textbooks at night, and supervised up to 20 graduate students at a time. He worked on programming methodology, and produced, with Tony Hoare, a chapter called “Hierarchical Program Structures” that became part of the celebrated book “Structured Programming” .
Dahl's later work was influenced by Hoare's system for reasoning mathematically about programs. He started using and teaching these reasoning techniques, and felt that they would improve even informally-produced programs. In 1992 Dahl published Verifiable Programming, which includes many of his own research results . In the 1990s he returned to object-orientated programming through design of the ABEL language and his research on reasoning about object-oriented systems.
Dahl died in 2002 after a long battle with Lymphatic Cancer. He and his wife Tove had two children, Fredrik and Ingrid.
Ole-Johan Dahl on the Web
Many articles on Dahl are available on the world-wide web. Some of them have been used as sources in preparing this article.
The homepage for Ole-Johan Dahl.
Bertrand Meyer, “In memory of Ole-Johan Dahl and Kristen Nygaard”, and Nygaard's own eulogy for Dahl.
Virtual Exhibition. In People Behind Informatics.
ACM press release about the 2001 Turing award
Author: Andrew P. Black