Dahl was born in
Mandal, Norway. He was the son of Finn Dahl (1898–1962) and Ingrid Othilie Kathinka Pedersen (1905–80). When he was seven, his family moved to
Drammen. When he was thirteen, the whole family fled to Sweden during the
German occupation of Norway in
World War II. After the war's end, Dahl studied numerical
mathematics at the University of Oslo. Dahl is widely accepted as Norway's foremost computer scientist. With Kristen Nygaard, he produced the initial ideas for object-oriented (OO) programming in the 1960s at the
Norwegian Computing Center (Norsk Regnesentral (NR)) as part of the
Simula I (1961–1965) and Simula 67 (1965–1968)
simulation programming languages, which began as an extended variant and
superset of
ALGOL 60. Dahl and Nygaard were the first to develop the concepts of
class,
subclass (allowing implicit
information hiding),
inheritance,
dynamic object creation, etc., all important aspects of the OO paradigm. An
object is a self-contained component (with a data structure and associated procedures or
methods) in a software system. These are combined to form a complete system. The object-oriented approach is now pervasive in modern
software development, including widely used imperative programming languages such as
C++ and
Java. He received the
Turing Award for his work in 2001 (with
Kristen Nygaard). He received the 2002
Institute of Electrical and Electronics Engineers (IEEE)
John von Neumann Medal (with Kristen Nygaard) and was named Commander of the
Royal Norwegian Order of St. Olav in 2000. The
Association Internationale pour les Technologies Objets named the
Dahl-Nygaard Prize after Dahl. ==Early papers==