CS 3304 Comparative Languages Fall 2011

Slides:



Advertisements
Similar presentations
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Advertisements

Chapter 1: Preliminaries
PLLab, NTHU Cs2403 Programming Languages Implementation Issues Cs2403 Programming Language Spring 2005 Kun-Yuan Hsieh.
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
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
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.
ISBN Chapter 1 Preliminaries. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
Programming Language Concepts
Chapter 1 Preliminaries. Copyright © 2012 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of Programming Languages.
CS 355 – Programming Languages
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
CS 363 Comparative Programming Languages
CS 330 Programming Languages 09 / 04 / 2008 Instructor: Michael Eckmann.
Chapter 1 Preliminaries CS Concepts of Programming Languages.
Programming Languages Summer
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.
ICS 313 Fundamentals of Programming Languages Instructor: Abdul Wahid Wali Lecturer, CSSE, UoH
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.
ISBN Chapter 1 Preliminaries. Copyright © 2015 Pearson. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of Programming.
ISBN Chapter 1 Preliminaries. Copyright © 2009 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
CSCE 343 – Programming Language Concepts Welcome!.
Concepts of Programming Languages
Chapter 1 Preliminaries.
Concepts of Programming Languages
CSCI 3370: Principles of Programming Languages Introduction
Why study programming languages?
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
PROGRAMMING LANGUAGES
Chapter 1 Reasons to study concepts of PLs Programming Domains
1.1 Reasons to study concepts of PLs
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Introduction.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
CS 3304 Comparative Languages Fall 2011
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Programming Languages, Preliminaries, History & Evolution
Reasons To Study Programming Languages
Chapter 1 Preliminaries.
Lecture 2 Concepts of Programming Languages
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Presentation transcript:

CS 3304 Comparative Languages Fall 2011 Stephen H. Edwards Torg 3160A: M/F 11-12, W 9-10 edwards@cs.vt.edu http://moodle.cs.vt.edu/

 Chapter 1: Introduction  What Will You Learn? Survey of programming paradigms, including representative languages Language definition and description methods Overview of features across all languages Implementation strategies  Chapter 1: Introduction 

 Chapter 1: Introduction  Semester Outline Part I: Paradigms and Description Introduction and Language Evaluation Programming Language Paradigms History and Evolution Imperative, Functional, Logic, Object-Oriented Syntax and Semantics  Chapter 1: Introduction 

Semester Outline (cont.) Part II: Features and Implementation Names and Typing Data Types Expressions and Assignment Control Structures Subprograms Abstract Data Types (ADTs)  Chapter 1: Introduction 

Reasons to Study Concepts of PLs Why bother with this stuff anyway? 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  Chapter 1: Introduction 

Chapter 1: Introduction Language evaluation criteria Main implementation methods Trade-offs Influences on language design Programming paradigms  Chapter 1: Introduction 

 Chapter 1: Introduction  Evaluating A Language 4 main criteria: Readability Writability Reliability Cost Are there others?  Chapter 1: Introduction 

Evaluation: Readability The most important criterion Overall simplicity Too many features is bad Multiplicity of features is bad Orthogonality Makes the language easy to learn and read Meaning is context independent Control statements Data type and structures Syntax considerations  Chapter 1: Introduction 

Evaluation: Writability Factors: Simplicity and orthogonality Support for abstraction Expressivity  Chapter 1: Introduction 

Evaluation: Reliability Factors: Type checking Exception handling Aliasing Readability and writability  Chapter 1: Introduction 

 Chapter 1: Introduction  Evaluation: Cost Categories Programmer training Software creation Compilation Execution Compiler cost Poor reliability Maintenance Other criteria: portability, generality, well-definedness  Chapter 1: Introduction 

Implementation Methods Compilation Translate high-level program to machine code Slow translation Fast execution Pure interpretation No translation Slow execution Becoming rare Hybrid implementation systems Small translation cost Medium execution speed  Chapter 1: Introduction 

Language Design Trade-offs Reliability versus cost of execution Writability versus readability Flexibility versus safety  Chapter 1: Introduction 

Primary influences on language design 1. Computer architecture We use imperative languages, at least in part, because we use von Neumann machines 2. Programming methodologies 1950s and early 1960s: Simple applications; worry about machine efficiency Late 1960s: People efficiency became important; readability, better control structures Late 1970s: Data abstraction Middle 1980s: Object-oriented programming  Chapter 1: Introduction 

 Chapter 1: Introduction  Language Categories Programming paradigms: Procedural/Imperative Functional/Applicative Logic Object-oriented (closely related to imperative) Problem-oriented/application-specific  Chapter 1: Introduction 