Milestone-Proposal:Object-oriented programming


To see comments, or add a comment to this discussion, click here.

Docket #:2016-09

This Proposal has been approved, and is now a Milestone


To the proposer’s knowledge, is this achievement subject to litigation? No

Is the achievement you are proposing more than 25 years old? Yes

Is the achievement you are proposing within IEEE’s fields of interest? (e.g. “the theory and practice of electrical, electronics, communications and computer engineering, as well as computer science, the allied branches of engineering and the related arts and sciences” – from the IEEE Constitution) Yes

Did the achievement provide a meaningful benefit for humanity? Yes

Was it of at least regional importance? Yes

Has an IEEE Organizational Unit agreed to pay for the milestone plaque(s)? Yes

Has an IEEE Organizational Unit agreed to arrange the dedication ceremony? Yes

Has the IEEE Section in which the milestone is located agreed to take responsibility for the plaque after it is dedicated? Yes

Has the owner of the site agreed to have it designated as an Electrical Engineering Milestone? Yes


Year or range of years in which the achievement occurred:

1961-1967

Title of the proposed milestone:

Object-Oriented Programming, 1961-1967

Plaque citation summarizing the achievement and its significance:

Ole-Johan Dahl and Kristen Nygaard created the Simula programming languages in the 1960s at the Norwegian Computer Center. They introduced a new way of modeling and simulating complex tasks. Object-oriented programming is now dominant in systems development. It is an integral part of computer science curricula, as are languages built on object-oriented programming concepts, such as Smalltalk, C++, Java, and Python.

In what IEEE section(s) does it reside?

IEEE Norway Section

IEEE Organizational Unit(s) which have agreed to sponsor the Milestone:

IEEE Organizational Unit(s) paying for milestone plaque(s):

Unit: IEEE Norway Section
Senior Officer Name: Senior officer name masked to public

IEEE Organizational Unit(s) arranging the dedication ceremony:


IEEE section(s) monitoring the plaque(s):


Milestone proposer(s):

Proposer name: Proposer's name masked to public
Proposer email: Proposer's email masked to public

Proposer name: Proposer's name masked to public
Proposer email: Proposer's email masked to public

Proposer name: Proposer's name masked to public
Proposer email: Proposer's email masked to public

Proposer name: Proposer's name masked to public
Proposer email: Proposer's email masked to public

Proposer name: Proposer's name masked to public
Proposer email: Proposer's email masked to public

Please note: your email address and contact information will be masked on the website for privacy reasons. Only IEEE History Center Staff will be able to view the email address.

Street address(es) and GPS coordinates of the intended milestone plaque site(s):

Gaustadalléen 23B, N-0316 Oslo, Norway. 59.943329 N, 10.717839 E

Describe briefly the intended site(s) of the milestone plaque(s). The intended site(s) must have a direct connection with the achievement (e.g. where developed, invented, tested, demonstrated, installed, or operated, etc.). A museum where a device or example of the technology is displayed, or the university where the inventor studied, are not, in themselves, sufficient connection for a milestone plaque.

Please give the address(es) of the plaque site(s) (GPS coordinates if you have them). Also please give the details of the mounting, i.e. on the outside of the building, in the ground floor entrance hall, on a plinth on the grounds, etc. If visitors to the plaque site will need to go through security, or make an appointment, please give the contact information visitors will need. On the wall in the first floor of the Ole Johan Dahl building (Department of Informatics, University of Oslo). The building is named after one of the two people mentioned on the plaque.

Are the original buildings extant?

No. This milestone didn't really take place in just a single physical building

Details of the plaque mounting:

Inside, in the ground floor entrance hall, for instance on a brick-wall.

How is the site protected/secured, and in what ways is it accessible to the public?

The building is open to the public during normal opening hours.

Who is the present owner of the site(s)?

University of Oslo

What is the historical significance of the work (its technological, scientific, or social importance)?

In 1961 Ole-Johan Dahl and Kristen Nygaard started working together to develop a description language for computer simulations. The two scientists developed a simulation language called SIMULA. This resulted in several versions of the language, including SIMULA 1. After completing SIMULA 1, they developed a high-level general programming language with real-time capabilities, on top of strong simulation constructs. The resulting language was called SIMULA 67, completed in 1967.

The language introduced all elements of what today are considered essential in an object-oriented language: encapsulation, inheritance, late binding, and dynamic object creation. And hiding mechanisms were added to the language shortly after.

This gives a natural way of modeling real world problems, letting objects reflect the things of interest, including clients or service providers. An object resembles an autonomous unit in that it has capabilities and may be asked to perform services by other units. This style of organizing the code and data was later termed "object-oriented programming" (OOP).

Object orientation and object-oriented programming became popular world-wide when the ideas of SIMULA were adopted in wide-spread languages such as C++ and Java. In the 1970s in USA, Alan Kay picked up the ideas of SIMULA in his Smalltalk language. Around 1980, Bjarne Stroustrup, who was taught SIMULA by Nygaard, decided to introduce the SIMULA philosophy to the C systems developers community, thus creating the C++ object-oriented language. Another ten years later Java was developed under the auspices of SUN by James Gosling who adhered to the SIMULA object-oriented mechanisms even more closely than C++.

Object-oriented programming, originating from the work on SIMULA, is by far the most popular paradigm for computer programming today and has been so for the last 20 years. This has been acknowledged by several prestigious awards including the Turing award and the von Neumann medal.

Today, nearly all computer programmers works with or have worked with a language that supports object-oriented programming and most of the large software systems that we now run every day have been programmed this way.

What obstacles (technical, political, geographic) needed to be overcome?

Neither the leadership of the Norwegian Computing Center (NR), where Nygaard and Dahl were employed, nor the national research funding instrument were supportive of the SIMULA efforts. In time, however, the development of SIMULA was linked to the acquisition of NR’s UNIVAC computer. Nygaard had a key role in securing this acquisition. This made continued effort on SIMULA possible.

What features set this work apart from similar achievements?

Object-oriented programming, originating from the work on SIMULA, is by far the most popular paradigm for computer programming today and has been so for the last 20 years.

The language incorporated fundamentally new mechanisms for programming and for program structuring, compared to existing languages. It introduced the class concept for encapsulation of data structure and code, subclasses for reuse of code, late binding for flexible inheritance, as well as dynamic and static instantiation of classes. Instead of seeing a program as a monolithic structure, the code of a SIMULA program was organized in a number of classes and blocks. Classes could be dynamically instantiated at run-time, and such an instance was called an "object". An object was an autonomous entity, with its own data and computational capabilities organized in procedures (methods), and objects could cooperate by asking another object to perform a procedure (i.e., by a remote call to a procedure of another object).

The co-routine mechanism of SIMULA allowed one to think of the objects as units that were operating concurrently. This lead to the notion of concurrent objects and inspired the combination of concurrency and object orientation.

It is widely accepted that object orientation refers to the combination of three main features: 1) encapsulation of data and code 2) inheritance and late binding 3) dynamic object generation. This combination was first made by the Simula67 language completed in 1967. Through its class construct Simula67 made a unification of the three features. Before 1967 there had been some advances in each of the three main features of object orientation. For instance, terminology involving "objects", "oriented", and "instance" first appeared at MIT in the late 1950s and early 1960s in the artificial intelligence group and in Sketchpad created by Ivan Sutherland (but specialized to graphical interaction). The ALGOL version, AED-0, also introduced a concept which prefigured what was later termed "messages", "methods", and "member functions". And Lisp had made use of dynamic (late) binding of functions. The Simula67 language was inspired by some of these works, in particular the block construct of Algol60 and the record mechanism suggested by Tony Hoare [Hoare, C. A. (Nov 1965). "Record Handling". ALGOL Bulletin (21): 39–69]."

References to establish the dates, location, and importance of the achievement: Minimum of five (5), but as many as needed to support the milestone, such as patents, contemporary newspaper articles, journal articles, or citations to pages in scholarly books. You must supply the texts or excerpts themselves, not just the references. At least one of the references must be from a scholarly book or journal article.

Definition

[1] Ole-Johan Dahl and Kristen Nygaard. “Class and subclass declarations”. Norsk Regnesentral, 1967, 17 bl. Also in: Software Pioneers. Contributions to Software Engineering. Ed. by Manfred Broy and Ernst Denert. Reprint. (File:ClassAndSubclass.pdf)

[2] Ole-Johan Dahl and Kristen Nygaard. SIMULA 67. Common base definition. Norwegian Computing Center, 1967, 31, [3] bl. (File:CommonBaseDefinition1967.pdf)

[3] Ole-Johan Dahl. “Discrete event simulation languages”. In: Programming languages. Ed. by NATO Advanced Study Institute. London: Academic Press, 1968, pp. 349–395.

[4] Ole-Johan Dahl and C.A.R. Hoare. “Hierarchical program structures”. In: Ole-Johan Dahl, C.A.R. Hoare, and Edsger W. Dijkstra. Structured programming. Academic press, 1972. Chap. 3, pp. 175–220.

Importance

[5] Bjarne Stroustrup. “A history of C++: 1979–1991”. In: History of programming languages. Ed. by Richard L. Wexelblat. ACM, 1996, pp. 699–755. (File:Stroustrup1996.pdf)

[6] ACM Turing Award. Kristen Nygaard. 2001. (File:TuringAwardNygaard.pdf)

[7] ACM Turing Award. Ole-Johan Dahl. 2001. (File:TuringAwardDahl.pdf)

[8] Bertrand Meyer. “In memory of Ole-Johan Dahl and Kristen Nygaard,” in: Journal of Object-Technology, 1.4 (2002). (File:Meyer2002.pdf)

[9] Jonathan Aldrich. The Power of Interoperability. Why Objects Are Inevitable. 2013. (File:Aldrich2013.pdf)

[10] IEEE Awards. IEEE John von Neumann Medal Recipients. (File:IEEEaward.pdf)

History

[11] Kristen Nygaard and Ole-Johan Dahl. “The development of the SIMULA languages”. In: History of programming languages. Ed. by Richard L. Wexelblat. ACM, 1978, pp. 439–480. (File:DahlNygaard1978.pdf)

[12] Laszlo Böszörmenyi and Stefan Podlipnig. People behind informatics. Institute of Information Technology, University of Klagenfurt, 2003. URL: [1]

[13] Ole-Johan Dahl. “The birth of object-orientation. The Simula languages”. 2001. Also in: From object-orientation to formal methods. Essays in memory of Ole-Johan Dahl. Ed. by Olaf Owe, Stein Krogdahl, and Tom Lyche. Springer, 2004, pp. 15–25 ISBN : 3-540-21366-x. (File:Dahl2001.pdf)

Supporting materials (supported formats: GIF, JPEG, PNG, PDF, DOC): All supporting materials must be in English, or if not in English, accompanied by an English translation. You must supply the texts or excerpts themselves, not just the references. For documents that are copyright-encumbered, or which you do not have rights to post, email the documents themselves to ieee-history@ieee.org. Please see the Milestone Program Guidelines for more information.

Citation for IEEE von Neumann award, 2002: "When Ole-Johan Dahl and Kristen Nygaard created the Simula languages in the 1960s at the Norwegian Computing Center, they introduced a new way of modeling and programming complex tasks. Object-oriented programming is now dominant in system development, and is everywhere part of the computer science curricula, as are languages built on OOP concepts, such as Smalltalk, C++, Eiffel and Java.

Kristen Nygaard analyzed complex problems by computer simulation, requiring interaction between many very dissimilar components. He saw the need for a description language that could be used to comprehend, describe and communicate complex systems, and also make it possible for computers to execute models of what had been described.

Ole-Johan Dahl joined Kristen Nygaard at the NCC. They designed the Simula concepts and language together, and Dahl carried out the difficult task of writing the program that translated descriptions into computer instructions. In 1968 Dahl became the University of Oslo’s first computer science professor and built its Informatics Department. Later he has contributed to the theory of proving correctness of programs. Nygaard continued OOP, but also became the driving force in the “Scandinavian school of system development.” His efforts now are aimed at improving the teaching and conceptual platform for computer science. Dahl and Nygaard are Professors Emeriti at the University of Oslo. They both have been named Commander of the Order of Saint Olav by the King of Norway and Honorary Fellows of the Object Management Group, have received the Norwegian Rosing Prize and the 2001 ACM A.M. Turing Award."

Citation for ACM Turing award, 2002: "... for ideas fundamental to the emergence of object oriented programming, through their design of the programming languages Simula I and Simula 67."

Please email a jpeg or PDF a letter in English, or with English translation, from the site owner(s) giving permission to place IEEE milestone plaque on the property, and a letter (or forwarded email) from the appropriate Section Chair supporting the Milestone application to ieee-history@ieee.org with the subject line "Attention: Milestone Administrator"