Programming Language Design Issues Programming Languages – Principles and Practice by Kenneth C Louden.

Slides:



Advertisements
Similar presentations
Introduction to Programming Languages Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Advertisements

Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
CSI 3125, Preliminaries, page 1 Programming languages and the process of programming –Programming means more than coding. –Why study programming languages?
Chapter 1: Preliminaries
C. Varela; Adapted w/permission from S. Haridi and P. Van Roy1 Declarative Computation Model Defining practical programming languages Carlos Varela RPI.
PLLab, NTHU Cs2403 Programming Languages Implementation Issues Cs2403 Programming Language Spring 2005 Kun-Yuan Hsieh.
The Analytical Engine Module 6 Program Translation.
Reasons to study concepts of PL
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
CS 354 Overview. Copyright © 2007 Addison-Wesley. All rights reserved. 1–2 Course Topics What is a programming language? What features do programming.
Programming Languages Structure
Chapter 16 Programming and Languages: Telling the Computer What to Do.
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
Chapter 3 Louden1 Chapter 3 - Language Design Principles Programming Languages: Principles and Practice, 2nd Ed. Kenneth C. Louden.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Concepts of Programming Languages Chapter 1.
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
Languages and Compilers (SProg og Oversættere) Bent Thomsen Department of Computer Science Aalborg University.
Introduction to High-Level Language Programming
PROGRAMMING LANGUAGES The Study of Programming Languages.
Overview. Copyright © 2006 The McGraw-Hill Companies, Inc. Chapter 1 Overview A good programming language is a conceptual universe for thinking about.
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
The Role of Programming Languages Chapter 1: Programming Languages: Concepts and Constructs by Ravi Sethi.
COMP313A Programming Languages More Overview. Language Implementation Language definition –syntax, semantics Language translation.
CS 363 Comparative Programming Languages
Gary MarsdenSlide 1University of Cape Town Principles of programming language design Gary Marsden Semester 2 – 2001.
Chapter 1 - Introduction
1 CSC 533: Organization of Programming Languages Spring 2010 See online syllabus at: Course goals:  understand issues in designing,
1 Programming Languages Marjan Sirjani Course web site:
CS 326 Programming Languages, Concepts and Implementation Instructor: Mircea Nicolescu Lecture 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Programming Languages Design Considerations (Qualities) Readability –Simplicity and Clarity –Orthogonality –Control Statements –Data Types and Structures.
ISBN CS 354 Preliminaries. Copyright © 2006 Addison-Wesley. All rights reserved.1-2 Course Topics What is a programming language? What features.
Programming Language 1. Programming language A programming language is a machine-readable artificial language designed to express computations that can.
Programming Domains 1.Scientific Applications Typically, scientific applications have simple data structures but require large numbers of floating-point.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
Chapter 3 - Language Design Principles
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
Computer Programming CONTENTS Introduction to Operating Systems Introduction to programming languages Introduction to perl programming language Programming.
Programming Languages
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
CSI 3125, Preliminaries, page 1 Preliminaries Programming languages and the process of programming. Criteria for the design and evaluation of programming.
CONCEPTS OF PROGRAMMING LANGUAGES
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
CSC141 Introduction to Computer Programming Programming Language.
Software Engineering Algorithms, Compilers, & Lifecycle.
FG Group -Afrilia BP -Liana F.B.I -Maulidatun Nisa -Riza Amini F.
Programming Language Paradigms ITSK2314 Lecture 3.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Computer Language
Introduction to programming languages, Algorithms & flowcharts
Introduction to programming languages, Algorithms & flowcharts
PROGRAMMING LANGUAGES
Introduction of Programming Languages
Chapter 1 Reasons to study concepts of PLs Programming Domains
1.1 Reasons to study concepts of PLs
Chapter 1 Preliminaries.
Introduction to programming languages, Algorithms & flowcharts
CS 3304 Comparative Languages Fall 2011
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
Programming Languages 2nd edition Tucker and Noonan
Principles of Programming Languages
Programming Languages, Preliminaries, History & Evolution
Reasons To Study Programming Languages
Presentation transcript:

Programming Language Design Issues Programming Languages – Principles and Practice by Kenneth C Louden

Programming Language Generations First Generation: Assembly language Second Generation: Unstructured high-level Languages e.g. Fortran Third Generation: Structured high-level languages e.g. Pascal, C, C++, Ada Fourth Generation: Application-specific languages for building database-oriented systems Fifth Generation: Very high-level languages, especially logic programming languages and other declarative languages. e.g. Prolog

Imperative versus Declarative Languages Imperative programming ◦ Comprises a sequence of commands imperatives Declarative programming ◦ Declare what results we want and leave the programming language to figure out how to produce them Declarative = “What” Imperative = “How”

Computational Paradigms Imperative/procedural Object-oriented Functional Logic

What Makes a Good language? Page 57 Louden Human criteria ◦ Learnability: Is language easy to learn and remember ◦ Writable: Easy to write correct programs ◦ Readable: Easy to understand programs ◦ Maintainable: Easy to change programs

What Makes a Good Language… Computer Criteria ◦ Implementable: Can language be implemented ◦ Efficient: Are programs translated and executed fast enough ◦ Portable: Is language available on most computers?

Learnability Simplicity. ◦ Simple syntax and semantics. Familiarity. ◦ Should use standard notations whenever possible. Uniformity. ◦ Language constructs that are similar should look and behave similarly. ◦ Constructs that are different should look different. Design goals for making languages easier to learn and remember:

Learnability… Orthogonality ◦ Language constructs can be combined in any meaningful way and should not interact in unexpected ways. Generality ◦ Have one general construct rather than several specific ones. Avoid restricting the ways constructs can be used. Preciseness ◦ Is the language precisely defined? ◦ ANSI/ISO. ◦ Does it have a formal semantics? Validation suites?

Writability Expressiveness ◦ Allows programs to be written in the most natural way. E.g. Build up high-level abstractions Error prevention ◦ Language makes some kinds of errors impossible Error Detection ◦ Language allows errors to be found and reported. E.g. array bounds checking, arithmetic overflow Language design goals for writability include:

Readability/Understandability Expressiveness ◦ Can also improve readability if the programmer has used it wisely Document support ◦ Essential for understanding large programs Language Environment ◦ e.g. browsers, cross-reference tools, pretty printers, debuggers Most of the learnability design goals help readabilty:

Maintainability Machine Independence ◦ Ban or isolate machine-specific features Modularity ◦ Good modularity constructs allow one part of a program to be changed without impacting other parts In addition to the readability and writability design goals, design goals that improve readability include: