You are on page 1of 53

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


those two techniques 2
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
8
Examples?
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
– Identify an incoming event and react accordingly
9
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)
Fortran (1957) Ada(1983)
COBOL (1959) C++ (1983-85)
PL/1(1964) QBasic (1986)
BASIC (1964) Perl (1987)
Pascal (1970) VisualBasic (1991)
Smalltalk (1972) PowerBuilder
C (1972) Java (1995)
JavaScript
14
C# (2001)
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 microprocessors


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 high-
level 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 high-


level programs, without waiting for the
completion of the translation process 25
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
SWDesign
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

You might also like