Programming Language History and Evolution

Slides:



Advertisements
Similar presentations
Programming Languages and Paradigms
Advertisements

Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
High-Level Programming Languages
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
Presented by Neng-Fa Zhou1 Evolution of programming languages –Machine language –Assembly language –Sub-routines and loop (Fortran) –Procedures and recursion.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
Programming Language Concepts
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.
1 Programming Language Concepts Ethics Why study concepts of programming languages (PLs)? PL categories Influences on PL design Problem areas & needs that.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
Chapter 8 High-Level Programming Languages (modified by Erin Chambers)
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
CS 363 Comparative Programming Languages
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
By Neng-Fa Zhou1 Evolution of programming languages –Machine language –Assembly language –Sub-routines and loop (Fortran) –Procedures and recursion (Algol,
1 Programming Languages Marjan Sirjani Course web site:
1 Programming Language History and Evolution In Text: Chapter 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Programming Languages Meeting 14 December 9/10, 2014.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
Programming Languages
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Evolution of the Major Programming Languages Chapter 2: Evolution of the Major Programming Languages Lectures # 5.
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Language History and Evolution
Programming Languages 2nd edition Tucker and Noonan
A BRIEF HISTORY OF PROGRAMMING LANGUAGES
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.
Programming Language Design Concepts
Evolution of programming languages
Developing Applications
Midterm Review In Text: Chapters 1, 2, 3, 11, 14, 15.
Final Review In Text: Chapters 1-3, 5-11,
Ada – 1983 History’s largest design effort
Midterm Review In Text: Chapters 1-3, 5-7, 15, 16.
Programming Languages
Final Review In Text: Chapters 1-11,
Programming Language Design
Final Review In Text: Chapters 1-3, 5-10, 12,
Final Review In Text: Chapters 1-3, 5-10, 12,
Final Review In Text: Chapters 1-3, 5-10,
Midterm Review In Text: Chapters 1, 2, 3, 5, 6, 15.
Midterm Review In Text: Chapters 1-3, 5-9, 15.
Final Review In Text: Chapters 1-3, 5-10,
Midterm Review In Text: Chapters 1-3, 5-6, 15.
Midterm Review In Text: Chapters 1-3, 5-10, 15.
Programming Languages 2nd edition Tucker and Noonan
CSE 341 Programming Languages Autumn 2001
Final Review In Text: Chapters 1-3, 5-12,
High Level Programming Languages
Final Review In Text: Chapters 1-3, 5-16.
Cobol Design goals: Problems
Principles of Programming Languages
Overview of Programming Paradigms
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Object-Oriented Programming
Programming Languages and Paradigms
Final Review In Text: Chapters 1-3, 5-16.
Midterm Review In Text: Chapters 1-3, 5-9, 15.
Midterm Review In Text: Chapters 1-3, 5-11, 15.
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

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  Chapter 2: History and Evolution of Programming Languages 

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

1950’s: Discovery and Description FORTRAN LISP 1950 1960 1970 1980 1990 2000 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  Chapter 2: History and Evolution of Programming Languages 

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 

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 

1960’s: Elaboration and Analysis ALGOL COBOL SNOBOL APL BASIC PL/I 1950 1960 1970 1980 1990 2000 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  Chapter 2: History and Evolution of Programming Languages 

 Chapter 2: History and Evolution of Programming Languages  1970’s: Technology Pascal Modula-2 Smalltalk SIMULA 67 C Prolog 1950 1960 1970 1980 1990 2000 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  Chapter 2: History and Evolution of Programming Languages 

 Chapter 2: History and Evolution of Programming Languages  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 

 Chapter 2: History and Evolution of Programming Languages  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 

 Chapter 2: History and Evolution of Programming Languages  1980’s: New Paradigms Ada SML C++ 1950 1960 1970 1980 1990 2000 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  Chapter 2: History and Evolution of Programming Languages 

1990’s: Internet Influences Perl Java 1950 1960 1970 1980 1990 2000 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  Chapter 2: History and Evolution of Programming Languages 

 Chapter 2: History and Evolution of Programming Languages  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 

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

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