Milestone-Proposal:Object-oriented programming

From IEEE Milestones Wiki
Revision as of 09:14, 22 December 2016 by Svholm (talk | contribs) (Links to files)

{{Proposal |docketid=2016-09 |litigation=No |more than 25 years=Yes |within fields of interest=Yes |benefit to humanity=Yes |regional importance=Yes |ou is paying=Yes |ou is arranging dedication=Yes |section is taking responsibility for plaque=Yes |a11=Yes |a3=1961-1967 |a1=Object-oriented programming, 1961-1967 |plaque citation=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 object-oriented programming concepts, such as Smalltalk, C++, and Java. |a2b=IEEE Norway Section |IEEE units paying= Unit: IEEE Norway Section
Senior Officer Name: {{{Senior officer name}}}

|IEEE units arranging= |IEEE sections monitoring= |Milestone proposers= Proposer name: Olaf Owe
Proposer email: Proposer's email masked to public

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

Proposer name: Jenny Olsson Picalausa
Proposer email: Proposer's email masked to public

Proposer name: Bjarte M. Østvold
Proposer email: Proposer's email masked to public

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

|a2a=Gaustadalléen 23B, N-0316 Oslo, Norway. 59.943329 N, 10.717839 E |a7=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. |a8=No. This milestone didn't really take place in just a single physical building |mounting details=Inside, in the ground floor entrance hall, for instance on a brick-wall. |a9=The building is open to the public during normal opening hours. |a10=University of Oslo |a4=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. |a6=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. |a5=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. |references=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:CommonBaseDefinition.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. url: http : / / amturing . acm.org/award winners/nygaard 5916220.cfm (visited on 12/01/2016). (File:TuringAwardNygaard.pdf)

[7] ACM Turing Award. Ole-Johan Dahl. 2001. url: http : / / amturing . acm.org/award winners/dahl 6917600.cfm (visited on 12/01/2016). (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. Ole-Johan Dahl and Kristen Nygaard were awarded the von Neumann medal in 2002. ([[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. In memory of Ole-Johan Dahl, Edsger W. Dijkstra and Kristen Nygaard. Institute of Information Technology, University of Klagenfurt, 2003. URL: http://cs-exhibitions.uni-klu.ac.at/index.php?id=2

[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. (Dahl2001.pdf) |supporting materials=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." |submitted=No }}