History of Programming Languages

History of Programming Languages

UMBC CMSC 331 History • Early History : The first programmers • The 1940s: Von Neumann and Zuse History of • The 1950s: The First Programming Language • The 1960s: An Explosion in Programming languages Programming • The 1970s: Simplicity, Abstraction, Study • The 1980s: Consolidation and New Directions Languages • 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 language, with an aim of creating the • Charles Babbage’s analytical engine theoretical preconditions for the (1830s & 40s) formulation of problems of a general nature. Programs were cards with data and operations. Steam powered! Seven years earlier, Zuse had devel- oped and built the world's first • Ada Lovelace – first programmer binary digital computer, the Z1. He completed the first fully functional “The engine can arrange and combine its 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 02 ) 07 + 2n (n+2)nd root model 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 by John Backus • Developed at IBM under the 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 • Subscripted variables, function calls, expression translation • Always among the most efficient compilers, producing fast • Never ported to any other machine code 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 Applications were scientific PROGRAM SQUARE 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 • Need good array handling and counting loops END • 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 • Post-test counting loop (DO I=1, 100) FORTRAN II - 1958 • 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 • Logical loop control statement • Quickly became widely used • 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 UMBC CMSC 331 Fortran 90 (1990) COBOL Added many features of more modern programming languages, including • COmmon Business Oriented Language • Principal mentor: (Rear Admiral Dr.) • Pointers Grace Murray Hopper (1906-1992) • Recursion • Based on FLOW-MATIC which had such features as: • CASE statement • Names up to 12 characters, with • Parameter type checking embedded hyphens • A collection of array operations, DOTPRODUCT, • English names for arithmetic operators MATMUL, TRANSPOSE, etc • Data and code were completely separate • dynamic allocations and deallocation of arrays • Verbs were first word in every statement • CODASYL committee (Conference on Data Systems • a form of records (called derived types) Languages) developed a programming language by the • Module facility (similar Ada’s package) 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 COBOL COBOL First CODASYL Design Meeting - May 1959 Design goals: • Must look like simple English • Must be easy to use, even if that means it will be less powerful • Must broaden the base of computer users • Must not be biased by current compiler problems Design committee were all from computer manufacturers and DoD branches Design Problems: arithmetic expressions? subscripts? 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 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 5 UMBC CMSC 331 IDENTIFICATION DIVISION. COBOL PROGRAM-ID. HelloWorld. AUTHOR. Fabritius. Cobol Example Contributions: - First macro facility in a high-level language ENVIRONMENT DIVISION. - Hierarchical data structures (records) CONFIGURATION SECTION. - Nested selection statements INPUT-OUTPUT SECTION. - Long names (up to 30 characters), with hyphens - Data Division DATA DIVISION. Comments: FILE SECTION. • First language required by DoD; would have WORKING-STORAGE SECTION. failed without DoD LINKAGE SECTION. • Still the most widely used business applications language PROCEDURE DIVISION. DISPLAY "Hello World". STOP RUN. CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 21 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 22 BASIC (1964) BASIC Examples • Beginner's All purpose Symbolic Instruction Code • Designed by Kemeny & Kurtz at Dartmouth for the GE 225 with the goals: PRINT "Hello World" • Easy to learn and use for non-science

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    14 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