Programming Languages - InfoBank @altafkhan.com

Download Report

Transcript Programming Languages - InfoBank @altafkhan.com

CS101 Introduction to Computing
Lecture 19
Programming Languages
1
During the last lecture …
•
We continued our discussion on algorithms
that we had started during the 16th lecture
•
In particular, we looked at the building blocks
that are used in all algorithms
•
We also discussed the pseudo code and
flowcharts for particular problems
•
In addition, we outlined the pros and cons of
2
those two techniques
Last time we discussed what to
implement
Today we are going to discuss the
tool that is used to implement SW
3
Today’s Lecture
•
To understand the role of programming
languages in computing
•
To understand the differences among low- &
high-level, interpreted & compiled, and
structured & object-oriented programming
languages
4
Programming?
5
The process of telling the
computer what to do
Also known as coding
6
Types of
Programs?
7
Batch Programs
These are typically started from a shell (or
automatically via a scheduler) and tend to
follow a pattern of:
– Initialize internal data
– Read input data
– Process that data
– Print or store results
Key feature: No user interaction with the
computer while the program is running
Examples?
8
Event-Driven Programs
Examples? GUIs, microwave, camera
The system sends events to the program and
the program responds to these as they arrive.
Events can include things a user does - like
clicking the mouse - or things that the system
itself does - like updating the clock.
These programs generally work as follows:
– Initialize the internal data
– Wait for events to arrive
9
– Identify an incoming event and react accordingly
Programming
Language?
10
A vocabulary and set of
grammatical rules for
instructing a computer to
perform specific tasks
11
All programs consists of:
1. Sequence of instructions
2. Conditionals
3. Loops
These may contain:
– Data
– Input/output (print, etc)
– Operations (add, divide, etc)
12
Examples of
Programming
Language?
13
Machine Language
Assembly Language (1956-63)
LISP (1956)
Ada(1983)
Fortran (1957)
C++ (1983-85)
COBOL (1959)
QBasic (1986)
PL/1(1964)
Perl (1987)
BASIC (1964)
VisualBasic (1991)
Pascal (1970)
PowerBuilder
Smalltalk (1972)
Java (1995)
C (1972)
JavaScript
C# (2001)
14
Is HTML a
programming
language?
15
Types of
Programming
Languages?
16
High level Programming
Languages
Low Level Programming
Languages
17
High-level programming languages,
while simple compared to human
languages, are more complex than the
languages the uP actually understands,
called machine languages
Each different type of uP has its own
unique machine language
18
Lying between
machine languages
&
high-level languages
are languages called
assembly languages
19
Assembly languages are similar to
machine languages, but are easier to
program in as they allow a programmer to
substitute names for numbers
Machine languages consist of numbers only
20
4th-generation languages
High-level languages
Assembly languages
Machine languages
21
22
Regardless of what language you use,
you eventually need to convert your
program into a language that the
computer can understand
Two ways for doing that:
compile the program or
interpret the program
23
Interpreter is a program that
executes instructions written in a highlevel language
An interpreter translates high-level
instructions into an intermediate form, which
it then executes
In contrast, a compiler translates high-level
instructions directly into machine language
24
Compiled programs generally run faster
than interpreted programs
The advantage of an interpreter, however, is
that it does not need to go through the
compilation stage during which the whole of
the high-level code is translated into machine
instructions in one go. This process can be
time-consuming if the program is long.
The interpreter can immediately execute highlevel programs, without waiting for the
25
completion of the translation process
Interpreters:
Immediate response,
but
execute code slowly
Compilers:
Takes longer to compile,
but
super-fast execution
26
Both interpreters and compilers are
available for most high-level languages.
However, BASIC and LISP were
especially designed to be executed by an
interpreter
27
Why are there so
many different
programming
languages?
28
What is the
difference
between
them?
29
30
What are the
advantages of
particular
languages?
31
32
The question of which language is
best is one that consumes a lot of
time and energy among computer
professionals
Every language has its strengths and
weaknesses
33
FORTRAN is a particularly good language for
processing numerical data, but it does not lend
itself very well to large business programs
Pascal is very good for writing well-structured
and readable programs, but it is not as flexible
as the C programming language
C++ embodies powerful object-oriented
features, but it is complex and difficult to learn
34
The choice of which language to use can
also depend on the:
type of computer the program is to run on,
and the
expertise of the programmer
35
Can a single
language have all
the good bits of
other languages?
36
Do some good
features force a
language to also
have bad features?
37
What makes a
feature good
or bad?
38
Is there a
perfect
language?
39
Is there a
perfect
language for a
particular task?
40
What changes in the
field of computer
languages can we
expect in the near
future?
41
Which programming
language should you
learn?
Should you learn
more than one?
42
Programming
Development
43
Design
SW
Methodology?
44
The set of (often flexible) rules and
guidelines a team of developers
follow to construct reasonably
complex SW systems
45
Object Oriented Design (1)
• OO SW is all about objects: a black box which
receives messages & responds with those of
its own
• An object has 2 aspects:
– State, also termed as properties, data
• Example: For the bicycle: color, speed, pressure
– Behaviors, also termed as methods, instructions
• Example: For the same object: accelerate(), inflate()
• In traditional design, these 2 aspects have
been kept apart
46
Object Oriented Design (2)
• The designer starts with any component
(object) of the system; designs it as an
independent, self-contained system, and then
moves to the design of some other component
• The over-all system is put together by fitting
together a collection of these components
• Key feature: Details of the design of the
component are kept independent of the over-all
system
– Benefit: It can be easily re-used in other systems:
47
design once; use multiple times
Structured Design (1)
• Also called top-down design
• The designer starts by first conceiving a
skeleton high-level design of the system, and
then starts defining features of that over-all
design in an ever-increasing detail
• Making small changes in the functionality of the
systems sometimes leads to major re-design
exercise
48
Structured Design (2)
• Structured design emphasizes separating a
program's data from its functionality
• Separating data from functionality typically
leads to SW that is difficult to maintain &
understand - especially for large SW
systems
49
Object-Oriented Languages
• Programming languages specifically
designed to make it easy to implement
object-oriented designs
• Examples: Smalltalk, C++, Java
50
Reading Material
Programming Languages
http://www.wikipedia.com/wiki/Programming_language
What is Object-Oriented Software?
http://catalog.com/softinfo/objects.html
VisualBasic: Taming the Wooly Mammoth
http://computer.org/software/so2000/pdf/s3016.pdf
51
During Today’s Lecture, We …
•
To understand the role of programming
languages in computing
•
To understand the differences among low- &
high-level, interpreted & compiled, and
structured & object-oriented programming
languages
52
Focus of the Next Lecture:
The SW Development Process
•
Development process of reasonably complex
SW systems does not consist of “coding”
only
•
We will become familiar with the various
phases of the process that developers follow
to develop SW systems of reasonable
complexity
53