0% found this document useful (0 votes)
58 views31 pages

CSE325 Lecture 2 Evolutionof Prog Langs

This document provides an overview of the lecture "Evolution of Programming Languages" given by Dr. F. A. Faisal. The lecture discusses the development of major programming languages from the 1950s to today, including their environments, motivations for creation, and key contributions. Languages covered include Fortran, Lisp, Algol, Cobol, Basic, Pl/1, Apl, Snobol, and Simula. The lecture aims to analyze the history and evolution of programming languages.

Uploaded by

Md. Amdadul Bari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views31 pages

CSE325 Lecture 2 Evolutionof Prog Langs

This document provides an overview of the lecture "Evolution of Programming Languages" given by Dr. F. A. Faisal. The lecture discusses the development of major programming languages from the 1950s to today, including their environments, motivations for creation, and key contributions. Languages covered include Fortran, Lisp, Algol, Cobol, Basic, Pl/1, Apl, Snobol, and Simula. The lecture aims to analyze the history and evolution of programming languages.

Uploaded by

Md. Amdadul Bari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

LECTURE 02

EVOLUTION OF THE
PROGRAMMING
LANGUAGES
CSE 325/CSE 425:
CONCEPTS OF
PROGRAMMING LANGUAGE

INSTRUCTOR: DR. F. A. FAISAL


INTRO

•  We will not go through the in-depth discussion


of any language feature or concept.
•  However, we will discuss the development of a
collection of programming languages.
•  We will explores the environment in which each
was designed and focuses on the contributions
of the language and the motivation for its
development.
•  In short, It will be the history analysis.
HISTORY AND EVALUATION OF
PROGRAMMING LANGUAGES
GENEALOGY OF
COMMON LANGUAGES
GENEALOGY OF COMMON
LANGUAGES(CONT.)
MAJOR PROGRAMMING
LANGUAGES
•  Fortran
•  LISP
•  ALGOL 60
•  COBOL
•  Basic
•  PL/I
•  APL
•  SNOBOL
•  SIMULA 67
•  Others
FORTRAN
•  Is a general-purpose, imperative programming language
useful for numeric and scientific computing.
•  Designed for IBM 704, which consists of index registers and
floating point hardware.
•  Hence, no floating-point software
•  run (# sysctl -n machdep.cpu.brand_string) (it’s dual core)
FORTRAN I: 1957 (FIRST
IMPLEMENTED VERSION)
•  Environment of development
•  Applications were focused on only scientific computations.
•  Computers had small memories, slow and unreliable.
•  No programming methodology or tools.
•  Machine efficiency was the most important concern.
•  Impact of environment on design of Fortran I
•  No need for dynamic storage
•  Need good array handling and counting loops
•  No string handling, decimal arithmetic or powerful input/
output (for business software).
FORTRAN I OVERVIEW
•  Names could have up to six characters
•  Post-test counting loop (Do)
•  Formatted I/O
•  User-defined subprograms
•  Three-way selection statement (arithmetic IF)
•  No data typing statements
•  No separate compilation
•  Code is very fast
•  Quickly become widely used
•  Compiler released in April 1957, after 18 worker-years of effort!
•  More than 400 codes of programs rarely compiled correctly,
mainly due to the reliability of 704.
FORTRAN (VERSIONS)
•  Fortran II: 1958
•  Fixed the bugs of Fortran I
•  Independent compilation of subroutines (allows the shortened
compilation process and made it possible to write larger programs).
•  Fortran III:
•  Fortran III was developed, but was never widely distributed.
•  Fortran IV: 1960-62
•  Most widely used programming language at that time.
•  Explicit type declarations for variables.
•  Capability of passing subprograms as parameters to other
subprograms.
•  Fortran 77: 1978
•  Became the new standard
•  Character string handling
•  Logical loop control statement
•  IF-THEN-ELSE statement
FORTRAN (VERSIONS)
•  Fortran 90: 1990
•  Most significant changes from Fortran 77
•  Modules
•  Dynamic arrays
•  Pointers
•  Recursion
•  Case statement
•  Parameter type checking
•  Fortran 95
•  minor additions, plus some deletions
•  Fortran 2003
•  Support for OOP, procedure pointers, interoperability with C
•  Fortran 2008
•  Blocks for local scopes, co-arrays, Do Concurrent, parallel execution
model
EXAMPLE
LISP: FUNCTIONAL
PROGRAMMING
•  List-processing language
•  Designed at MIT by McCarthy
•  Al research needed a language
to
•  Process data in lists (rather
than arrays)
•  Symbolic computation (rather
than numeric)
•  Only two data types: atoms and
lists
•  Syntax is based on lambda
calculus.
Representing the lists (A B C D)
and (A (B C) D (E (F G)))
LISP EVALUATION
•  P i o n e e r e d functional
programming
•  No need for variables or
assignment
•  Control via recursion and
conditional expressions
•  Still the dominant language
for AI
•  ML, Haskell, and F# are also
functional programming
languages, but use very
different syntax
ALGOL 60
•  Environment of development:
•  Fortran had arrived for IBM 70x
•  Many other languages were being developed, all for
specific machines.
•  No portable language; all were machine- dependent.
•  No universal language for communicating algorithms
•  Goal:
•  Close to mathematical notation
•  Good for describing algorithms
•  Must be translatable to machine code
ALGOL 58
•  Concept of data type was formalized.
•  Names could have any length size.
•  Arrays could have any number of subscripts.
•  Parameters were separated by mode (in & out)
•  Subscripts were placed in brackets
•  Compound statements (begin … end)
•  Semicolon as a statement separator
•  Assignment operator was :=
•  If has an else-if clause
•  No I/O- “ would make it machine dependent”
ALGOL 58
IMPLEMENTATION

•  Not meant to be implemented, but variations of it were


(MAD, JOVIAL) (JOVIAL was the official scientific
language for the U.S. Air Force for quarter century).
•  Although IBM was initially enthusiastic, all support was
dropped by mid 1959.
ALGOL 60 OVERVIEW
•  Modified ALGOL 58 at 6-day meeting in Paris
•  New features-
•  Block structure (local scope)
•  Two Parameter passing methods (pass by value and pass
by name).
•  Pass by name behave like a literal text-substitution.
•  Subprogram recursion
•  Stack-dynamic arrays

•  Still no I/O and no string handling.


•  Never widely used, especially for U.S.
EXAMPLE
COBOL (COMPUTERIZING
BUSINESS RECORDS)
•  Development of business applications-
•  UNIVAC was beginning to use FLOW-MATIC (is a compiled
language for business application) and not allowed as open
source.
•  USAF use the AIMACO
•  IBM was developing COMTRAN.
•  COBOL Historical Backgrounds-
•  Based on FLOW-MATIC
•  FLOW-MATIC features-
•  Names up to 12 characters, with embedded hyphens
•  English names for arithmetic operators (no arithmetic
expressions)
•  Data and code were completely separate.
•  The first word in every statement was a verb.
COBOL DESIGN
PROCESS
•  First design meeting (Pentagon) – May 1959
•  Design goals
•  Must look like simple English
•  Must be easy to use, even if that means it will be less
powerful
•  Must broaden the base of computer users.
•  Must not be biased by current compiler problems.
•  Contributions
•  First macro facility in a high-level language
•  Hierarchical data structures (records)
•  Nested selection statements
•  Long names (up to 30 characters), with hyphens
•  Separate data division.
EXAMPLE
THE BEGINNING OF
TIMESHARING: BASIC
•  Designed by Kemeny & Kurtz at Dartmouth
•  Design Goals:
•  Easy to learn and use for non-science students
•  Must be “Pleasant and friendly”
•  Fast turnaround for homework
•  Free and private access
•  User time is more important than computer time
•  Current popular dialect: Visual Basic
•  First widely used language with time sharing.
EXAMPLE
PL/I
•  Is a procedural, imperative programming language
designed for scientific engineering, business and system
programming.
•  Designed by IBM
•  Background: by 1963
•  Scientific users began to need more elaborate I/O, like
COBOL had, business users began to need floating point
and arrays for MIS.
•  It looked like many shops would begin to need two kinds of
computers, languages, and support staff– (Damn Costly)
•  The solution:
•  Build a new computer to do both kinds of applications
•  Design a new language to do both kinds of applications.
PL/I
•  Design Process:
•  Designed in five months by 3 X 3 Committee
•  Three from IBM, 3 from SHARE
•  Initial Concept
•  An extension of Fortran IV
•  Initially called as NPL (New Programming Language)
•  Name changed to PL/I in 1965
•  Contributions:
•  First unit-level concurrency
•  First exception handling
•  Switch-selectable recursion
•  First pointer data type
•  First array cross sections
•  Concerns:
•  Many new features were poorly designed
•  Too large and too complex
TWO EARLY DYNAMIC
LANGUAGES: APL AND SNOBOL
•  Characterized by dynamic typing and dynamic storage
allocation
•  Variables are untyped-
•  A variable acquires a type when it is assigned a value.
•  Storage is allocated to a variable when it is assigned a
value. (Because before that there is no way to know the
the amount of storage that will be needed).
•  APL (A Programming Language)
•  Designed as a hardware description language at IBM by
Ken Iverson around 1960.
•  Highly expressive (many operators, for both scalars and
arrays of various dimensions)
•  Programs are very difficult to read.
•  Still in use, minimal changes
TWO EARLY DYNAMIC
LANGUAGES: APL AND SNOBOL

•  SNOBOL:
•  Designed as a string manipulation language at Bell Labs
by Farber, Griswold, and Polensky in 1964
•  Powerful operators for string pattern matching.
•  Slower than alternative languages (and thus no longer
used for writing editors).
•  Still used for certain text processing tasks.
THE BEGINNING OF DATA
ABSTRACTION: SIMULA 67

•  Designed primarily for system simulation in Norway by


Nygaard and Dahl
•  Based on ALGOL 60 and SIMULA !
•  Primary Contributions-
•  Co-routines- a kind of Subprogram
•  Classes, objects and inheritance
TOP PROGRAMMING LANGUAGE IN 2020
THANKS

You might also like