240 likes | 429 Views
The Object Oriented Programming Languages (OOPL). Done by: Tayeb El Alaoui Supervised by: Dr Driss Kettani. Outline. Introduction Team presentation Context presentation Subject presentation Simula Smalltalk Modula-3 Self. Outline. Eiffel C++ Java Conclusion
E N D
The Object Oriented Programming Languages(OOPL). • Done by: • Tayeb El Alaoui • Supervised by: • Dr Driss Kettani
Outline • Introduction • Team presentation • Context presentation • Subject presentation • Simula • Smalltalk • Modula-3 • Self
Outline • Eiffel • C++ • Java • Conclusion • Importance of Object Oriented. • Advantages of Object Oriented. • Programmers interest.
Introduction • Team presentation. • Context presentation. • Subject presentation
Team presentation • Tayeb El Alaoui ( Junior student ) • Amine Mestari ( senior student )
Context presentation • To complete the requirements of our Software Engineering II course. • To improve mycommunication skills. • To be in accordance with what we are doing now in the course.
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.
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'' .
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.
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.
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.
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.
Modula-3 • There are no explicit type definitions or declarations. • Class definitions are ``partial opaque'‘. • Single Inheritance is provided as a means of type specialization • Code reuseand Abstract Classes. • Generic Modules for source code reuse. • Modula-3 is strongly typed, with no automatic conversion, or type inference.
Self • Creators David Ungar and Randall Smith. • Influences Smalltalk. • Features and Design • It is a Classless Language, which uses prototype objects, and cloning to construct new objects.
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 address • Inheritance, code sharing and dynamic dispatch are all provided via slots, messages, and cloning.
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.
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.
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.
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.
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.
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.
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.