OOP Class Lawrence D’Antonio Lecture 2 History of OOP and C++

Slides:



Advertisements
Similar presentations
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Advertisements

Bjarne Stroustrup started work on C with Classes in 1979 at Bell Labs. In 1983 it was renamed C++.
CS ExCo Advanced in Topics Object-Oriented Programming.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
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.
Programming Languages Structure
C++ Training Datascope Lawrence D’Antonio Lecture 1 Quiz 1.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 5 Types Types are the leaven of computer programming;
By Logan Phipps Hal student.  This power point explains some common programming languages enjoy  When done click on the home button to return to home.
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
Comparison of OO Programming Languages © Jason Voegele, 2003.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Bjarne Stroustrup began work on "C with Classes" in The idea of creating a new language originated from Stroustrup's experience in programming for.
3A-1 1 Introduction to Smalltalk History of Smalltalk The philosophy of Smalltalk:  “...we have a universe of well-behaved objects that courteously ask.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
Programming language history Created by wordle.net, from the text in this slide.
Early History of Object Oriented Programming
1 Chapter 10: Data Abstraction and Object Orientation Aaron Bloomfield CS 415 Fall 2005.
Sather vs Java §Brian Oh §Ann Win. l Introduction (of Sather) l History (of Sather) l Comparison between Java and Sather l Sample - “Hello World” l Future.
University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory.
1 Programming Languages Marjan Sirjani Course web site:
Programming Language C++ Xulong Peng CSC415 Programming Languages.
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
CS 152: Programming Language Paradigms March 10 Class Meeting Department of Computer Science San Jose State University Spring 2014 Instructor: Ron Mak.
The Evolution of Programming Languages Day 3 Lecturer: Xiao Jia The Evolution of PLs1.
OOP Class Lawrence D’Antonio Lecture 3 An Overview of C++
Introduction to C++ Shirley Moore
Programming Languages – An introduction. There are 10 types of people in the world −Those who understand binary −Those who don’t.
Chapter 12 Support for Object oriented Programming.
C++ Programming Basic Learning Prepared By The Smartpath Information systems
1 Abstract Data Types & Object Orientation Abstract Data Types (ADT) Concepts –Data Abstraction –ADT in PLs –Encapsulation Object Orientation –Principal.
Chapter 10, Slide 1 ABSTRACT DATA TYPES Based on the fundamental concept of ABSTRACTION:  process abstraction  data abstraction Both provide:  information.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
Chapter 12 Support for Object-Oriented Programming.
RUBY by Ryan Chase.
(1) ICS 313: Programming Language Theory Chapter 12: Object Oriented Programming.
Methodology First and Language Second -A Way to Teach Object-Oriented Programming Haibin Zhu, PhD Department of Computer Science and Mathematics Nipissing.
ISBN Object-Oriented Programming Chapter Chapter
Copyright © 2005 Elsevier Object-Oriented Programming Control or PROCESS abstraction is a very old idea (subroutines!), though few languages provide it.
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.
1 CS Programming Languages Class 22 November 14, 2000.
(1) ICS 313: Programming Language Theory Chapter 11: Abstract Data Types (Data Abstraction)
Object-Oriented Programming (OOP) What we did was: (Procedural Programming) a logical procedure that takes input data, processes it, and produces output.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
LThe C++ programming language Department of Information Engineering INFORMATION TECHNOLOGY dr. László Dudás 4./0. lThe object oriented view of the world.
Cs205: engineering software university of virginia fall 2006 David Evans Object-Oriented Programming.
CSCE 343 – Programming Language Concepts Welcome!.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
Programming Language History and Evolution
Chapter 9 :: Data Abstraction and Object Orientation
Class 22: Inheritance CS150: Computer Science University of Virginia
ABSTRACT DATA TYPES Based on the fundamental concept of ABSTRACTION:
Object-Orientated Programming
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Types of Programming Languages
Programming Language History and Evolution
Copyright © 2009 Elsevier Chapter 9 :: Data Abstraction and Object Orientation Programming Language Pragmatics Michael L. Scott.
Ada – 1983 History’s largest design effort
Java Programming Language
Parameter Passing Actual vs formal parameters
Overview of Programming Paradigms
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
The C++ programming language
Programming Languages and Paradigms
Lecture 8 Object Oriented Programming (OOP)
Presentation transcript:

OOP Class Lawrence D’Antonio Lecture 2 History of OOP and C++

OOPL  Simula  Smalltalk  C++  Java  Python  C#  Eiffel  Ruby

More OOPL  Dylan  Modula 3  Self  Sather  Forté  Objective C  Object Pascal  Visual Basic  Perl

More OOPL  PHP  REBOL  CLOS  Delphi  COBOL  Prolog  Ada DDDD

History of Simula  Developed by Kristen Nygaard and Ole- Johan Dahl.  Carried out at the Norwegian Computing Center.  Designed as a system description language, built on ALGOL 60, to implement simulations.  Development was begun in 1961, leading to the definition of Simula 1 in

History of Simula – Part 2   Process concept: Active customers moving through a passive network. System = Set of interacting processes   In 1965, Tony Hoare introduced the concept of a record class for handling records.   Nygaard and Dahl introduce the concept of processes with layers in Simula 67.

Simula 67 features   Introduced classes, subclasses, virtual methods   Garbage collection

Simula example Class Rectangle (Width, Height); Real Width, Height; ! Class with two parameters; Begin Real Area, Perimeter; ! Attributes; Procedure Update; ! Methods (Can be Virtual); Begin Area := Width * Height; Perimeter := 2*(Width + Height) End of Update; Boolean Procedure IsSquare; IsSquare := Width=Height; Update; ! Life of rectangle started at creation; OutText("Rectangle created: "); OutFix(Width,2,6); OutFix(Height,2,6); OutImage End of Rectangle; End of Rectangle

History of Smalltalk  Developed at Xerox PARC in  Developed by Alan Kay et al to be a compact powerful OOPL, analogous to LISP. Alan KayAlan Kay  Designed in parallel to the Dynabook project.  Public release in 1980 (Smalltalk-80).

Smalltalk features  Pure object-oriented  Dynamically and strongly typed  Reflective language (self-modifying)  Garbage collection  Everything is an object. Classes are instances of metaclasses.

Smalltalk example | x y className methodName | className := 'Foo'. methodName := 'hello'. x := (Compiler evaluate: className). (x isKindOf: Class) ifTrue: [ y := x new. (y respondsTo: methodName asSymbol) ifTrue: [ y perform: methodName asSymbol ]

History of Ada  In 1975, DoD put out a request for a language meeting certain goals (Steelman requirements). No existing language met these goals, so a new language was created. Steelman  Jean Ichbiah created the language Ada – 83 to meet these goals.  Ada – 95 was the next installment of the language, designed by S. Tucker Taft.

Ada Features  Exception handling  Modularity  Statically and strongly typed.  Generics  Dynamic binding  Inheritance  Garbage collection

Ada Example with dates; use dates; -- definition of type date package persons is type person is tagged record name :string(1..10); dob :date; salary :float := 0.0; end record; procedure employ(someone:in out person); procedure dismiss(someone:in out person); procedure pay_raise(someone:in out person); end persons;

Ada Example, Part 2 with persons; use persons; package managers is type manager is new person with record master_key_code :string(1..10); end record; procedure allocate_master_key( someone:in out manager; code :in string); procedure pay_raise(someone:in out person); end managers;

Python History   Developed in late 1980’s by Guido van Rossum. Open source.   Published in   Version 1.0 released in   Versions 1.6 and 2.0 released in   GNU GPL compatible since 2001   Python 3.0 (Python 3000) released in alpha version in 2007.

Python Features   Simple, easy to learn language   Dynamically and strongly typed   Metaclasses   Exception handling   Garbage collection

Python Example class Stack: def __init__(self): # Initialize the stack self.stack = [ ] def push(self,object): self.stack.append(object) def pop(self): return self.stack.pop() def length(self): return len(self.stack) #Example s = Stack() # Create a stack s.push("Dave") # Push some things onto it s.push(42) s.push([3,4,5]) x = s.pop() # x gets [3,4,5] y = s.pop() # y gets 42 del s # Destroy s

C++ History   Bjarne Stroustrup began working on the idea of an efficient OOPL in 1979 at AT&T Labs.   Started developing C with Classes, that combined features of Simula and C.   1980 version had classes, inheritance, public/private, ctors and dtors, friends, type checking, inline, overloading assignment operator

C++ History – Part 2   Finished the first C++ compiler, Cfront, in Cfront was written in C++, but converted code into C.   In 1983, Rick Mascitti suggested the name C++ for the language.   Added features: virtual functions, overloading, references, const, operator new

C++ History – Part 3   In 1985, published first edition of The C++ Programming Language and version 1.0 of C++ released.   In 1989, version 2.0 released. Added features: multiple inheritance, abstract classes, const member functions, protected members.   In 1990, The Annotated C++ Reference Manual was published.

C++ History – Part 4   Templates proposed in   Exception handling designed, with Andrew Koenig, in   I/O library designed by Jerry Schwarz and Koenig for version 2.0.   X3J16 standardization committee formed in December 1989.

Standard Template Library History   In 1987 Alex Stepanov and David Musser, at GE R&D, developed a generic list processing library for Ada.   Stepanov presented his idea of a generic library for C++ at the November 1993 meeting of X3J16.   The library design was developed (with Meng Lee) and approved at the March 1994 meeting.

C++ History – Part 5   C++ standard was approved on November 14,   Corrected version of the standard was approved in 2003.

C++ - the Future   Library Technical Report 1 (TR1) released in Suggestions such as smart pointers, metaprogramming, improved functors, improved numerical functions, regular expressions, fixed size array class, hash tables. Expected to be adopted for next version of standard.