· It was designed specially for text processing (string processing) Cobol and Fortran were poor string processors
· Is a collection of powerful operations for string pattern matching
· One of the early applications was for writing text editors
· Can have strings of infinite length.
IBM designed to replace
FORTRAN & COBOL, (and Algol, to a certain extent)
·
Represents
the first large scale attempt to design a language that could be used for a
·
Broad
spectrum of application areas
·
Developed
as an IBM product
·
Block
structure
·
Recursive
procedure
·
COBOL-like
records
·
Exception
handling
·
Multi-tasking
·
Pointers
were included as a data type
·
Cross
section of arrays could be referenced
·
It
was considered at partial success
·
Significant
uses in business and scientific applications.
Imperative languages
ALGOL 68 (1968-1975) - (Wijnfgaarden) page 75 of text
· Was very different from its predecessor
· Most interesting feature was orthogonality
· Includes user-defined data types
·
Introduced the kind of dynamic arrays that are termed
implicit
heap-dynamic, (in ALGOL 68, dynamic arrays are called flex arrays).
· Orthogonality of features, (combining
simple features to create new ones)
"Formal definition" (semantics)
Pascal 1968, (very popular 1975-90)
Ada- 1980 page 85 of text
·
Grew
out of Pascal
·
Primary
goal: Dept. of Defense wanted to support programming of embedded systems
·
Named
after Ada Byron - world's first programmer
·
What
helped derive ADA:
·
Abstract
development
·
Exception
handling
·
Parallel
processing
·
Program
modularity, portability, extensibility
· Influenced by Algol 68
· For and switch statements
· Assignment operators
· Treatment of pointers
· C goes in between the imperative languages and the implicative languages
·
People who like C like its flexibility and those who
don't like C find it
too insecure
· C is part of the widely used UNIX operating system
· Weakness: no type checking
C++ (C with objects) page 94 of text
· Object oriented programming
· Standardized » 1990
· Bjarne Stroustrup at Bell labs
· Evolved from C
·
Includes: derived classes, public/private access
of inherited
components, constructor and destructor functions,
friend classes, and
virtual functions
· Includes templates and exception handling
· Operators and functions can be overloaded
· Popular because of availability of good and expensive compilers
·
Weaknesses: inherited many of the C insecurities
which makes it a less
safe language.
the language guide to smalltalk
· Object-oriented programming
·
Objects are structures that encapsulate local data and
a collection of
operations called methods that is available to other objects
·
Smalltalk world is populated by nothing but objects,
from integer
constants to large complex software systems
· Dynamic type binding
· Unit control, taken from simulation world
· Objects - communicate with each other by message passing
· Weakness: grouping
Prolog- 1975 page 84 of text
· The name Prolog comes from PROgramming LOGic
· Programming in logic programming language is non-procedural
·
The primary components of Prolog are a method for
specifying predicate
calculus propositions and an implementation of a restricted form of
resolution
· Logic programming is very inefficient
· Logic programming has a narrow domain
What has driven language design???? (per Gessi)
-
parallel architecture
i)
Writeability
ii)
Readability
iii)
Good exception handling
Evaluation of program language
AN EXAMPLE OF ALGOL
ORTHOGONALTIY GONE AWRY!!
THE FOLLOWING IS OK
proc sum = (real (a, b) real : a + b);
THE FOLLOWING IS NOT OK
(real x, y: read ((x, y));
if x < y then
a else b fi
:= b ^ if a := a + 1;
a > b then
c := c + 1; +
b
else c := c - 1; a
fi
overloading the operator or name may impair reliability
Evaluation of programming language (per Horowitz and Liskon)