Upload
bethanie-andrews
View
214
Download
0
Embed Size (px)
Citation preview
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 Algol, Fortran and Cobol were
inadequate for modeling complexity Monte Carlo simulation was done by
hand
Marriage of Two Disciplines Kristen Nygaard was expert operations
analyst Ole-Johan Dahl was an expert
computer scientist and programmer
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)
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
Reference Variables and “new”
ref (Invoice) inv;
inv :- new Invoice(1511);
Again, Java has adopted it in a similar way
Subclasses and Inheritance
order class batch order;
begin integer batch size; end;
order class single order;
begin real finishing time, weight; end;
single order class plate;
begin real length, width; end;
Polymorphism Virtual functions - like methods in Java The “inner” mechanism
class Person;
begin
<statements 1>
inner;
<statements 2>
end;
Heap and Garbage Collector Algol’s stack was inadequate Object storage required heap Garbage collector was also needed Both features were in Simula 67
“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) { …}
Components and Packages Implemented as classes within a class In Simula 67, simulation-specific
functionality implemented in the Simulation package (class)
Real-Time Simula Was planned in 1970 To be used for modeling an operating
system Was never implemented, however
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
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++
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
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
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/