Topics Chapter 2 Early History: low level languages The 1950s: first programming languages History of Programming The 1960s: an explosion in programming languages Languages The 1970s: back to simplicity Functional and logic programming Object-oriented programming Chapter 2: History of Programming Languages 2 Most Influential Programming History of Programming Languages Languages The history of programming languages is tied to the evolution of computers. Several hundred programming languages and dialects since low-level programming languages (1940s). � Most have limited life span and utility. � A few have enjoyed widespread success in one or more application domain. � Many have played an important role in influencing the design of future languages Chapter 2: History of Programming Chapter 2: History of Programming Languages 3 Languages 4 Early History: Low Level The 1950s: The First PLs Languages FORTRAN First high-level programming language. 1940s and early 1950s: � Computers: slow, unreliable, difficult to program Developed between 1954-1957 by a � Machine language team at IBM lead by John Backus. Programming was tedious and error-prone. “ FOR mula TRAN slating” Programs were difficult to read (numeric codes for instructions) and difficult to modify. Designed primarily for scientific and � Assembly language computational programming (to express Use symbols and mnemonics to express the underlying machine code. mathematical formulas). Highly machine dependent Goal: to eliminate bookkeeping details Syntax: unlike natural language � Goal: implement what was possible on the available and repetitive planning. hardware. Chapter 2: History of Programming Chapter 2: History of Programming Languages 5 Languages 6 1
The 1950s: The First PLs The 1950s: The First PLs FORTRAN FORTRAN � There were no data-typing statements (variables Most features were new and become standard whose name began with I, J, K, L, M, and N were in later languages. implicitly integer type, the other were implicitly � Array, loops controlled by an index variable, if- floating-point) selection statement, do-loop statement, input-output Fortran initiated the search for languages that formatting. communicate with the computer at a high level, Some characteristics: a level closer to the way human think. � Variable names could be up to 6 characters (Fortran Fortran and its descendants (Fortran II, IV, 77, 0 at most two). 90, and 95) are still dominant in scientific � Spaces were ignored because they could be applications today. confusing to the human typist (a coder wrote code � Their compilers are still among the most efficient on paper and a typist punched the codes into cards) available because they produce very fast code. Chapter 2: History of Programming Chapter 2: History of Programming Languages 7 Languages 8 The 1950s: The First PLs The 1950s: The First PLs ALGOL 60 ALGOL 60 Idea: design a universal language for ALGOL had a profound effect on communicating programs among users and programming languages design. to computers. � Most of the current imperative languages Developed by an international committee are derivatives of ALGOL (Pascal, Ada, C, between 1958 and 1960. MODULA-2, C, Java). “ ALGO rithmic L anguage ” � Research papers today still often use � Initially called IAL (the International Algebraic Language). ALGOL or ALGOL-like syntax to describe Goal: to provide a general, expressive algorithms. language for describing algorithms, both in research and in practical applications. Chapter 2: History of Programming Chapter 2: History of Programming Languages 9 Languages 10 The 1950s: The First PLs The 1950s: The First PLs ALGOL 60 ALGOL 60 Concepts introduced: Some firsts: � The first time a language was designed by an � Free-format. international group. � Structured statements. � The first language designed to be machine � Type declarations for variables . independent. � The concept of block was introduced: begin-end � The first language whose syntax was formally blocks. described using BNF notation. � Procedures were allowed to be recursive. ALGOL evolved: � Two different means of passing parameters to � ALGOL 60 � ALGOL W � ALGOL 68. subprograms: pass by value and pass by name. ALGOL68 had a long list of features: parallel computation, semaphores, � implementation-dependant constants, large collection of types (complex � Stack-dynamic array were allowed. numbers, bit patterns, long and short numbers, strings, and flex ible arrays), and case-statement. Chapter 2: History of Programming Chapter 2: History of Programming Languages 11 Languages 12 2
The 1950s: The First PLs The 1950s: The First PLs ALGOL 60 LISP Genealogy: First functional programming language. Intended to provide a tool for writing programs for symbol manipulation and list processing in the field of artificial intelligence. Fortran I (1957) Developed by John McCarthy and his colleagues at MIT ALGOL 58 (1958) in the late 1950s-early 1960s “ LIS t P rocessor” Primarily data structure: list of symbols. ALGOL 60 (1960) � Words in a sentence, a list of attributes, a payroll record, a symbolic differential equation. Based of function application. Chapter 2: History of Programming Chapter 2: History of Programming Languages 13 Languages 14 The 1950s: The First PLs The 1950s: The First PLs LISP COBOL List: “nil” element and a pair element (a pair of Developed by the U.S. Department of Defense in 1960. pointers, one to an element of the list and one to Goal: to obtain a common programming the rest of the list). language for data processing applications. Data and programs are represented as lists. “ CO mmon B usiness O riented L anguage “ Pioneered general notions of computation: COBOL had the opposite effect than ALGOL 60 garbage collection. � Quickly adopted by banks and corporations for a Lisp and its variants (MACLISP, UTLISP, large-scale record-keeping and other business applications. COMMONLISP, SCHEME, etc) are still in use � It had little effect on the design of subsequent today in many artificial intelligence applications. languages, except PL/I. Chapter 2: History of Programming Chapter 2: History of Programming Languages 15 Languages 16 The 1950s: The First PLs The 1950s: The First PLs COBOL APL Major goal: to have a more English-like programming Designed by Kenneth Iverson between 1959- language suitable for business data processing. 1960s at Harvard University. � Uses English as a basis for its syntax. Designed to describe computer architecture � Programs are constructed out of clauses, sentences, and paragraphs � Influenced by the field of linear algebra � Programs tend to be more wordy than comparable programs in � It was not intended for implementation other languages. Goal: to facilitate the rapid programming of Problems: matrix algebraic and other mathematical � The design was supposed to permit nonprogrammers to read computations. and understand programs It only complicated the syntax without providing readability. “ A P rogramming L anguage “ � Complex algorithms are extremely difficult to program. Chapter 2: History of Programming Chapter 2: History of Programming Languages 17 Languages 18 3
The 1950s: The First PLs The 1950s: The First PLs APL APL is also functional in style and has a large Programming languages developed rapidly powerful set of operators that allow most in a short period of time 1954-1960. iterations to be performed completely automatic. Three major imperative programming � Programs are extremely difficult to read and languages (FORTRAN, COBOL, ALGOL 60) maintain. � All three, in modified form, still in use today. It is still used today and it has not changed a lot Functional programming began (LISP) which over all this years. is in use today. A descendent of APL is the language J. Chapter 2: History of Programming Chapter 2: History of Programming Languages 19 Languages 20 The 1960s: Explosion of PLs The 1960s: Explosion of PLs PL/I Designed by IBM between 1963 and 1964. After success of initial programming languages, Intended to use a new family of computers (the 360 family). everyone wanted to design their own language. Goal: to combine all features of FORTRAN, COBOL, Hundreds of special-purpose programming and ALGOL 60 and add concurrency and exception handling as well. languages Failure: � Designer’s particular interests or concerns. � Translators: difficult to write, slow, huge and unreliable � Most have vanished. � Language: difficult to learn and error prone to use, due to the � Only a few had significant effect on development of large number of unpredictable interactions among language features. programming languages. This language attempted to do too much, provide to many features, and satisfy too many users. Chapter 2: History of Programming Chapter 2: History of Programming Languages 21 Languages 22 The 1960s: Explosion of PLs The 1960s: Explosion of PLs PL/I SNOBOL Developed in the early 1960s by R. Griswold, D.J. Genealogy: Farber, and F Polensky at Bell Labs. Designed primarily to process string data (text processing). “ S tri N g O riented symBOlic L anguage” ALGOL 60 (1960) COBOL (1960) � At first, SEXI (String Expression Interpreter) was proposed and rejected. FORTRAN IV (1962) Distributed free, which contributed to its dissemination and influence. Spin-offs: SPITBOL(speedy implementation), FASBOL, PL/1 (1965) SLOBOL and SNOBAT. � The most familiar version is SNOBOLA. Chapter 2: History of Programming Chapter 2: History of Programming Languages 23 Languages 24 4
Recommend
More recommend