Early History of Object Oriented Programming

Slides:



Advertisements
Similar presentations
Introduction to Programming Languages Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Advertisements

CS ExCo Advanced in Topics Object-Oriented Programming.
Introduction Class Notes How to Program in C++ By : dettle & dettle READING MATERIAL
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
Object-Oriented Programming OOP John Gilligan School of Computing DIT Kevin St.
Object-Oriented Design & Programming Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
CSE 115 / 503 Introduction to Computer Science I
Object Oriented System Development with VB .NET
The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani.
Principles of Object-oriented Programming Programming Language Paradigms August 26, 2002.
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
CSE 115 / 503 Introduction to Computer Science I
Object-Oriented COBOL? Senior Seminar Sp Trevor Simpson.
Programming languages Prepared by : Jyrald Aquino.
INTRODUCTION TO JAVA PROGRAMMING Chapter 1. What is Computer Programming?
Introduction to Object-oriented Programming Introduction to Object-oriented Programming CMPS 2143.
Advanced Database CS-426 Week 2 – Logic Query Languages, Object Model.
Introduction To System Analysis and design
The Power of Abstraction Barbara Liskov May 2013 MIT CSAIL.
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
The ALGOL Family Mason Vines CPSC425. Overview ALGOL 58 ALGOL 60 ALGOL 68 Success and Failure of ALGOL.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
MCS 270 Spring 2014 Object-Oriented Software Development.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
Programming language history Created by wordle.net, from the text in this slide.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
1 Programming Language History and Evolution In Text: Chapter 2.
CS 403 Programming Language Theory Class 3 - August 31, 2000.
Simula Programming Language Lenar Uri T. Barcelona.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Module Overview n Module Title: OO Programming n Module Code: MIT3446 n Module Value: 3.0 n Duration: 15 weeks n Class-Contact Hours: Lecture15 hrs n Lab/Tutor30hrs.
The OOPSLA Trivia Show October Who Am I?AcronymsMost.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
 Programming Language  Object Oriented Programming  JAVA – An Introduction  JAVA Milestones  JAVA Features.
Biographical Presentation By: Kenneth Bonte.  Ole-Johan Dahl was born in October 12, 1931 in Mandal, Norway.  He was the first member of his family.
C++ Programming Basic Learning Prepared By The Smartpath Information systems
David Evans CS200: Computer Science University of Virginia Computer Science Lecture 20: Objects I invented the term Object-
Salman Marvasti Sharif University of Technology Winter 2015.
Ole-Johan Dahl ACM Turing Award (2001) Presentation by Carsten Hood CSCE | Spring 2014.
Principles of programming languages 10: Object oriented languages Isao Sasano Department of Information Science and Engineering.
Object Oriented Software Development 4. C# data types, objects and references.
A Generalized Architecture for Bookmark and Replay Techniques Thesis Proposal By Napassaporn Likhitsajjakul.
David Evans CS200: Computer Science University of Virginia Computer Science Lecture 22: Objects I invented the term Object-
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
David Evans CS150: Computer Science University of Virginia Computer Science Lecture 22: Objectifying Objects.
1 n Object Oriented Programming. 2 Introduction n procedure-oriented programming consists of writing a list of instructions and organizing these instructions.
LThe C++ programming language Department of Information Engineering INFORMATION TECHNOLOGY dr. László Dudás 4./0. lThe object oriented view of the world.
History of Programming Languages Compiled by Wasim Ahmad Khan.
Cs205: engineering software university of virginia fall 2006 David Evans Object-Oriented Programming.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
Object Oriented Programming Course Introduction Dr. Mike Spann
Java Programming, 3e Concepts and Techniques Chapter 1 Section 56 – An Introduction to Java.
JAVA TRAINING IN NOIDA. JAVA Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented and specifically.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Programming Language History and Evolution
Principles of programming languages 10: Object oriented languages
Sections Basic Concepts of Programming
OBJECT ORIENTED PROGRAMMING overview
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Programming Language History and Evolution
Ada – 1983 History’s largest design effort
Conference on the History of Programming Languages III
History and Background
Principles of Programming Languages
By Rajanikanth B Overview Of Java By Rajanikanth B
The C++ programming language
Presentation transcript:

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 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

Simula I

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/