Konrad Zuse and Plankalkul

Konrad Zuse and Plankalkul

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    13 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us