1 / 19

Early History of Object Oriented Programming

Early History of Object Oriented Programming. Per Kjeldaas. Who Was First?. Not C++ Not Smalltalk Simula 67 is recognized as the first object-oriented language (1967). What Was the Need?. Simulation needed interactive processes

zyta
Download Presentation

Early History of Object Oriented Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Early History of Object Oriented Programming Per Kjeldaas

  2. Who Was First? • Not C++ • Not Smalltalk • Simula 67 is recognized as the first object-oriented language (1967)

  3. What Was the Need? • Simulation needed interactive processes • Algol, Fortran and Cobol were inadequate for modeling complexity • Monte Carlo simulation was done by hand

  4. Marriage of Two Disciplines • Kristen Nygaard was expert operations analyst • Ole-Johan Dahl was an expert computer scientist and programmer

  5. Simula I

  6. Quasi-Parallel Processing • Basis for today’s Java threads • Co-routines • Ability to yield control from inside a process when simulated time advances • Other processes will take control in the meantime • Earlier than time sharing (Multics)

  7. Simula 67 - Objects and Classes • Station and customer concepts merged into the object concept • Classes of objects are described in the class declaration, just like what Java has adopted • Most current OO programming features come from Simula

  8. Reference Variables and “new” ref (Invoice) inv; inv :- new Invoice(1511); • Again, Java has adopted it in a similar way

  9. Subclasses and Inheritance order class batch order; begininteger batch size; end; order class single order; begin real finishing time, weight; end; single order class plate; begin real length, width; end;

  10. Polymorphism • Virtual functions - like methods in Java • The “inner” mechanism class Person; begin <statements 1> inner; <statements 2> end;

  11. Heap and Garbage Collector • Algol’s stack was inadequate • Object storage required heap • Garbage collector was also needed • Both features were in Simula 67

  12. “Remote” Object Connection inspect (element expression) when A1 do S1 when A2 do S2 when An do Sn otherwise S; • Adopted by Java as: if (x instanceOf A) { …}

  13. Components and Packages • Implemented as classes within a class • In Simula 67, simulation-specific functionality implemented in the Simulation package (class)

  14. Real-Time Simula • Was planned in 1970 • To be used for modeling an operating system • Was never implemented, however

  15. Why did it not spread? • Expensive • Misguided government policies • Donald Knuth of Stanford U wanted it, but did not want to pay -- did not get it! • Few publications in English • The Simula name

  16. Finally Catching On • Alan Kay used “bootleg” copy of Simula 67 for CDC as basis for Smalltalk • Bjarne Stroustrup gave Simula credit as the main basis for C++

  17. Finally Catching On • James Gosling of Sun referenced Simula as Java’s basis at JavaOne • Many universities used Simula as the OO teaching language during the 80’s and 90’s

  18. Postscript • OO would have reached the world much earlier if a number of administrative errors had not been made • Dahl and Nygaard only got their recognition, the ACM Turing award, also known as the Nobel prize of computing, in 2002 • They both died a few months later

  19. References • ACM - Association for Computing Machinery, Press release: A.M. Turing Award, February 6, 2002. Retrieved last on October 23, 2004 from http://www.acm.org/announcements/turing_2001.html • Dahl, O.-J.: The Birth of Object Orientation: the Simula Languages, 2002. Retrieved last on October 23, 2004 from the University of Oslo’s web site at http://heim.ifi.uio.no/~olejohan/birth-of-oo.pdf • Dahl, O.-J., B. Myhrhaug & K. Nygaard: Some Features of the Simula 67 Language, Dec. 1968, Proceedings of the second conference on Applications of simulations, Winter Simulation Conference (ACM, IEEE), New York, NY • Dahl, O.-J., K. Nygaard: SIMULA: an ALGOL-based simulation language, Communications of the ACM, v.9 n.9, p.671-678, September, 1966 • Gosling, J., A. Baratz: Opening Keynote Session at JavaOne. May 29, 1996, San Francisco, CA. Retrieved last on October 23, 2004 from. http://java.sun.com/javaone/javaone96/Gosling.Baratz.html • Holmevik, J. R.: Compiling SIMULA: A Historical Study of Technological Genesis. IEEE Annals of the History of Computing, Vol. 16, No. 4, 1994, Pages: 25-37 (Also retrieved last on October 23, 2004 from http://staff.um.edu.mt/jskl1/simula.html). • Krogdahl, S.: The birth of Simula, HiNC 1 Conference in Trondheim, Norway, June 2003 (IFIP WG 9.7, in cooperation with IFIP TC 3) (Also retrieved last on October 25, 2004 from http://heim.ifi.uio.no/~steinkr/papers/HiNC1-webversion-simula.pdf). • Nygaard, K., O.-J. Dahl: The development of the SIMULA languages. The first ACM SIGPLAN conference on History of programming languages, 1978, Los Angeles, CA. Pages: 245-272 • Sklenar, J.: Introduction to OOP in SIMULA, 1997, retrieved last on October 23, 2004 from http://staff.um.edu.mt/jskl1/talk.html • Stroustrup, B.: A History of C++: 1979-1991. ACM SIGPLAN Notices, March 1993. The second ACM SIGPLAN conference on History of programming languages, 1993, Cambridge, MA. Pages: 271-297 • Vaucher, Jean G.: DIRO Simula home, 2000. Retrieved last on October 23, 2004 from http://www.iro.umontreal.ca/~simula/

More Related