1 / 15

Programming Language History and Evolution

Programming Language History and Evolution. In Text: Chapter 2. Brief Overview of Paradigms. Procedural/Imperative Functional/Applicative Logic Object-oriented (closely related to imperative) Problem-oriented/application-specific. An Overview of PL History.

cvanessa
Download Presentation

Programming Language History and Evolution

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. Programming LanguageHistory and Evolution In Text: Chapter 2

  2. Brief Overview of Paradigms • Procedural/Imperative • Functional/Applicative • Logic • Object-oriented (closely related to imperative) • Problem-oriented/application-specific  Chapter 2: History and Evolution of Programming Languages 

  3. An Overview of PL History • 1950’s: Discovery and description • 1960’s: Elaboration and analysis • 1970’s: Technology • 1980’s: New paradigms • 1990’s: Internet influences 1950 1960 1970 1980 1990 2000  Chapter 2: History and Evolution of Programming Languages 

  4. 1950’s: Discovery and Description FORTRAN • FORTRAN (54-57, and on and on): • First widely used compiled language • Relatively efficient • LISP (56-62): • First functional language, first support for recursion, activation records, run-time stack • First garbage collector, implicit dynamic memory mgmt. • Interpreter-based LISP 1950 1960 1970 1980 1990 2000  Chapter 2: History and Evolution of Programming Languages 

  5. Overview: Procedural/Imperative • Describes how the computer should achieve solution • Key features: • Stored memory • Mutable variables • Sequencing, selection, iteration • Pointers?  Chapter 2: History and Evolution of Programming Languages 

  6. Overview: Functional/Applicative • Based on mathematics of recursive functions • Key features: • No mutable variables • Everything is an expression • Everything is a function • No iteration (loops) • Recursion, recursion, recursion!  Chapter 2: History and Evolution of Programming Languages 

  7. 1960’s: Elaboration and Analysis COBOL SNOBOL ALGOL • ALGOL 58, 60: first universal language. NEW: BNF, block structure, call-by-value, stack-based evaluation, stack-based arrays • APL: applicative, no precedence, interpreted • COBOL:English-style syntax, records in files • BASIC: interactive time-sharing terminals • SNOBOL: pattern matching • PL/I: the kitchen sink APL PL/I BASIC 1950 1960 1970 1980 1990 2000  Chapter 2: History and Evolution of Programming Languages 

  8. 1970’s: Technology Pascal Modula-2 Smalltalk • SIMULA 67: classes, inheritance, data abstraction • Pascal: small, elegant, structured programming, teaching • C: systems programming, efficiency • Modula-2: Pascal + modules, better for systems programming • Prolog: first logic language, AI-oriented • Smalltalk: pure OO, interpreted, entire system SIMULA 67 C Prolog 1950 1960 1970 1980 1990 2000  Chapter 2: History and Evolution of Programming Languages 

  9. Overview: OOP • Based on procedural/imperative style, with added data+code abstraction & encapsulation • Key features: • Encapsulation • Inheritance • Polymorphism/dynamic binding  Chapter 2: History and Evolution of Programming Languages 

  10. Overview: Logic • Based on predicate logic • Declarative: describes what problem is to be solved, but not how • Key features: • No mutable variables • Statements: implications or assertions • Every statement succeeds or fails • Few explicit control constructs • Recursion, recursion, recursion! • Must understand implementation model to use  Chapter 2: History and Evolution of Programming Languages 

  11. 1980’s: New Paradigms Ada SML • Ada: DoD, long committee-based development, large & complex, packages, tasks, generics, exceptions, from real-time to payroll apps. • C++: OOP in a popular, widespread language, often seen as a “hybrid” • Standard ML, Hope, Miranda, Haskell: functional languages C++ 1950 1960 1970 1980 1990 2000  Chapter 2: History and Evolution of Programming Languages 

  12. 1990’s: Internet Influences Perl • Scripting: Perl, TCL, Visual Basic, JavaScript, Python, … • Java: designed for portable binaries and internet use, “clean” OO compared to C++, garbage collection, compiled/interpreted hybrid Java 1950 1960 1970 1980 1990 2000  Chapter 2: History and Evolution of Programming Languages 

  13. Recap of Paradigms • Procedural/Imperative • Functional/Applicative • Logic • Object-oriented (closely related to imperative) • Problem-oriented/application-specific  Chapter 2: History and Evolution of Programming Languages 

  14. Paradigms: Key Differentiating Factors • What distinguishes one paradigm from another?  Chapter 2: History and Evolution of Programming Languages 

  15. Languages: Key Differentiating Factors • What distinguishes one language from another?  Chapter 2: History and Evolution of Programming Languages 

More Related