Object-Oriented Programming Languages (OOPLs) An Introduction.

Slides:



Advertisements
Similar presentations
Introduction to .NET Framework
Advertisements

Portability and Safety Mahdi Milani Fard Dec, 2006 Java.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
MC697 Object-Oriented Programming Using Java. In this class, we will cover: How the class will be structured Difference between object-oriented programming.
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
Lab#1 (14/3/1431h) Introduction To java programming cs425
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Object-Oriented Design & Programming Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
1 CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
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.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Object-Oriented Methods: Database Technology An introduction.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
Python Introduction.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
Comparison of OO Programming Languages © Jason Voegele, 2003.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Programming Languages and Paradigms Object-Oriented Programming.
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
JAVA Introduction ● One of the main JAVA design goal is reducing complexity for programmer – Development time is half or less comparing to equivalent C++
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
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.
 OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
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.
Introduction to Object Oriented Programming CMSC 331.
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.
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
We will talking about story of JAVA language. By Kristsada Songpartom.
CSE 341, S. Tanimoto Java brief review - 1 Java Brief Review Java’s strengths Object-oriented terminology Inheritance Interfaces An example with inheritance.
Real Time Programming Language. Intro A programming language represents the nexus of design and structure. But misuse of the programming language can.
Chapter 3 - Language Design Principles
1. An Introduction A Programming Language A Technology Java Development Kit Java API One Language: Three Editions Standard Edition Enterprise Edition.
Object-Oriented Programming Chapter Chapter
C++ The reason why it is still in use. Table of Contents Disadvantages Disadvantages Advantages Advantages Compare with object-oriented programming language.
 Objects versus Class  Three main concepts of OOP ◦ Encapsulation ◦ Inheritance ◦ Polymorphism  Method ◦ Parameterized ◦ Value-Returning.
What is Java? Object Oriented Programming Language Sun Microsystems “Write Once, Run Everywhere” Bytecode and Virtual Machine Java Platform (Java VM and.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
A Survey of Object-Oriented Concept Oscar Nierstrasz.
Introduction to Programming 1 1 2Introduction to Java.
ISBN Chapter 12 Support for Object-Oriented Programming.
Object Oriented Programming CMSC 331. Concept of Abstraction “An abstraction is a view or representation of an entity that includes only the attributes.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
Introduction Enosis Learning.
Types of Programming Languages
Introduction Enosis Learning.
Advanced Programming Fall 2017.
Ada – 1983 History’s largest design effort
More Object-Oriented Programming
Parameter Passing Actual vs formal parameters
(Computer fundamental Lab)
Java History, Editions, Version Features
Introducing Java.
Chap 1. Getting Started Objectives
Presentation transcript:

Object-Oriented Programming Languages (OOPLs) An Introduction

What is an OOPL No clear definition of what an OOPL is as there is no formal theory of OO (unlike logical or functional programming, or relational model) Most people agree on OOPL = class based + inheritance

Background Time efficiency bottlenecks associated with implementation of encapsulation and information hiding inheritance and polymorphism Related Programming Language Concepts Garbage collection Static versus Dynamic Typing

Garbage collection A is a mechanism allowing a language implementation to free memory of unused objects on behalf of the programmer, thus relieving the burden on the programmer to do so. The alternative is for the programmer to explicitly free any memory that is no longer needed. Occurs whenever memory becomes full – timing is unpredictable Can take fairly substantial time

Static versus Dynamic typing: robustness versus flexibility Static Statically-typed languages require that all variables are declared with a specific class, and then the variable can contain objects of that class or any of its subclasses. Under static-typing errors associated with misuse of services ("message not understood" error) are caught at compilation-time and can never occur at run-time. Dynamic Under dynamic typing a variable to refer to an object of any class. Dynamic typing gives the programmer more flexibility. However, a user of a dynamically-typed language must rely on extensive testing to ensure that all improper uses of the object are tracked down.

Overview Simula 67 – 1967 Smalltalk – 1970’s C Eiffel Java –1990’s

Simula 67 Introduced classes and hierarchical inheritance for the first time Motivated by a simulation application Still has active users Authors: Dahl and Nygaard

Simula 67 - Features TypingHybrid (static/dynamic) PolymorphismYes Information HidingYes ConcurrencyYes InheritanceYes Multiple InheritanceNo Garbage CollectionYes Object PersistenceNo GenericityNo

Smalltalk Widely considered to be the purest representation of the OO paradigm: Everything is an object (even numbers) Single Superclass Authors: Kay, Goldberg, Ingalls et al. from Xerox PARC

Smalltalk - summary of features TypingDynamic PolymorphismYes Information HidingYes ConcurrencyPoor InheritanceYes Multiple InheritanceNo Garbage CollectionYes Object PersistenceNo GenericityNo

Smalltalk: pros and cons Pros Conceptually uniform Great pedagogical tool: Impossible to write anything in a non-object- oriented style Superb run-time environment: debugging, class browsing Cons Memory and time inefficiency Message-errors can be only detected at run- time Hard to integrate with other languages (prior to CORBA) Unusual syntax awkward for many developers

C++ Upward compatible extension of C. Classes are added as a new primitive data type but can as well ignore all OO features Designed with portability and efficiency in mind Compromise between the pragmatism and the object-oriented ideal gives low level control over hardware when required benefits of object-orientation when required and enforced Author: B. Stroustrup (AT&T)

C++ features Static typing by default No garbage collection Supports multiple inheritance Supports template classes

C++ It is one of the most successful OO languages in commercial applications Is likely to remain very popular because achieves high performance characteristics - probably the fastest of all oo languages possible to do anything at any level of the operating system provides easy integration with other languages, especially C good quality component libraries are available

C++ “for applications that have a systems programming component, systems with demanding time or space requirements, and those that span several technical cultures or application areas. In such systems, more simple, less efficient and more specialized languages become liabilities” B. Stroustrup

C++- summary of features Yes - templatesGenericity NoObject Persistence NoGarbage Collection YesMultiple Inheritance YesInheritance PoorConcurrency YesInformation Hiding YesPolymorphism Static(default)/DynamicTyping

Eiffel Many specialists regard as the best available oo language attempts to address issues of correctness, robustness, portability and efficiency Has several advantages over Java Eiffel introduced the concept of assertions Design and programming language Novel “melting ice” technology Not widely adopted due to problems with the original compiler, but Chicago Board of Trade recently adopted it for its core trading system Author: B. Meyer

Eiffel - summary of features YesGenericity Some supportObject Persistence Optional and IncrementalGarbage Collection YesMultiple Inheritance YesInheritance YesConcurrency YesInformation Hiding YesPolymorphism StaticTyping

Java “ Took the industry by storm” supports development of full fledged applications and browser-run applets support for concurrency and security C++-like syntax, but no pointers, thus safer code supported by powerful vendor: SUN Authors:J. Gosling, W. Joy, G. Steele(SUN)

Java features Portability - Java code compiles into platform independent byte-code which is interpreted on each platform by a java-virtual -machine. code is completely portable, but at the cost of poor performance Automatic garbage collection Multiple inheritance supported only for interfaces. Rigorous support for exception (error) handling Supports method execution across a network via Remote Method Invocation

Java - feature summary NoGenericity Via JDBCObject Persistence YesGarbage Collection Only for interfacesMultiple Inheritance Single for classesInheritance ThreadsConcurrency YesInformation Hiding YesPolymorphism StaticTyping

Concluding remarks C++ appeared until recently to be the most practical, successful, general purpose OOPL Increasingly interest is turning to Java OO Languages are powerful but still slightly immature New languages are still emerging Need more class libraries