345x Filetype PDF File size 0.39 MB Source: www.csee.umbc.edu
UMBC CMSC 331
History
• Early History : The first programmers
History of • The 1940s: Von Neumann and Zuse
• The 1950s: The First Programming Language
• The 1960s: An Explosion in Programming
Programming languages
• The 1970s: Simplicity, Abstraction, Study
Languages • The 1980s: Consolidation and New Directions
• The 1990s: Internet and web
• The 2000s: ? scripting, parallel, Web 2.0, …?
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 1 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 2
Early History: First Programmers Konrad Zuse and Plankalkul
• Jacquard loom of early 1800s Konrad Zuse began work on
Plankalkul (plan calculus), the first
– Translated card patterns into cloth designs algorithmic programming
• Charles Babbage’s analytical engine language, with an aim of creating the
theoretical preconditions for the
(1830s & 40s) formulation of problems of a general
Programs were cards with data and operations. nature.
Steam powered! Seven years earlier, Zuse had devel-
• Ada Lovelace – first programmer oped and built the world's first
binary digital computer, the Z1. He
“The engine can arrange and combine its completed the first fully functional
program-controlled electromechan-
numerical quantities exactly as if they ical digital computer, the Z3, in
were letters or any other general 1941.
symbols; And in fact might bring out its Only the Z4 – the most sophisticated
results in algebraic notation, were of his creations -- survived World
provision made.” War II.
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 3 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 4
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 1
UMBC CMSC 331
The 1940s: Von Neumann and Zuse Plankalkul notation
• Konrad Zuse (Plankalkul)
– in Germany - in isolation because of the war
– defined Plankalkul (program calculus) circa 1945 but A(7) := 5 * B(6)
never implemented it.
– Wrote algorithms in the language, including a program to
play chess. | 5 * B => A
– His work finally published in 1972. V | 6 7 (subscripts)
– Included some advanced data type features such as S | 1.n 1.n (data types)
» Floating point, used twos complement and hidden bits
» Arrays
» records (that could be nested)
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 5 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 6
The 1940s: Von Neumann and Zuse Machine Codes (40’s)
Von Neumann
led a team that • Initial computers were programmed in raw
built computers machine codes.
with stored • These were entirely numeric.
programs and a • What was wrong with using machine code?
central pro- Everything!
cessor • Poor readability
ENIAC was • Poor modifiability
programmed • Expression coding was tedious
with patch • Inherit deficiencies of hardware, e.g., no
cords indexing or floating point numbers
Von Neuman with ENIAC
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 7 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 8
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 2
UMBC CMSC 331
The 1950s: The First Pseudocodes (1949)
Programming Language
• Short Code or SHORTCODE - John Mauchly, 1949.
• Pseudocodes: interpreters for assembly language • Pseudocode interpreter for math problems, on Eckert
• Fortran: the first higher level programming and Mauchly’s BINAC and later on UNIVAC I and II.
language • Possibly the first attempt at a higher level language.
• COBOL: he first business oriented language • Expressions were coded, left to right, e.g.:
X0 = sqrt(abs(Y0))
• Algol: one of the most influential programming 00 X0 03 20 06 Y0
languages ever designed • Some operations:
• LISP: the first language outside the von Neumann 01 – 06 abs 1n (n+2)nd power
model 02 ) 07 + 2n (n+2)nd root
03 = 08 pause 4n if <= n
• APL: A Programming Language 04 / 09 ( 58 print & tab
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 9 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 10
More Pseudocodes Fortran (1954-57)
Speedcoding; 1953-4 • FORmula TRANslator
• A pseudocode interpreter for math on IBM701, IBM650. • Developed at IBM under the
• Developed by John Backus guidance of John Backus
• Pseudo ops for arithmetic and math functions primarily for scientific,
• Conditional and unconditional branching computational programming
• Autoincrement registers for array access
• Slow but still dominated by slowness of s/w math • Dramatically changed forever the
• Interpreter left only 700 words left for user program way computers used
Laning and Zierler System - 1953 • Has continued to evolve, adding new features & concepts.
• Implemented on the MIT Whirlwind computer – FORTRAN II, FORTRAN IV, FORTRAN66, FORTRAN77, FORTRAN90
• First "algebraic" compiler system • Always among the most efficient compilers, producing fast
• Subscripted variables, function calls, expression translation code
• Never ported to any other machine
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 11 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 12
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 3
UMBC CMSC 331
Fortran 77 Examples Fortran 0 and 1
FORTRAN 0 – 1954 (not implemented)
C Hello World in Fortran 77
C (lines must be 6 characters indented)
FORTRAN I - 1957
PROGRAM HELLOW
Designed for the new IBM 704, which had index registers and
WRITE(UNIT=*, FMT=*) 'Hello World'
floating point hardware
END
Environment of development:
Computers were small and unreliable
PROGRAM SQUARE
Applications were scientific
No programming methodology or tools
DO 15,I = 1,10
Machine efficiency was most important
WRITE(*, *) I*I
Impact of environment on design
15 CONTINUE
• No need for dynamic storage
END
• Need good array handling and counting loops
• No string handling, decimal arithmetic, or powerful input/
output (commercial stuff)
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 13 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 14
Fortran I Features Fortran II, IV and 77
• Names could have up to six characters FORTRAN II - 1958
• Post-test counting loop (DO I=1, 100)
• Formatted I/O • Independent compilation
• User-defined subprograms • Fix the bugs
• Three-way selection statement (arithmetic IF with GOTO)
IF (ICOUNT-1) 100 200 300 FORTRAN IV - 1960-62
• Implicit data typing statements • Explicit type declarations
variables beginning with i, j, k, l, m or n were integers, • Logical selection statement
all else floating point • Subprogram names could be parameters
• No separate compilation • ANSI standard in 1966
• Programs larger than 400 lines rarely compiled correctly,
mainly due to poor reliability of the 704 FORTRAN 77 - 1978
• Code was very fast • Character string handling
• Quickly became widely used • Logical loop control statement
• IF-THEN-ELSE statement
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 15 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 16
CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 4
no reviews yet
Please Login to review.