Principles of Programming
Languages(CS F301)
Prof.R.Gururaj
BITS Pilani CS&IS Dept.
Hyderabad Campus
Evolution of Programming
Languages (Ch.2 of T1)
BITS Pilani
Hyderabad Campus
First known Programming Language:
Plankalkul, by a German Scientist Konrad Zuse (“Tsoo
Zuh”) was the First PL designed for his computer Z4
around 1945. But published in 1972.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Pseudocodes
Not in the same sense as we understand it now.
Between 1940-50 certain languages were known
as pseudocodes.
Computers were slow, unreliable, expensive and
had small memories.
Initially coding done in machine language.
(tedious and error prone)
This led to HighLevel PLs.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
1949- Short code:
It was interpreter.
Called Automatic Programming.
No floating point operations supported by HW.
1954- Speed coding:
It was interpreter.
Easier than machine code.
1951-53 UNIVAC Compiling systems
Convert pseudo code to machine code.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
IBMs 704 and FORTRAN
1950-54: First (compiled) HL PL. at IBM.
Included indexing, FP
The environment when it was developed:
Small memory, slow, unreliable
Primary use was for Sc. Computations
No existing effective & Efficient PLs
Cost of HW was high. Speed of generated object
code was of primary goal of first FORTRAN
Compilers.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
IBMs 704 and FORTRAN
1954: FORTRAN-0
1957: FORTRAN-1
1958: FORTRAN-2
1960-62: FORTRAN-4 (ANSI 66)
1977:FORTRAN-77
1990:FORTRAN-90
1995:FORTRAN-95
2003:FORTRAN-2003
2008:FORTRAN-2008
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Effect of FORTRAN
1. Its effect on computers was great.
2. All subsequent PLs owe a debt to
FORTRAN.
3. Type and storage of all variables is fixed
before runtime. (up to F-90)
4. It dramatically changed the way computers
were used.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Evolution of FORTRAN
Is a general-purpose, compiled imperative programming language that
is especially suited to numeric computation and scientific computing.
Fortran encompasses a lineage of versions, each of which evolved to
add extensions to the language while usually retaining compatibility
with prior versions.
Support for structured programming and processing of character-based
data (FORTRAN 77),
Array programming, modular programming and generic programming
(Fortran 90),
High performance Fortran (Fortran 95),
Object-oriented programming (Fortran 2003),
Concurrent programming (Fortran 2008),
Parallel computing capabilities (Coarray Fortran 2008/2018).
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Functional Programming LISP
1950; Its based on applying functions to arguments.
Need: Some methods to allow computers to process symbolic
data in linked lists.
At that time, most computations were on data in Arrays.
Required- recursion, conditional expressions, dynamic allocation
& deallocation of linked list space.
FORTRAN-1 did not support these.
Two descendants of LISP:
Scheme 1970: small size, treat functions as first class entities,
best suited for teaching course on PLs.
Common LISP: 1970-80 Amalgam of different dialects of LISP.
Complex.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
ALGOL 58
(ALGOrithmic Language)
1958; Descendant of FORTRAN.
Objective: to introduce a PL that is not tied to HW, more flexible
and powerful, i.e., combination of simplicity and elegance.
The reason for its failure to become popular.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
ALGOL 60
First to use of BNF (Backus-Naur Form) to describe the
language.
[Backus and Peter Naur]
Features and Evaluation:
Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
COBOL
COmmon Business-Oriented Language (1960)
Widely used.
Compiled language.
COBOL’s Progenitor is FLOW-MATIC. (early 1950)
Philosophy: Data processing programs must use English
like words rather than mathematical expressions.
Evaluation: Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
BASIC 1971
By Mather and Waite.
Got little respect.
Like COBOL ignored by Computer Scientists.
Had meager set of control statements.
Evaluation: Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
PL/I (1965)
Represents the first large scale attempt to design a
language that could be used for broad spectrum of
application areas.
All previous languages have focused particular application
area as – AI, Scientific, business etc.
Features:
First PL to…
Evaluation:
Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Two Dynamic Languages
APL- 1960
SNOBOL -1971
Evaluation: Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
SIMULA 67
Evaluation: Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
ALGOL-68
Evaluation: Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Early Descendants
of ALGOL 68
Early descendants of ALGOL:
PASCAL- 1971
A portable system language – C- 1972
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Prolog
Evaluation:
A prolog database contains: Rules and Facts
Ex: Fact statements.
Mother(x,y)
Father(m,n)
Rule statements:
Grandparent(a,b) :- parent(a,c), parent(c,b).
Prolog database can be interactively queried with goal statement.
Father(m,n).
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Ada
Evaluation: Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Smalltalk
Evaluation: Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
C++
Evaluation: Refer to the textbook.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Other hybrid family languages
Objective C
Delphi
Go
Java
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Scripting languages
Sh (shell)
Perl
Java Script
PHP
Python
Ruby
.NET C#
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Markup languages
XML
XSLT
JSP
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus
Summary
We understood the evolution of some important languages.
We investigated the development and development
environments of a number of important PLs.
Now e are ready to start with discussion of the important
features of contemporary PLs.
Prof.R.Gururaj CSF301 PPL BITS Pilani, Hyderabad Campus