Chapter 2: A Brief History Object- Oriented Programming

processroguishSoftware and s/w Development

Nov 18, 2013 (3 years and 6 months ago)

73 views

Chapter 2: A Brief History Object
-
Oriented Programming

Presentation slides for


Object
-
Oriented Programming


by

Yahya Garout



KFUPM

Information & Computer Science Department


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



Outline


Java Is Secure


Java Is Architecture Neutral


Java Is Portable


Java Is High
-
Performance


Java Is Multithreaded


Java Is Dynamic

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



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


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

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


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

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

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



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


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

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

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 programmer’s task and is more reliable

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

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

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

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

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

Java Is Dynamic


Moving java programs across the Internet and executing
them on local computers, permits dynamic behavior