History
Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and algorithms for human use
Early Machines Jacquard Loom –Early 19 th century machine –Used punched cards to automatically control weaving patterns Charles Babbage’s Analytical Engine –Programs consisted of a series of cards with data and operations –Designed but never built
The First Programmer Lady Ada Lovelace –Lord Byron’s daughter –Developed examples of computations which Babbage’s Analytical Engine could perform –Programming Language Ada is named for her
The First Programming Languages (1950s) FORTRAN COBOL Algol60 LISP APL
FORTRAN FORmula TRANslation ( ) –The first high-level language –Developed by a team at IBM led by John Backus –Features introduced by FORTRAN Arrays Counted loops Branching if-statement
COBOL COmmon Business Oriented Language ( ) –Developed by US DoD by a team led by Grace Hopper of the US Navy –Features introduced by COBOL Record structures Separation of data structures from the execution section Formatting of output using “pictures”
Algol60 ( ) ALGOrithmic Language –Developed by a committee to provide a general, expressive language for describing algorithms –Concepts introduced by Algol60 Free-format Structured statements Begin-end blocks Type declaration for variables Recursion Pass-by-value parameters
LISP (late 1950’s) LISt Processing –Designed at MIT by John McCarthy –Based on List Structure and Function Application –Used in Artificial Intelligence –Concepts introduced by LISP Garbage collection Recursion
APL (late 1950’s) A Programming Language –Developed at Harvard by K. Iverson and at IBM –Language for programming mathematical computations, especially those involving arrays and matrices –Basis for the IBM 360, one of the first time- sharing systems –Strongly influenced langauges FP and J
The 1960’s – An Explosion of Programming Languages PL/I Algol68 SNOBOL Simula67 ISWIM BASIC
The 1970’s – Simplicity, Abstraction, Study Algol-W Pascal C CLU Euclid Mesa
The 1980’s – New Direction, OO Ada Modula-2 Smalltalk C++ Scheme ML Miranda FP Prolog
The 1990’s – Internet, Libraries, Scripting Java Haskell AWK Perl Tcl Javascript Python Visual Basic
The Future New technologies will arise The field of Computing is dynamic There will continue to be room for new ideas and new programming languages