Chapter 2 Preview. Preview. History of Programming Languages. History of Programming Languages. History of Programming Languages

Similar documents
Concepts of Programming Languages

Programming Languages 2nd edition Tucker and Noonan"

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design

Chapter 1. Preliminaries

Introduction. A. Bellaachia Page: 1

Concepts in Programming Languages

Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003.

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

Com S 541. Programming Languages I

Principles of Programming Languages. Lecture Outline

Chapter 1. Preliminaries

Chapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains

Why study Programming Language Concepts? Chapter One. Language Evaluation Criteria. Programming Domains. Readability Writability Reliability Cost

Chapter 1 Preliminaries

Programming Languages, Summary CSC419; Odelia Schwartz

Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008.

CS508-Modern Programming Solved MCQ(S) From Midterm Papers (1 TO 22 Lectures) BY Arslan

Chapter 2. Evolution of the Major Programming Languages

Programming Paradigms

Languages october 22, 2017 Éric Lévénez < FORTRAN III end-1958 FORTRAN II FORTRAN I october 1956

What is a programming language?

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

SOFTWARE ARCHITECTURE 6. LISP

Chapter 2. Pseudocodes: Speedcoding. 2.2 Minimal Hardware Programming: Pseudocodes. Evolution of the Major Programming Languages

8/23/18. Programming Language Genealogy The Evolution of Programming Languages. Zuse s Plankalkül. Plankalkül Syntax. Machine Code

Logic Programming II & Revision

Programming Language Concepts 1982, 1987, Outline. Period

Comp 333: Concepts of Programming Languages Fall 2016

1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction

PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING

2. Evolution of the Major Programming languages

CS383 PROGRAMMING LANGUAGES. Kenny Q. Zhu Dept. of Computer Science Shanghai Jiao Tong University

Chapter 2. 5 * B => A V 6 7 (subscripts) S 1.n 1.n (data types)

Chapter 2. Evolution of the Major Programming Languages

Chapter 2. Evolution of the Major Programming Languages ISBN

Evolution of the Major Programming Languages

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo

CSCI.4430/6969 Programming Languages Lecture Notes

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current

Chapter 2. Evolution of the Major Programming Languages ISBN

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented

Continuations provide a novel way to suspend and reexecute

LECTURE 1. Overview and History

COSC 2P90 Programming Languages & Object-Orientation

Chapter 5. Names, Bindings, and Scopes

Question No: 1 ( Marks: 1 ) - Please choose one One difference LISP and PROLOG is. AI Puzzle Game All f the given

Chapter 2 Evolution of the Major Programming Languages Chapter 2 Topics

Thanks! Review. Course Goals. General Themes in this Course. There are many programming languages. Teaching Assistants. John Mitchell.

Imperative Programming

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106

History of Programming Languages

Introduction to Scientific Computing Languages

NOTE: Answer ANY FOUR of the following 6 sections:

PLAGIARISM. Administrivia. Course home page: Introduction to Programming Languages and Compilers

Introduction to Programming Languages and Compilers. CS164 11:00-12:00 MWF 306 Soda

Early computers (1940s) cost millions of dollars and were programmed in machine language. less error-prone method needed

Programming Languages 1. Introduction. Oscar Nierstrasz

Introduction to Scientific Computing Languages

Seminar in Programming Languages

CSc 372 Comparative Programming Languages

Fundamentals of Programming Languages. PL families Lecture 02 sl. dr. ing. Ciprian-Bogdan Chirila

Programmiersprachen (Programming Languages)

! Broaden your language horizons. ! Study how languages are implemented. ! Study how languages are described / specified

CSC 533: Organization of Programming Languages. Spring 2005

CS2303 C14 Systems Programming Concepts. Bob Kinicki

CMPUT Language Paradigms. Programming Paradigms. Dr. B. Price & Dr. R. Greiner. 7th September Real languages draw upon multiple paradigms

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo

St. MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Week 7 Prolog overview

will take you everywhere.

Programming Languages CMSC 4023 Chapter 2

CS 430 Spring History of Programming Languages. Mike Lam, Professor. John McCarthy ( ) Inventor of LISP

Compilation I. Hwansoo Han

Presentation Overview. Programming Language Families. Presentation Overview. Procedural Programming. Procedural Paradigm

Low-Level Languages. Computer Programs and Programming Languages

Fifth Generation CS 4100 LISP. What do we need? Example LISP Program 11/13/13. Chapter 9: List Processing: LISP. Central Idea: Function Application

Concepts of Programming Languages

CSCI 3136 Principles of Programming Languages

MIDTERM EXAMINATION - CS130 - Spring 2005

CS 113: Introduction to

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

Chapter 5 Names, Binding, Type Checking and Scopes

to read: Chapter 10, Russel & Norvig

CS 403: A Brief History of Programming Languages

Final-Term Papers Solved MCQS with Reference

Computer Fundamentals: Pradeep K. Sinha & Priti Sinha


INSTITUTE OF AERONAUTICAL ENGINEERING

Chapter 2. Chapter 2

Control Flow February 9, Lecture 7

Mechanization. A little bit of history. Mechanization. The old dream of mechanical computing. Jordi Cortadella Department of Computer Science

9/7/17. Outline. Name, Scope and Binding. Names. Introduction. Names (continued) Names (continued) In Text: Chapter 5

A little bit of history. Jordi Cortadella Department of Computer Science

Dynamically-typed Languages. David Miller

CMSC 331 Final Exam Section 0201 December 18, 2000

Programming Languages (CSCI 4430/6430) History, Syntax, Semantics, Essentials, Paradigms

Transcription:

Chapter 2 Preview Evolution of the Major Programming Languages The Beginnings of Data Abstraction: SIMULA 67 Orthogonal Design: ALGOL 68 Some Early Descendants of the ALGOLs Programming Based on Logic: Prolog History's Largest Design Effort: Ada Object-Oriented Programming: Smalltalk Combining Imperative ad Object-Oriented Features: C++ An Imperative-Based Object-Oriented Language: Java Scripting Languages The Flagship.NET Language: C# Markup/Programming Hybrid Languages 1 Preview Toward High-level Languages Problem of Scale s 2 The First Generation Computer(1945 ~ 1955) vacuum tubes and plugboards Use vacuum tubes to build calculating engines All programs were done by machine language written by plugboards to control the machine s basic functions. The Second Generation (1955 ~ 1965) Transistors and Batch system Transistor was invented in the mid 1950s. Computer become more reliable since vacuum tubes are replaced by transistors mainframes FORTRAN (Formula Translation) 1957 for scientific calculation (no module, only spaghetti code.) The 1950 s Programming Languages FORTRAN: the first higher level programming language FORTRAN I, II, IV, 77, 90, 95, 2003, 2008 COBOL: the first business oriented language Algol: one of the most influential programming languages ever designed LISP: the first language outside the von Neumann model (Dominant in AI) APL: A Programming Language 3 4 The 1960 s Programming Language - The development of hundreds of programming languages PL/1 designed in 1963-4 supposed to be all purpose combined features of FORTRAN, COBOL and Algol60 and more! translators were slow, huge and unreliable some say it was ahead of its time... Algol68 SNOBOL Simula BASIC The 1970 s Programming Languages Simplicity, Abstraction Algol-W - Nicklaus Wirth and C.A.R.Hoare reaction against 1960s simplicity Pascal small, simple, efficient structures for teaching program C - 1972 - Dennis Ritchie aims for simplicity by reducing restrictions of the type system allows access to underlying system interface with O/S - UNIX 5 6 1

The 1980 s Programming Languages new programming paradigm Ada US Department of Defense European team lead by Jean Ichbiah Functional programming Scheme, ML, Haskell Logic programming Prolog Object-oriented programming Smalltalk, C++, Eiffel The 1990 s and present Programming Languages Internet and web During the 90 s, Object-oriented languages (mostly C++) became widely used in practical applications The Internet and Web drove several phenomena: Adding concurrency and threads to existing languages Increased use of scripting languages such as Perl and Tcl/Tk Java, C# PHP, Ruby, Python,.. 7 8 Programming languages must be designed 1. Higher level independent of the underline machine. 2. General purpose can be applied to a wide range of problems. 9 10 High-level programming Languages Ex) High Level Language C++ Programmer does not need to know the architecture of a specific machine. Machine independent Ex) C++, C, Java, FORTRAN, LISP This code can be recognized by standard C++ compiler which is located in a machine Standard C++ Source code C++ Compiler in any machine Executable Code A programmer does not need to know the structure of a machine!!!! 11 12 2

Standard C++ Source code High Level Languages are potable Advantages of higher-level languages Reduce development time Readable No detailed low level computation Reusable code in program libraries Machine independence (portability) Consistency checks during implementation that can detect errors. Disadvantages of higher-level languages Slower than lower-level language code 13 14 Low-level programming languages A programmer need to know the structure of specific machine. Machine dependent Ex) An assembly languages for a machine This code can be recognized only by Intel Assembler Intel 80X86 Assembly Source code 15 16 Intel 80X86 Assembly Source code Low Level Languages are not potable Advantages of low-level languages Execution is faster than a higher-level language code since a programmer can optimize code. Readable than machine code ex.) The following code is a single operation in machine language. 0001110010000110 The following code is an assembly code ADD R6,R2,R6 ; Add $R2 to $R6 17 18 3

Programming language help programmers to develop software. But small error (logical) can lead entire program result to disaster. Not because of programming language itself but because the human error factor. Ex) The rocket for Mariner (July 22, 1962) destroyed 290 seconds after launch by human error!! If in radar contact with the rocket then do not correct its flight path 19 20 If in radar contact with the rocket then do correct its flight path If in radar contact with the rocket then do not correct its flight path 21 22 (Imperative Programming) Imperative programming action oriented- a computation is viewed as a sequence of actions (instructions). Imperative Commend Sharp distinction between data and program. Supported languages: Fortran, Algol60, Pascal, C (UNIX), COBOL. (Object-Oriented Programming) In object-oriented paradigm, individual data objects are defined by modules of code, called class, which encapsulate data declarations and functionalities (algorithms) for the operation. Supported languages Simula, C++, Java, C# 23 24 4

(Object-Oriented Programming) The characteristics of OO programming 1. Information hiding 2. Data abstraction 3. Message passing 4. Dynamic binding 5. Inheritance (Functional Programming) A computation is specified by a call to defined functions (Preliminary functions). The definition of those functions is intern specified by calls to functions. Those calls may be recursive calls to the function itself or to other defined functions. The chain of junction definitions bottoms out in calls to system Supported Languages LISP, ISWIM, ML, Scheme 25 26 (Functional Programming) Ex) LISP car- returns the first element of its argument list. cdr- returns the rest of the elements minus the first of its arument list car and cdr are the primitive functions in the LISP. If a list L is bound to (c d e f g), (car L) => c; (cdr L) =>(d e f g) From two primitive functions we can build a function second which returns the second element of its argument list as following way: (defun second (L) (car (cdr L))) Based on a subset of the predicate logic (firstorder logic) calculus. The predicate calculus provides axioms(facts) and rules so that one can deduce new facts from other known facts. Logic based program consist of a series of axioms (facts), rules of inference, and a theorem or query to be proved. Supported program Prolog, Fril 27 28 Ex) predicate logic Facts: Phillip, Charles, Andrew, Edward, Mark, William and Harry are male. Elizabeth, Anne, Diana and Sarah are female. Elizabeth and Philip are parents of Charles, Anne, Andrew and Edward. Diana and Charles are parents of William and Harry. Rules: X is Y s brother if X is male and X and Y has same parents. X is Y s sister if X is female and X and Y has same parents. Facts Phillip, Charles, Andrew, Edward, Mark, William and Harry are male. male(philip) male(charles) male(andrew) male(edward) male(mark) male(william) male(harry) Elizabeth, Anne, Diana and Sarah are female female(elizabeth). female(diana). female(anne). female(sarah). 29 30 5

Elizabeth and Philip are parents of Charles, Anne, Andrew and Edward. parents(charles, elizabeth, philip) parents(anne, elizabeth, philip) parents(andrew, elizabeth, philip) parents(edward, elizabeth, philip) Diana and Charles are parents of William and Harry. parrents(william, diana, charles) parrents(harry, diana, charles) Rules: X is Y s brother if X is male and X and Y has same parents. brother(x, y) :- male(x), parents(x, m, f), parents(y, m, f). X is Y s sister if X is female and X and Y has same parents. sister(x, y) :- female(x), parents(x, m, f), parents(y, m, f). 31 32 Query: Are Dianna and Charles parents of William??- parents(william, diana, charles). Is Edward Anne s brother??- brother(edward, anne). Who is Andrew s sister??- sister(x, andrew). 33 6