1 / 27

Language History The Main Line

Explore the history and development of programming languages from the early days of Blaise Pascal and Charles Babbage to the modern era of Java. Discover influential languages like Fortran, COBOL, LISP, Pascal, C, and more. Learn about the evolution of features such as object-oriented programming and visual languages.

books
Télécharger la présentation

Language History The Main Line

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. Language History The Main Line

  2. Pre-History • Blaise Pascal • Leibnitz • Carles Babbage 1830-1840 • The difference engine • the first programmer: Ada, Countess Lovelace • The Jacquard Loom and its punched cards

  3. The early Modern era

  4. 0. Plankalkul (Zuse) 1945 • - a prototype language • 1. Fortran 54-57 (Backus--IBM) • - later WatFIV, Fortran 77 and Fortran 90+ (ISO) • - scientific work • 2. COBOL 59-60 (Admiral Hopper -- USN) • - business • 3. ALGOL 58-60 • - Zurich • - block structure • - formal definition in BNF (a metalanguage) • - heavily influenced everything after

  5. For Symbolic Manipulation (functional or applicative) 4. LISP 56-62 - John McCarthy MIT 1958 - non VonNeumann - no variables, assignments, or goto - now Common Lisp 5. *APL 56-60 (Iverson) - operator rich - needs special keyboard 6. *SNOBOL 60-62 (Griswald - Bell labs) - StriNg Oriented symBOLic Language * a dynamic language—interpreted not compiled

  6. The all-in-one language 7. PL/1 63-64 IBM - borrowed from everything prior - tried to combine COBOL, FORTRAN, LISP - exception handling - primitive multitasking - large; many previously untried features - a temporary success in academia - too large to learn properly

  7. Late 60's ALGOL successors 8. ALGOL-68 (committee effort) - like PL/1 in being feature-rich (bloated) - very orthogonal 9. ALGOL-W (Wirth&Hoare) (late 60s) - his reaction to ALGOL-68 10. SIMULA-67 (Nygaard & Dahl—Oslo) - from SIMULA-1 (62 - 64) - includes ALGOL-67 - to solve simulation problems - some parallelism possible - first language with CLASS; first OO language

  8. Late 60's ALGOL successors (cont’d) 11. Pascal (1971 Wirth) - simple but powerful - widely used in teaching - a huge impact to the late 1990s - descendants include → UCSD → ISO version → Object Pascal (Wirth on contrat to Apple) →Turbo →Delphi environment → Ada, Modula-2, etc.

  9. Hobbiest Languages 12. BASIC (1964 Kemeny & Kurtz @ Dartmouth) - simplified Fortran, also ALGOL influence - line numbers to control sequence - timeshared on large machines, built-in on the smaller - early versions not well defined - limited control structures and data types - integrated editing and interpreting - descendants include ASCI BASIC, Real Basic (K&K), Future Basic 13. LOGO - interactive language for teaching children

  10. The Middle era

  11. Results of the 70s experiments 14. C (1972 Ritchie @ Bell) - another ALGOL descendent - designed for systems work, eg UNIX (re-written in C) - a middle level language - standardized bu ANSI in 1989 15. Euclid (76-77 @ U of T) - Pascal, extended with Modules 16. Mesa (76-79 -- Xerox) - had concurrency facilities

  12. 17. Ada (1979 US DOD) (no longer mandated by DoD) - another Pascal replacement - committee designed, large and complex - largest design effort ever; took 4y to get a compiler - completely specified, including libraries - got ISO version in 1990s as Ada95 18. Modula-2 (1977 -- Wirth @ETH; reaction to Ada) -much simpler than Ada, but as powerful - replacement for Pascal - teaching, real time (embedded) systems, general use - influenced by Mesa & Modula (a real time notation) - got ISO version in 1990s + generic & OO extensions

  13. The early Modula-2 Descendents 19. Modula* (for parallel processing) 20. Modula-GM (used only at General Motors) 21. Modula-3 (Olivetti and DEC) - OO version 22. Oberon (Wirth) - widely used in European Universities - has many versions including Component Pascal - stripped down Modula-2 ;OO added in Oberon-2 - included an operating system & editor - never completely specified

  14. Other 70's and 80s experiments 23. Smalltalk (71-80 by Alan Kay @ Xerox) - from SIMULA-67 - an OO language; several implementations available 24. Scheme (75-77 Sussman & Steele @ MIT) - variation of LISP - used in several universities for beginners 25. PROLOG (1972, French) - logic programming, AI an intelligent DB? 26. Eiffel (1985 Meyer) - Pascal-like OO language - smaller and simpler than C++

  15. The Modern era

  16. Results of 90's work I Language Extensions; Alterations 27. C++ (Bjarne Stroustrop, draft 1995) - C with OO, some deprecations - many new features, similarities to SIMULA - has generics (templates for ADTs) - ISO standardized, more compliant compilers now - large, complex, non-orthogonal 28. Modula-2 extensions - ISO committee adds OO and generics 29. J (Iversons) - an ASCII replacement of APL

  17. I Language Extensions; Alterations Cont’d. 30. Object Pascal (Wirth, for Apple computing) 31. Objective C (Became Another Apple project) 32. Scheme (MIT: Abelson and Sussman - from LISP)

  18. II Visual Languages and environments 33. Delphi (Borland 1995) - migration from Turbo Pascal, includes Object Pascal - many features from Modula-2 34. Visual Basic (MS described in 1987) - widely used by non-professionals after 1991) 35. Visual C++ (MS)

  19. Newer Languages 36. Java (Sun Microsystems) - pure OO; all code part of objects - no standalone subprograms; no true pointers - borrows syntax from C, C++ - ideas from Pascal, Modula-2, and Smalltalk - J++ is the MS version 37. JavaScript(ECMAScript) - A net scripting language; runs client side in browsers - with Ajax can do dynamic loading into static pages

  20. 38. PHP - a net scripting language that runs server-side - used with databases; MySQL querying capabilities - integral part of LAMP environments (LINUX, Apache, MySQL, PHP) 39. Perl - scripting language;extensive string manipulation capabilities 40. C# (Microsoft) - an attempt to replace Java with an MS proprietary language; similar design - runs in .NET

  21. 41. Python - an interpreted multipurpose OO language - descended from Modula-2 but written more like C 42 . Ruby - dynamic typing, extensible - syntax similar to Eiffel and Ada - pure OO language - with the "Rails" environment - used in conjunction with JavaScript - now sometimes standalone (not in Apache)

  22. The Latest & Going Forward

  23. 2010-2017 projects (1) 43. Swift (Apple; released June 2014) - from Objective-C - Apple ecosystem programming; not general-purpose - has a visual “playground” - safety, security, extensibility

  24. 2010-2017 projects (2) 44. MODULA-2 R10 (design 2010, finalized 2015) - Sutcliffe & Kowarsch - from Classic Modula-2, not ISO, GM, or Modula-3 - General purpose - safety, security, extensibility - OO and concurrency left for a later edition - templates for generics, blueprints for ADTs - small, very powerful, extensive library system - incorporates latest ideas and design principles - built-in procedures are Wirthian macros that are translated at compile time

  25. Others • specialized query and database languages • markup notations • HTML (+Ajax), XML, JSP (Java Server Pages) • macro notations including • VBA • C or Pascal-like add ons • scripting languages • (TCL/TK. Perl, AWK, AppleScript • JavaScript(ECMAScript) • and many more not mentioned here (see the text).

  26. Issues: • Language portability can be achieved by • standards • compiling to a virtual machine interpreter • UCSD, JVM, Gardens Point • The book has extensive evaluations of some of these • Take these, mine, and yours with a grain of salt

  27. - 30 -

More Related