Language History The Main Line

Slides:



Advertisements
Similar presentations
CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.
Advertisements

A brief history of programming languages
Spring 2010 CS 214 Programming Languages. Details Course homepage: cs.calvin.edu/curriculum/cs/214/ Important dates: February 19: Project language choice.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Reasons to study concepts of PL
A Quick Overview of Languages. FORTRAN Designed in 1955 First release of the compiler in 1957 Algebraic in nature Scientific (numeric not string oriented)
Programming Languages Structure
ISBN Chapter 2 Evolution of the Major Programming Languages.
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
History of Programming Languages
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Programming Languages
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
Computer programming.
COMPUTER PROGRAMS AND LANGUAGES Chapter 4. Developing a computer program Programs are a set (series) of instructions Programmers determine The instructions.
ISBN Chapter 2 Evolution of the Major Programming Languages.
©Xiaoying Gao, Peter Andreae First Java Program COMP 102 #2 2014T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
First Java Program COMP 102 #2 2015T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
1 Programming Languages Marjan Sirjani Course web site:
1 Programming Language History and Evolution In Text: Chapter 2.
CS 403 Programming Language Theory Class 3 - August 31, 2000.
Machine Languages It is the only language the computer understands. It is made of 0s and 1s. They must be in 0s and 1s because the internal circuit of.
ISBN Chapter 2 Evolution of the Major Programming Languages.
Programming Languages – An introduction. There are 10 types of people in the world −Those who understand binary −Those who don’t.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Chapter 2: Evolution of the Major Programming Languages The IBM 704 and Fortran Functional Programming:
C Language: Introduction
Programming Language 1. Programming language A programming language is a machine-readable artificial language designed to express computations that can.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 190 Programming Language Paradigms Fall 2014
Evolution of the Major Programming Languages Chapter 2: Evolution of the Major Programming Languages Lectures # 5.
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
CS 313 History of Programming Languages
Programming Language Paradigms ITSK2314 Lecture 3.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
Programming Language History and Evolution
Computer Languages [Computing] Computing.
CSCE 190 Programming Language Paradigms
A BRIEF HISTORY OF PROGRAMMING LANGUAGES
The language focusses on ease of use
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Concepts of Programming Languages
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Why study programming languages?
Basic 1964 PC general purpose Imperative Small Easy to use.
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Introduction of Programming Languages
Programming Vocabulary
Programming Language History and Evolution
Evolution of the Major Programming Languages
Развој софтвера 2.
Chapter 2 Plankalkül – Never implemented
CMPT 360 Programming Languages (Notations)
Evolution of the Major Programming Languages
Ada – 1983 History’s largest design effort
Evolution of the Major Programming Languages
Programming Languages 2nd edition Tucker and Noonan
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
and Program Development
Cobol Design goals: Problems
Principles of Programming Languages
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
School of Computer & Information Engineering,
2.1 Plankalkül Pseudocodes Never implemented
Programming Languages
Presentation transcript:

Language History The Main Line

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

The early Modern era

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

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

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

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

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.

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

The Middle era

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

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

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

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++

The Modern era

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

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)

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)

36. Java (Sun Microsystems) - pure OO; all code part of objects 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

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

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)

The Latest & Going Forward

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

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

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).

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

- 30 -