DOC PREVIEW
CUNY CISC 3160 - Evolution of the Major Programming Languages

This preview shows page 1-2-3-4-26-27-28-53-54-55-56 out of 56 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 56 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Chapter 2Genealogy of Common LanguagesZuse’s Plankalkül - 1945PlankalkülPseudocodes - 1949PseudocodesPseudocodesSlide 8IBM 704 and FORTRANSlide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17LISP - 1959Representation of Two LISP ListsLISPALGOL 58 and 60Slide 22Slide 23ALGOL 58Slide 25ALGOL 60Slide 27COBOL - 1960COBOLSlide 30Slide 31Slide 32BASIC - 1964PL/I - 1965PL/ISlide 36Slide 37APL and SNOBOLSlide 39SIMULA 67 - 1967ALGOL 68 - 1968ALGOL 68Important ALGOL DescendantsSlide 44Slide 45Slide 46Prolog - 1972Ada - 1983 (began in mid-1970s)AdaSlide 50Smalltalk - 1972-1980C++ - 1985C++ Related LanguagesJava (1995)Scripting Languages for the WebC#ISBN 0-321-19362-8Chapter 2Evolution of the Major Programming LanguagesCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-2Genealogy of Common LanguagesCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-3Zuse’s Plankalkül - 1945•Never implemented•Advanced data structures–floating point, arrays, records•InvariantsCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-4Plankalkül•Notation: A[7] = 5 * B[6] | 5 * B => A V | 6 7 (subscripts) S | 1.n 1.n (data types)Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-5Pseudocodes - 1949•What was wrong with using machine code?–Poor readability–Poor modifiability–Expression coding was tedious–Machine deficiencies--no indexing or floating pointCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-6Pseudocodes •Short code; 1949; BINAC; Mauchly–Expressions were coded, left to right–Some operations: 1n => (n+2)nd power 2n => (n+2)nd root 07 => additionCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-7Pseudocodes•Speedcoding; 1954; IBM 701, Backus–Pseudo ops for arithmetic and math functions–Conditional and unconditional branching–Autoincrement registers for array access–Slow!–Only 700 words left for user programCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-8Pseudocodes•Laning and Zierler System - 1953–Implemented on the MIT Whirlwind computer–First "algebraic" compiler system–Subscripted variables, function calls, expression translation–Never ported to any other machineCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-9IBM 704 and FORTRAN•FORTRAN I - 1957 (FORTRAN 0 - 1954 - not implemented)–Designed for the new IBM 704, which had index registers and floating point hardware–Environment of development:•Computers were small and unreliable•Applications were scientific•No programming methodology or tools•Machine efficiency was most importantCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-10IBM 704 and FORTRAN•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 (commercial stuff)Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-11IBM 704 and FORTRAN•First implemented version of FORTRAN –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 statementsCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-12IBM 704 and FORTRAN•First implemented version of FORTRAN –No separate compilation–Compiler released in April 1957, after 18 worker-years of effort–Programs larger than 400 lines rarely compiled correctly, mainly due to poor reliability of the 704–Code was very fast–Quickly became widely usedCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-13IBM 704 and FORTRAN•FORTRAN II - 1958–Independent compilation–Fix the bugsCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-14IBM 704 and FORTRAN•FORTRAN IV - 1960-62–Explicit type declarations–Logical selection statement–Subprogram names could be parameters–ANSI standard in 1966Copyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-15IBM 704 and FORTRAN•FORTRAN 77 - 1978–Character string handling–Logical loop control statement–IF-THEN-ELSE statementCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-16IBM 704 and FORTRAN•FORTRAN 90 - 1990–Modules–Dynamic arrays–Pointers–Recursion–CASE statement–Parameter type checkingCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-17IBM 704 and FORTRAN•FORTRAN Evaluation–Dramatically changed forever the way computers are usedCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-18LISP - 1959•LISt Processing language (Designed at MIT by McCarthy)•AI research needed a language that:–Process data in lists (rather than arrays)–Symbolic computation (rather than numeric)•Only two data types: atoms and lists•Syntax is based on lambda calculusCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-19Representation of Two LISP ListsCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-20LISP•Pioneered functional programming–No need for variables or assignment–Control via recursion and conditional expressions•Still the dominant language for AI•COMMON LISP and Scheme are contemporary dialects of LISP•ML, Miranda, and Haskell are related languagesCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-21ALGOL 58 and 60•Environment of development:–FORTRAN had (barely) 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 algorithmsCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-22ALGOL 58 and 60•ACM and GAMM met for four days for design•Goals of the language:–Close to mathematical notation–Good for describing algorithms–Must be translatable to machine codeCopyright © 2004 Pearson Addison-Wesley. All rights reserved. 2-23ALGOL 58 and 60•ALGOL 58 Language Features:–Concept of type was formalized–Names could have any length–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 had an else-if clause–No I/O - “would make


View Full Document

CUNY CISC 3160 - Evolution of the Major Programming Languages

Download Evolution of the Major Programming Languages
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Evolution of the Major Programming Languages and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Evolution of the Major Programming Languages 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?