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

Similar documents
What is a programming language?

Chapter 1. Preliminaries

Chapter 1 Preliminaries

Chapter 1. Preliminaries

Principles of Programming Languages. Lecture Outline

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

Concepts of Programming Languages

Programming Languages 2nd edition Tucker and Noonan"

Programming Languages, Summary CSC419; Odelia Schwartz

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

Introduction. A. Bellaachia Page: 1

Concepts in Programming Languages

Concepts of Programming Languages

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

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

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

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher

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

Programming Languages, Introduction CSC419; Odelia Schwartz

Concepts of Programming Languages (750321)

Programming Paradigms

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

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

Compilation I. Hwansoo Han

Programmiersprachen (Programming Languages)

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

An Introduction to Software Engineering. David Greenstein Monta Vista High School

Chapter Twelve. Systems Design and Development

Compiling and Interpreting Programming. Overview of Compilers and Interpreters

INSTITUTE OF AERONAUTICAL ENGINEERING

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

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

Computers in Engineering COMP 208. Computer Structure. Computer Architecture. Computer Structure Michael A. Hawker

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

Chapter 5. Names, Bindings, and Scopes

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

Objective: To learn meaning and concepts of programming. Outcome: By the end of this students should be able to describe the meaning of programming

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

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

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

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

COSC 2P90 Programming Languages & Object-Orientation

Introduction to Programming

Course outline. CSE 341: Programming Languages. Why study programming languages? Course motivation and objectives. 1 lecture: Concepts

CS 3304 Comparative Languages. Lecture 1: Introduction

Language Evaluation P L COS 301. Fall School of Computing and Information Science University of Maine. Language Evaluation COS 301.

Design & Implementation Overview

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

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

Programming Languages FILS Andrei Vasilateanu

Business and Scientific Applications of the Java Programming Language

Why are there so many programming languages?

Programming Language Concepts 1982, 1987, Outline. Period

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

Evolution of the Major Programming Languages

Outline. Introduction to Programming (in C++) Introduction. First program in C++ Programming examples

Programming Languages

What are compilers? A Compiler

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

CS 3360 Design and Implementation of Programming Languages. Exam 1

Crafting a Compiler with C (II) Compiler V. S. Interpreter

CS 3360 Design and Implementation of Programming Languages. Exam 1

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

Chapter 2. Evolution of the Major Programming Languages

1. In waterfall model, output of one phase is input to next phase. True or false.

Low-Level Languages. Computer Programs and Programming Languages

SOFTWARE ARCHITECTURE 6. LISP

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

1DL321: Kompilatorteknik I (Compiler Design 1)

IA010: Principles of Programming Languages

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

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

Imperative Programming

MIDTERM EXAMINATION - CS130 - Spring 2005

Chapter 7. - FORTRAN I control statements were based directly on IBM 704 hardware

Introduction to Scientific Computing Languages

Comp 333: Concepts of Programming Languages Fall 2016

SCAN: Computer Science - second year. Christian Wolf

Introduction to Scientific Computing Languages

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

St. MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

Compiler Design. Dr. Chengwei Lei CEECS California State University, Bakersfield

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing

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

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Introduction to Java Programming

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

Introduction to Programming Languages and Compilers. CS164 11:00-12:30 TT 10 Evans. UPRM ICOM 4029 (Adapted from: Prof. Necula UCB CS 164)

Introduction to Programming Languages. CSE 307 Principles of Programming Languages Stony Brook University

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

Introduction to JAVA Programming Language

NOTE: Answer ANY FOUR of the following 6 sections:

Chapter 2 Operating-System Structures

Program Abstractions, Language Paradigms. CS152. Chris Pollett. Aug. 27, 2008.

Hi! My name is Sorin. Programming Languages. Why study PL? (discussion) Why study PL? Course Goals. CSE 130 : Fall 2013

Programming Languages

Chapter 1: Why Program? Computers and Programming. Why Program?

Chapter 2. Evolution of the Major Programming Languages ISBN

Chapter 7. Expressions and Assignment Statements

Transcription:

Chapter One Preliminaries, including Why study PL concepts? Programming domains PL evaluation criteria What influences PL design? Tradeoffs faced by programming languages Implementation methods Programming environments Copyright 1998 by Addison Wesley Longman, Inc. 1 Why study Programming Language Concepts? Increased capacity to express programming concepts Improved background for choosing appropriate languages Increased ability to learn new languages Understanding the significance of implementation Increased ability to design new languages Overall advancement of computing Copyright 1998 by Addison Wesley Longman, Inc. 2 Programming Domains Language Evaluation Criteria Scientific applications Business applications Artificial intelligence Systems programming Scripting languages Special purpose languages Readability Writability Reliability Cost Etc Copyright 1998 by Addison Wesley Longman, Inc. 3 Copyright 1998 by Addison Wesley Longman, Inc. 4

Evaluation Criteria: Readability How is it for one to read and understand programs written in the PL? Arguably the most important criterion! Factors effecting readability include: Overall simplicity» Too many features is bad as is a multiplicity of features Orthogonality» Makes the language easy to learn and read» Meaning is context independent Control statements Data type and structures Syntax considerations Copyright 1998 by Addison Wesley Longman, Inc. 5 Evaluation Criteria: Writability How easy is it to write programs in the language? Factors effecting writability: Simplicity and orthogonality Support for abstraction Expressivity Fit for the domain and problem Copyright 1998 by Addison Wesley Longman, Inc. 6 Evaluation Criteria: Reliability Factors: - Type checking - Exception handling - Aliasing - Readability and writability Copyright 1998 by Addison Wesley Longman, Inc. 7 Evaluation Criteria: Cost Categories: Programmer training Software creation Compilation Execution Compiler cost Poor reliability Maintenance Copyright 1998 by Addison Wesley Longman, Inc. 8

Evaluation Criteria: others Portability Generality Well-definedness Etc Copyright 1998 by Addison Wesley Longman, Inc. 9 Language Design Influences Computer architecture - We use imperative languages, at least in part, because we use von Neumann machines - John von Neuman is generally considered to be the inventor of the "stored program" machines - the class to which most of today's computers belong. - CPU+memory which contains both program and data - Focus on moving data and program instructions between registers in CPU to memory locations Copyright 1998 by Addison Wesley Longman, Inc. 10 Language Design Influences: Programming methodologies 50s and early 60s: Simple applications; worry about machine efficiency Late 60s: People efficiency became important; readability, better control structures. maintainability Late 70s: Data abstraction Middle 80s: Object-oriented programming 95-today: distributed programs, the web Language Categories The big four: Imperative or procedural (e.g., Fortran, C) Functional (e.g., Lisp, ML) Rule based (e.g. Prolog) Object-oriented (e.g. Smalltalk, Java) Others: Scripting (e.g., Perl, Tcl/Tk) Constraint (e.g., Eclipse) Copyright 1998 by Addison Wesley Longman, Inc. 11 Copyright 1998 by Addison Wesley Longman, Inc. 12

Language Design Trade-offs Reliability versus cost of execution Ada, unlike C, checks all array indices to ensure proper range. Writability versus readability (2 = 0 +.= T o. T) / T <- in is an APL one liner that produces a list of the prime numbers from 1 to N inclusive. Flexibility versus safety C, unlike Java, allows one to do arithmetic on pointers. Implementation methods Direct execution by hardware E.g., machine language Compilation to another language e.g., C Interpretation Direct execution by software E.g., csh, Lisp (traditionally) Hybrid Compilation to another language (aka bytecode) which is then interpreted e.g., Java, Perl Copyright 1998 by Addison Wesley Longman, Inc. 13 Copyright 1998 by Addison Wesley Longman, Inc. 14 Implementation issues Complexity of compiler/interpreter Speed of translation Speed of execution Portability of translated code Compactness of translated code Debugging ease compile hybrid interpret Copyright 1998 by Addison Wesley Longman, Inc. 15 Programming Environments The collection of tools used in software development, often including an integrated editor, debugger, compiler, collaboration tool, etc. Examples: UNIX -- Operating system with tool collection EMACS a highly programmable text editor Borland C++ -- A PC environment for C and C++ Smalltalk -- A language processor/environment Microsoft Visual C++ -- A large, complex visual environment Your favorite Java environment: Jbuilder, J++, Copyright 1998 by Addison Wesley Longman, Inc. 16

Summary Copyright 1998 by Addison Wesley Longman, Inc. 17