Chapter 2: A Brief History Object-Oriented Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Chapter 2: A Brief History Object-Oriented Programming

Description:

Title: Chapter 2: A Brief History Object-Oriented Programming Author: Yahya Garout Last modified by: Yahya Garout Created Date: 2/3/2002 6:16:36 AM – PowerPoint PPT presentation

Number of Views:217
Avg rating:3.0/5.0
Slides: 21
Provided by: YahyaG6
Category:

less

Transcript and Presenter's Notes

Title: Chapter 2: A Brief History Object-Oriented Programming


1
Chapter 2 A Brief History Object-Oriented
Programming
  • Presentation slides for
  • Object-Oriented Programming
  • by
  • Yahya Garout
  • KFUPM
  • Information Computer Science Department

2
Outline
  • A Brief History Object-Oriented Programming
  • The History of Java
  • Client-Side Computing
  • Bytecode Interpreters and Just-In-Time Compilers
  • Security Issues
  • Specialization of Interfaces
  • The White Paper Description
  • Java Is Simple
  • Java Is Object-Oriented
  • Java Is Network Savvy
  • Java Is Interpreted
  • Java Is Robust

3
Outline
  • Java Is Secure
  • Java Is Architecture Neutral
  • Java Is Portable
  • Java Is High-Performance
  • Java Is Multithreaded
  • Java Is Dynamic

4
A Brief History Object-Oriented Programming
  • All the major concepts were developed in the
    1960s as part of a language called Simula
  • Alan Kay and his group developed a programming
    language named Smalltalk in the 1970s
  • Bjarne Stroustrup developed an extension to the C
    language that eventually evolved to the language
    C
  • Explosion of the research in object-oriented
    programming techniques began
  • In the first major conference on object-oriented
    programming, in 1986, there were dozens of
    languages
  • These included Eiffel, Objective-C, Actor, Object
    Pascal, and various Lisp dialects
  • Object-oriented programming became mainstream

5
The History of Java
  • Originally names as Oak and was developed in 1991
    by James Gosling.
  • Intended as a language for use in embedded
    customer electronic applications
  • This determined the characteristics of the
    language
  • Two of the most important features size and
    reliability
  • Processors in embedded systems are very small,
    possessing small memory, thus the language must
    be able to translate into very concise encoding
  • Embedded systems should almost never fail and
    should respond to exceptional and erroneous
    conditions

6
Client-Side Computing
  • Internet a classic example of a client/server
    system
  • A person working at own computer is a client
  • The client application communicates over the
    Internet with another computer, server
  • Dynamic behavior by executing programs
  • In the past programs executed on the server
  • The key idea in client-side is that the server
    transmits the program to the client to execute
    locally

7
Bytecode Interpreters and Just-In-Time Compilers
  • Client computer must be able to execute the
    program
  • Java translates program into bytecode, a machine
    code for a virtual machine
  • Bytecode is transmitted to clients
  • Client computer must use either interpreter or
    JIT compiler
  • Interpreter reads and executes bytecode one by
    one as needed
  • Just-In-Time compiler translates bytecode to
    machine code of the client computer

8
Security Issues
  • Java has a security manager that limits the
    actions performed by the programs from a server
  • No file system access
  • No transmission of information across internet to
    machines other than client or server

9
Specialization of Interfaces
  • Programs at the server is structured in terms of
    generic classes, such as window and button
  • These classes are the same regardless of the
    system used
  • At run-time these components create peer
    components for the client system and is used

10
Java Is Simple
  • Simpler than C
  • Many keywords have been eliminated
  • No preprocessor
  • Much larger library of high-level development
    tools
  • No operator overloading
  • No independent functions
  • No global variables
  • No goto statement
  • No structures
  • No pointers

11
Java Is Object-Oriented
  • The only unit of programming is the class
    description
  • No functions or variables exist outside of class
    boundaries
  • Other languages have object-oriented features on
    top of the non-object-oriented language
  • Forces all programs into object-oriented
    structure
  • Many benefits of object-oriented design is
    realized

12
Java Is Network Savvy
  • Designed with Internet in mind
  • It is possible to construct programs that do not
    deal with Internet
  • Provides a rich set of tools for programming
    across a network
  • Classes for describing URLs
  • Classes for making connections between client and
    server computers
  • Classes for execution in controlled environments
    such as web browsers

13
Java Is Interpreted
  • Java programs are compiled into byte-code that
    can be stored on any type machine
  • Interpreter is used to read byte-code and execute
    it
  • Generally slower in execution
  • A JIT compiler is used to translate byte-code
    into actual machine code instructions
  • This way makes them run as fast as compiled
    programs in the traditional languages

14
Java Is Robust
  • Extensive use of exception-handling
  • Statements generate exceptions not erroneous
    operations
  • The semantics insist that you must deal with this
    possibility
  • Programmers are forced into thinking about
    potential sources of error
  • Automatic memory management, or garbage
    collection
  • If programmers forget to release memory resources
    once finished with them, applications will
    eventually fail
  • Java run-time system automatically detects and
    recovers memory that is no longer being used by
    the program
  • Simplifies the programmers task and is more
    reliable

15
Java Is Secure
  • Eliminating pointers removed the most common
    source of programming errors
  • Array index values are checked for validity
  • Java is the first layer in a multilevel security
    system
  • Byte-codes are examined before executed for
    errors
  • Programs are severely restricted in the type
    operations they can perform
  • Computers are safe when running java programs
    brought over the network

16
Java Is Architecture Neutral
  • Java byte-code does not correspond to an machine
  • A java program is the same on all machines
  • Although C is a standard language, the
    libraries needed to perform activities differ
    considerably from platform to another
  • Java hides application-specific details under a
    layer of abstraction in the standard java library

17
Java Is Portable
  • Because the library hides architecture-specific
    concepts
  • Because byte-codes are the same regardless of the
    machine
  • Java programs possess unparalleled degree of
    portability
  • The exact program can be compiled on one system,
    then executed on many different types of systems

18
Java Is High-Performance
  • Initially heavy performance penalty
  • The technology of java execution has rapidly
    evolved
  • JIT compilers allow platform-independent java
    programs to be executed with the nearly same
    run-time performance as conventional compiled
    languages

19
Java Is Multithreaded
  • One of the first languages designed for the
    possibility of multiple threads of execution
    running in one program
  • It is easy to set up multitasking
  • The coordination of these parallel processes is
    relatively easy

20
Java Is Dynamic
  • Moving java programs across the Internet and
    executing them on local computers, permits
    dynamic behavior
Write a Comment
User Comments (0)
About PowerShow.com