![Konrad Zuse and Plankalkul](https://data.docslib.org/img/3a60ab92a6e30910dab9bd827208bcff-1.webp)
CMSC 331 Fall 2004 • Early History : The first programmers • The 1940s: Von Neumann and Zuse • The 1950s: The First Programming Language • The 1960s: An Explosion in Programming languages • The 1970s: Simplicity, Abstraction, Study • The 1980s: Consolidation and New Directions • The 1990s: the internet and web • The 2000s: tbd CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 1 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 2 Konrad Zuse and Plankalkul Konrad Zuse began work on Plankalkul (plan calculus), the • Jacquard loom of early 1800s first algorithmic programming – Translated card patterns into cloth designs language, with an aim of creating the theoretical preconditions for • Charles Babbage’s analytical the formulation of problems of a engine (1830s & 40s) general nature. Programs were cards with data and operations Seven years earlier, Zuse had developed and built the world's • Ada Lovelace – first programmer first binary digital computer, the Z1. He completed the first fully “The engine can arrange and combine functional program-controlled its numerical quantities exactly as if electromechanical digital they were letters or any other general computer, the Z3, in 1941. symbols; And in fact might bring out Only the Z4 – the most its results in algebraic notation, were sophisticated of his creations -- provision made.” survived World War II. CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 3 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 4 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 • Konrad Zuse (Plankalkul) – in Germany - in isolation because of the war A(7) := 5 * B(6) – defined Plankalkul (program calculus) circa 1945 but never implemented it. | 5 * B => A – Wrote algorithms in the language, including a program to play chess. V | 6 7 (subscripts) – His work finally published in 1972. S | 1.n 1.n (data types) – Included some advanced data type features such as » 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 John 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 Everything! processor • Poor readability ENIAC was • Poor modifiability also • Expression coding was tedious programmed • Inherit deficiencies of hardware, e.g., no with patch indexing or floating point numbers cords. 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 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 • Short Code or SHORTCODE - John Mauchly, 1949. • Pseudocodes: interpreters for assembly language • Pseudocode interpreter for math problems, on • Fortran: the first higher level programming Eckert 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.: • Algol: one of the most influential programming X0 = sqrt(abs(Y0)) languages ever designed 00 X0 03 20 06 Y0 • 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 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 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 FORTRAN 0 – 1954 (not implemented) • Names could have up to six characters FORTRAN I - 1957 • Posttest counting loop (DO I=1, 100) • Formatted I/O Designed for the new IBM 704, which had index registers and • User-defined subprograms floating point hardware • Three-way selection statement (arithmetic IF with GOTO) Environment of development: IF (ICOUNT-1) 100 200 300 Computers were small and unreliable Applications were scientific • Implicit data typing statements No programming methodology or tools variables beginning with i, j, k, l, m or n were integers, Machine efficiency was most important all else floating point Impact of environment on design • No separate compilation • No need for dynamic storage • Programs larger than 400 lines rarely compiled correctly, • Need good array handling and counting loops • No string handling, decimal arithmetic, or powerful mainly due to poor reliability of the 704 input/output (commercial stuff) • Code was very fast • Quickly became widely used CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 13 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 14 Added many features of more modern FORTRAN II - 1958 programming languages, including • Independent compilation •Pointers • Fix the bugs • Recursion • CASE statement FORTRAN IV - 1960-62 • Parameter type checking • Explicit type declarations • Logical selection statement • A collection of array operations, • Subprogram names could be parameters DOTPRODUCT, MATMUL, TRANSPOSE, etc • ANSI standard in 1966 • dynamic allocations and deallocation of FORTRAN 77 - 1978 arrays • Character string handling • a form of records (called derived types) • Logical loop control statement • IF-THEN-ELSE statement • Module facility (similar Ada’s package) CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 15 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 16 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 • COmmon Business Oriented Language • Principal mentor: (Rear Admiral Dr.) Grace Murray Hopper (1906-1992) • Based on FLOW-MATIC which had such features as: • Names up to 12 characters, with embedded hyphens • English names for arithmetic operators • Data and code were completely separate • Verbs were first word in every statement • CODASYL committee (Conference on Data Systems Languages) developed a programming language by the name of COBOL CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 17 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 18 First CODASYL Design Meeting - May 1959 Contributions: Design goals: - First macro facility in a high-level language • Must look like simple English - Hierarchical data structures (records) • Must be easy to use, even if that means it will be less - Nested selection statements powerful - Long names (up to 30 characters), with hyphens - Data Division • Must broaden the base of computer users Comments: • Must not be biased by current compiler problems • First language required by DoD; would have Design committee were all from computer manufacturers failed without DoD and DoD branches • Still the most widely used business applications Design Problems: arithmetic expressions? subscripts? language Fights among manufacturers CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 19 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 20 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 • Beginner's All purpose Symbolic Instruction Code • LISt Processing language (Designed at MIT by McCarthy) • Designed by Kemeny & Kurtz at Dartmouth for the GE • AI research needed a language that: 225 with the goals: • Process data in lists (rather than arrays) • Symbolic computation (rather than numeric) • Easy to learn and use for non-science students and as a path to Fortran and Algol • One universal, recursive data type: the s-expression • Must be ”pleasant and friendly" • An s-expression is either an atom or a list of zero or more • Fast turnaround for homework s-expressions • Syntax is based on the lambda calculus • Free and private access • Pioneered functional programming • User time is more important than computer time • No need for variables or assignment • Well suited for implementation on first PCs (e.g., Gates • Control via recursion and conditional expressions and Allen’s 4K Basic interpreter for the MITS Altair •Status personal computer (circa 1975) • Still the dominant language for AI • COMMON LISP and Scheme are contemporary dialects • Current popular dialects: Visual BASIC • ML, Miranda, and Haskell are related languages CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 21 CMSC 331.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages13 Page
-
File Size-