22
The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

The Object Oriented Programming Languages

(OOPL).

Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Page 2: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Outline

IntroductionTeam presentationContext presentationSubject presentation

SimulaSmalltalkModula-3Self

Page 3: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Outline

Eiffel C++ Java Conclusion

Importance of Object Oriented.Advantages of Object Oriented.Programmers interest.

Page 4: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Introduction

Team presentation.

Context presentation.

Subject presentation

Page 5: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Team presentation

Tayeb El Alaoui ( Junior student )

Amine Mestari ( senior student )

Page 6: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Context presentation

To complete the requirements of our Software Engineering II course.

To improve my communication skills. To be in accordance with what we are

doing now in the course.

Page 7: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Subject presentation

Definition of Object Orientedness:(from Rob Coronel in his book Database Systems ).

Definition of Object(by Terry Montlick).

two dozen major object-oriented programming languages in use today.

This presentation only attempts to look at the meaning of ``Object Oriented'' as a property of Programming Languages.

Page 8: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Simula

Creators: Developed at the Norvegian Computing Center by Kristen

Nygaard and Ole-Johan Dahl.

Influences: Algol 60.

Features and design Start version: Activity-process based programming

language.

Last version: ``classes'' and ``objects'' .

Page 9: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Simula

Support for objects: Protected state, single inheritance for sub-typing and

code sharing, partially abstract classes, method overriding, and nested closures.

Drawback:

No support for the dynamic dispatch.

Page 10: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Smalltalk

Creators: Developed by Alan Kay, Dan Ingalls, and Adele

Goldberg at Xerox PARC.

Influences B220 Tapes, Sketchpad, Simula, and Lisp.

Features and design:It is is an untyped, class based language.

Page 11: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Smalltalk

Instance methods are kept locally to each object and can refer to both the class variables and the instance variables.

All methods are public, while all attributes are private.

Single inheritance, abstract classes, method overriding.

Inheritance: code sharing, but also specialization of objects.

Page 12: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Modula-3

Creators Designed by Luca Cardelli, Jim Donahue, Mick

Jordan, Bill Kalsow, Greg Nelson.

Influences Modula-2+ (and from it: Modula-2, Mesa, Cedar).

Features and Design It is a class based language in which class

names act as type names.

Page 13: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Modula-3

There are no explicit type definitions or declarations.

Class definitions are ``partial opaque'‘.Single Inheritance is provided as a means of

type specializationCode reuse and Abstract Classes.Generic Modules for source code reuse.Modula-3 is strongly typed, with no automatic

conversion, or type inference.

Page 14: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Self

Creators David Ungar and Randall Smith.

Influences Smalltalk.

Features and DesignIt is a Classless Language, which uses

prototype objects, and cloning to construct new objects.

Page 15: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Self

There are no Static types, or type declarations required.

All operations are implemented as messages.Every object is composed entirely of slots.Each slot of an object can be thought of as a

memory addressInheritance, code sharing and dynamic

dispatch are all provided via slots, messages, and cloning.

Page 16: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Eiffel

Creators: Eiffel was designed by Bertrand Meyer at Interactive

Software Engineering.

Influences:Simula67.

Features and design: It is a Class based language, in which the

definition of "Type'' and ''Class'' are identical.

Page 17: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Eiffel

Multiple inheritance.Code reuse.It allows the programmer to not only Redefine

the implementation of particular features, but also to modify the Client list of inherited features.

It provides Assertions in the form of Invariants over objects.

Page 18: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

C++

Creators:Bjarne Stroustrup.

Influences:C, Simula, and Cpre.

Features and design: It is a class based language, designed to allow

the programmer very low level control over object structure and access.

Page 19: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

C++

Virtual (abstract) functions and virtual classes. Public/private/protected access control over

individual member functions and attributes.Friend classes.Multiple inheritance (for code sharing) Method overloading and exceptions.

Page 20: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Java

It is a Class based language. Creators:

Developed by by James Gosling, Bill Joy, and Guy Steele at Sun Microsystems.

Influences:Modula-3, C++, and Lisp.

Features and design:Partial abstract classes.

Page 21: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Java

Single and multiple inheritance.Close ties with the Internet and Web browsers.Portable language that can run on any web-

enabled computer .No pointers.It has garbage collection.Multiple levels of implementation hiding.

Java is the latest pure OOPL.

Page 22: The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani

Conclusion

Object-oriented programming offers a new and powerful model for writing computer software.

It improves the maintenance, reusability, and modifiability of a software.

Major shift in thinking by programmers.