You are on page 1of 15

26-May-22

BCS2223 PROGRAMMING
PARADIGM

Rusdi Md Aminuddin
Associate Professor
T: +603 8689 7518 F: +603 8800 7111
E: : rusdi.aminuddin@unimy.edu.my
Toll Free: 1-300-88-5008 URL: http://www.unimy.edu.my

#FutureBeginsAtUNIMY
University Malaysia of Computer Science & Engineering
(UNIMY)
Blok 12, Star Central, Lingkaran Cyber Point Timur,
63000 Cyberjaya, Selangor.

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

CHAPTER 2
Evolution of the Major
Programming
BCS2223 Languages
PROGRAMMING
PARADIGM

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

1
26-May-22

3
Zuse’s Plankalkül – 1/3

Programming language that was never


implemented
Developed in 1945, its description was not
published until 1972
Its capabilities did not appear in other
languages until 15 years after its
development

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

4
Zuse’s Plankalkül - 2/3

Historical Background
 Between 1936 and 1945, German scientist Konrad Zuse
built relays computers
 By early 1945, war had destroyed all but one of his latest
models, the Z4
 He moved to a remote Bavarian village and embarked
on an effort to develop a language for expressing
computations for the Z4
 Named this language plankalkül, which means program
calculus

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

2
26-May-22

5
Zuse’s Plankalkül – 3/3
Language Overview
 Plankalkül was remarkably complete, with some of its most
advanced features in the area of data structures.
 Data type
 Single bit
 Integer and
 Floating-point type used twos-complement notation and
the “hidden bit” (scheme adopted this)
Arrays and records
 Iterative statement similar to the ada for with fin to exit
 Selection statement, but it did not allow an else clause
 mathematical expressions

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

6
Pseudocodes – 1/2

pseudocode is used here in a different sense


than its contemporary meaning
Pseudocodes is referring to a programming
languages developed and used (the late
1940s and early 1950s)
Reason because the machine was so hard to
program using primitive instruction

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

3
26-May-22

7
Pseudocodes - 2/2

Some of this Pseudocodes developed


Short Code - developed by John Mauchly in 1949 for
the BINAC computer,, later was later transferred to a
UNIVAC I computer (the first US commercial
computer)
Speedcoding - system developed by John
Backus(1954) for the IBM 701 and later for UNIVAC
1107 computers of 1962

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

8
The IBM 704 and Fortran

One of the greatest single advances in computing


came with the introduction of the IBM 704 in 1954, in
large measure because its capabilities
Prompted the development of FORTRAN
IBM 704 system, with both indexing and floating-
point instructions in hardware
Allowed scientific computation
Fortran capabilities come from many peoples’
works
Version of FORTRAN IV, 77, 90, 95, 2003, and 2008

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

4
26-May-22

9
FORTRAN IV - Example

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM
Slide 1-‹#›

10
Fortran 95 - Example

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

10

5
26-May-22

11
Functional Programming: Lisp – 1/3

The first functional programming language was


invented to provide language features for list
processing
the need for which grew out of the first
applications in the area of artificial intelligence
(AI).
Two Descendants of Lisp
Scheme - emerged from MIT in the mid-1970s
Common Lisp - Common Lisp (Graham,1996) was
created in an effort to rectify the problem of a large
number of different dialects

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

11

12
Functional Programming: Lisp - 2/3

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

12

6
26-May-22

13
Functional Programming: Lisp - 3/3

Related Languages
ML (MetaLanguage; Ullman, 1998) was originally
designed in the 1980s by Robin Milner at the University
of Edinburgh
Miranda was developed by David Turner (1986) at the
University of Kent in Canterbury, England, in the early
1980s
Haskell (Hudak and Fasel, 1992), Caml (Cousineau et
al., 1998), OCaml (Smith, 2006),
F# supports both functional programming and
procedural programming

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

13

14
The First Step Toward Sophistication: ALGOL 60 – 1/3

 ALGOL 60 strongly influenced subsequent programming


languages and is therefore of central importance in any
historical study of languages
 Historical Background
 ALGOL 60 was the result of efforts to design a universal programming
language for scientific applications
 Fortran had been published and became a reality in 1957, but to
machine dependents
 Demand of machine-independent languages by several major
computer user groups in the United States, including
 SHARE (the IBM scientific user group) and
 USE (UNIVAC Scientific Exchange (the large-scale UNIVAC scientific user
group

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

14

7
26-May-22

15
The First Step Toward Sophistication: ALGOL 60 – 2/3

Historical Background - continue


Computing Machinery (ACM) on May 10, 1957, form a
committee to study and recommend action to create a
machine-independent scientific programming language
FORTRAN can be a candidate, but it solely owned by IBM
GAMM (a German acronym for Society for Applied
Mathematics and Mechanics) had also formed a
committee to design one universal, machine-independent
algorithmic language
Joint committee formed US and European

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

15

16
The First Step Toward Sophistication: ALGOL 60 – 3/3

 Early Design Process


 GAMM and ACM each sent four members to the first design
meeting.
 Held in Zurich from May 27 to June 1, 1958,
 Began with the following goals for the new language:
• The syntax of the language should be as close as possible to
standard mathematical notation, and
• Programs written in it should be readable with little further
explanation.
• It should be possible to use the language for the description of
algorithms in printed publications.
• Programs in the new language must be mechanically
translatable into machine language.

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

16

8
26-May-22

17
ALGOL 60 program - Example

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

17

18
Computerizing Business Records: COBOL

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

18

9
26-May-22

19
The Beginnings of Timesharing: Basic

Basic (Mather and Waite, 1971) is another


programming language that has enjoyed
widespread use but has gotten little respect.
Like COBOL, it has largely been ignored by computer
scientists.
Also, like COBOL, in its earliest versions it was
inelegant and included only a meager set of control
statements.

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

19

20
Early Basic – Example 1

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

20

10
26-May-22

21
Basic – Example 2

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

21

22
History’s Largest Design Effort: Ada

The Ada language is the result of the most extensive


and expensive language design effort ever
undertaken
The Ada language was developed for the
Department of Defense (DoD)
So, the state of their computing environment was
instrumental in determining its form.
By 1974, over half of the applications of computers in
DoD were embedded systems

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

22

11
26-May-22

23
History’s Largest Design Effort: Ada

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

23

24
Everything for Everybody: PL/I

PL/I represents the first large-scale attempt to design


a language that could be used for a broad spectrum
of application areas.
All previous and most subsequent languages have
focused on one particular application area, such as
science,
artificial intelligence, or
business.

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

24

12
26-May-22

25
Two Early Dynamic Languages: APL and SNOBOL

 In appearance and in purpose, APL and SNOBOL are quite


different from other languages
 They share two fundamental characteristics,
 Dynamic typing
 Variables in both languages are essentially untyped
 A variable acquires a type when it is assigned a value
 Dynamic storage allocation.
 Storage is allocated to a variable only when it is assigned a value
 There is no way to know the amount of storage that will be needed

 Was intended to be a vehicle for describing computer


architecture

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

25

26
Programming Based on Logic: Prolog

logic programming is the use of a formal logic


notation to communicate computational processes
to a computer.
Predicate calculus is the notation used in current
logic programming languages.
Used in Artificial Intelligent

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

26

13
26-May-22

27
Other Languages
 Object-Oriented Programming: Smalltalk
 Combining Imperative and Object-Oriented Features: C++
 An Imperative-Based Object-Oriented Language: Java
 Scripting Languages
 Perl
 JavaScript
 PHP
 Python
 Ruby
 Lua
 The Flagship .NET Language: C#
 Markup-Programming Hybrid Languages: XSLT, JSP,

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

27

28
Genealogy of common high-level programming languages

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

28

14
26-May-22

29

Copyright 2022 Rusdi Md Aminuddin, Associate Professor, UNIMY BCS2223 PROGRAMMING PARADIGM Slide 1-‹#›

29

15

You might also like