1 / 14

The ALGOL Family

The ALGOL Family. Mason Vines CPSC425. Overview. ALGOL 58 ALGOL 60 ALGOL 68 Success and Failure of ALGOL. ALGOL 58 The beginning . June 1957 – ACM requested a committee to look into a universal programming language

shirlyn
Download Presentation

The ALGOL Family

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The ALGOL Family Mason Vines CPSC425

  2. Overview • ALGOL 58 • ALGOL 60 • ALGOL 68 • Success and Failure of ALGOL

  3. ALGOL 58The beginning • June 1957 – ACM requested a committee to look into a universal programming language • October 1957 – A letter from GAMM (Gasellshaft fur angewandte Mathematik und Mechanik) • No current language covers everything • Creating more non-ideal languages doesn’t help the situation • Each passing month more people start using other languages • How can the logical structure of existing languages be adjusted

  4. ALGOL 58Zurich Meeting • May 27 – June 1, 1958 • Originally named IAL (International Algorithmic Language) • Objectives • Close to standard mathematical notation and readable with little further explanation • Possible to use it for the description of numerical processes in publications • Readily translatable into machine code by the machine itself • Three levels of languages • Reference • Publication • Hardware

  5. ALGOL 58New Features • Types • Integer • Real • Boolean • Formal vs Actual parameters • Declaration • for statements • Switch • Compound statements • Begin end delimiters • Three level language description • Call by name

  6. ALGOL 58Function vs Procedure • Nature of the body • Expression • Compound statement • Parameter evaluation mechanism • Value of any actual parameter • Text of any actual parameter • Identifier collision • Non-parameter identifiers are global to the definition • Communication only through parameters • Place of use • An operand in an expression • A statement or an operand in an expression

  7. ALGOL 60 • February 1959 – Discussion about ALGOL 58 • March 1959 – Naur sends out the first ALGOL bulletin • June 1959 – John Backus presents at UNESCO • FORTRAN is still being used in the U.S. • ALGOL is used for publications

  8. ALGOL 60Proposed Changes • The empty statement was adopted • Modifications to operation hierarchy • Unary operators having higher precedence than binary operators was adopted • Implied multiplication was rejected • Relation sequences were rejected • The else clause was adopted • Strings, lists, trees, matrices, and complex numbers were rejected as types • Multiple assignment statements were adopted • Created a new problem, A[i] := i := e • Recursion became possible in obvious ways • Constants were rejected

  9. ALGOL 60What’s New • Block • Call by value/name • Typed procedures • Declaration scope • Dynamic arrays • Side effects • Global and local variables • Step, until, while, if then else • Thunks • Activation records • Recursive decent parsers • No I/O

  10. ALGOL 68The Red-Headed Stepchild • The IFIP (International Federation for Information Processing) working group 2.1 began working on a successor to ALGOL 60 • There was a lot of debate over how much ALGOL 68 should deviate from ALGOL 60 • Many members of WG 2.1 left over the decision that was made • The language specified was never actually implemented

  11. ALGOL 68What’s New • Many new types, called modes • Primatives • Bits • Bytes • String • Sema (a semaphore) • Complex • File • Pipe • Channel • format • Additional • Flex (Flexible array) • Heap (space on the heap) • Loc (local space on the stack) • Ref (pointer) • Long (bigger ints/reals) • Short (smaller ints/reals) • Coercion • Declaration of custom types/modes

  12. ALGOLSuccesses and Failures • Programming computers – Partial Success • Core language is strong, no I/O is a serious shortcoming • Publication of algorithms – Very Successful • Stimulus to compiler design – Success with a seed of corruption • It only stimulated compiler design because it was difficult • Stimulated formal language research – Success • Not the goal of the ALGOL effort • Description of ALGOL 60 – Failure • Difficult to understand for the uninitiated reader • Needs an informal explanation

  13. ALGOL 68Successes and Failures • Transition to WG 2.1 of IFIP – Failure • Extreme clumsiness since IFIP needed ALGOL more than ALGOL needed the IFIP • The vague concept of ALGOL in the name of WG 2.1. Should have used a new name • Instead of learning from ALGOL 60, they amplified the failures • The IFIP was authoritarian • No open debate for the selection of a chairmen • No provision for regular replacement of the chairmen • No provision for killing a technical committee or working group • The IFIP uses the name ALGOL to take credit for work they didn’t do

  14. References • Lindsey, C.H., “A History of ALGOL 68.” History of Programming Languages, ACM Press. 1993. 97-132 • Naur, Peter, “Successes and failures of the ALGOL effort”, ALGOL Bulletin #28, Computer History Museum. 1986. 58-62 • Thomson, C.M., “Algol 68 as a Living Language”, ALGOL Bulletin #47, Computer History Museum. 1981. 21-24 • Perlis, Alan, “The American side of the development of Algol”, The first ACM SIGPLAN conference on History of programming languages, ACM Press. 1978. 3-14 • Naur, Peter. “The European side of the last phase of the development of ALGOL 60”, The first ACM SIGPLAN conference on History of programming languages, ACM Press. 1978. 15-44

More Related