CS 326 Programming Languages, Concepts and Implementation

Slides:



Advertisements
Similar presentations
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Advertisements

Introduction to Programming Languages Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Chapter 1: Preliminaries
you admittance to the “show”.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
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.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
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.
PZ01BX Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01BX - Standardization, Internationalization 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.
Organization of Programming Languages (CSE452)
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Concepts of Programming Languages Chapter 1.
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)
Overview. Copyright © 2006 The McGraw-Hill Companies, Inc. Chapter 1 Overview A good programming language is a conceptual universe for thinking about.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
CS 355 – Programming Languages
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
Programming Languages and Design Lecture 1 Introduction to Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern University,
Chapter 1. Introduction.
CS 363 Comparative Programming Languages
CS 330 Programming Languages 09 / 04 / 2008 Instructor: Michael Eckmann.
Programming Languages Summer
COP 4020 Programming Langauges Dr. Roy Levow –Office hours: M 5-6:30 – –
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.
Chapter 6 Programming Languages (1) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
1 Programming Languages Fundamentals Cao Hoaøng Truï Khoa Coâng Ngheä Thoâng Tin Ñaïi Hoïc Baùch Khoa TP. HCM.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
Introduction 1 강의 내용 및 방법  접근방법 –Lambda Calculus, Proof of Correctness 은 강의에서 제 외  원하는 학생에게만 특별히 따로 강의함  리포트 –2 주일에 프로그램 1 개 정도, term project 는 없음 –
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
 Computer Languages Computer Languages  Machine Language Machine Language  Assembly Language Assembly Language  High Level Language High Level Language.
Analysis of Programming Languages (2). 2 LANGUAGE DESIGN CONSTRAINTS  Computer architecture  Technical setting  Standards  Legacy systems.
Programming Languages
Textbook C for Scientists and Engineers © Prentice Hall 1997 Available at NUS CO-OP at S$35.10.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
Software Engineering Algorithms, Compilers, & Lifecycle.
1 Standardization, Internationalization Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section.
The College of Saint Rose CIS 433 – Programming Languages David Goldschmidt, Ph.D. from Concepts of Programming Languages, 9th edition by Robert W. Sebesta,
Concepts of Programming Languages
Concepts of Programming Languages
Why study programming languages?
PROGRAMMING LANGUAGES
CS 326 Programming Languages, Concepts and Implementation
Programming Language Design Concepts
Chapter 1 Reasons to study concepts of PLs Programming Domains
课程名 编译原理 Compiling Techniques
1.1 Reasons to study concepts of PLs
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Programming Languages 2nd edition Tucker and Noonan
High Level Programming Languages
Principles of Programming Languages
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
강의 내용 및 방법 작년 강의 결과에 대한 설명 올해 접근방법 리포트 시험
School of Computer & Information Engineering,
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

CS 326 Programming Languages, Concepts and Implementation Instructor: Mircea Nicolescu Lecture 1 Good afternoon and thank you everyone for coming. My talk today will describe the research I performed at the IRIS at USC, the object of this work being to build a computational framework that addresses the problem of motion analysis and interpretation.

Contacts Instructor: Dr. Mircea Nicolescu Class web page: E-mail: mircea@cse.unr.edu Office: SEM 232 Office Hours: Thursday: 1:00pm-4:00pm Class web page: http://www.cse.unr.edu/~mircea/Teaching/cs326

Assignments and Exams Homework assignments (40%) Midterm exam (25%) Written exercises and small programs More complex programs, in Scheme, Prolog, Java or ML Midterm exam (25%) Closed book, closed notes Final exam (30%) Comprehensive, although focused on the second half of the course Attendance and class participation (5%)

Late Submission Policy No late assignments will be accepted Warning: Dates in the calendar are closer than they appear!

Required Textbook Programming Language Pragmatics, by Michael L. Scott, Morgan Kaufmann Press, 2009.

What Are We Studying? Programming languages characterized by: Syntax – what a program looks like Semantics – what a program means Implementation – how a program executes Trade-offs between design (specifying syntax and semantics) and implementation Will focus on these concepts, illustrated by various languages, and not on the languages themselves

Why Study Programming Languages? Help you choose a language Systems programming → C, Modula-3 Scientific computations → Fortran, Ada Embedded systems → C, Ada, Modula-2 Symbolic computing → Lisp, Scheme, ML Make it easier to learn new languages Some languages are similar Some concepts are even more similar: iteration, recursion, abstraction

Why Study Programming Languages? Make better use of the languages you know Improve ability to develop effective algorithms Understand obscure features Understand implementation costs Simulate useful features in languages that do not support them Prepare for further study in language design and implementation (compilers) Help understand other system software (assemblers, linkers, debuggers)

Historic Perspective When did the earliest high-level languages appear? Continuous evolution since the 1950s (Fortran, Cobol) When the Department of Defense did a survey as part of its efforts to develop Ada in the 1970s, how many languages did it find in use? Over 500 languages were being used in various defense projects

Architecture Evolution 1950s – Large expensive mainframe computers ran single programs (Batch processing) 1960s – Interactive programming (time-sharing) on mainframes 1970s – Development of microcomputers. Early work on windows, icons, and PCs at XEROX PARC 1980s – Personal computer: IBM PC and Apple Macintosh. Use of windows, icons and mouse 1990s – Client-server computing - networking, the Internet, the World Wide Web

Spectrum of Languages Imperative (“how should the computer do it?”) Von Neumann: Fortran, Basic, Pascal, C Computing via “side-effects” (modification of variables) Object-oriented: Smalltalk, Eiffel, C++, Java Interactions between objects, each having an internal state and functions which manage that state Declarative (“what should the computer do?”) Functional: Lisp, Scheme, ML, Haskell Program ↔ application of functions from inputs to outputs Inspired from lambda-calculus (Alonzo Church) Logic, constraint-based: Prolog Specify constraints / relationships, find values that satisfy them Based on propositional logic

Why Are There So Many Languages? Evolution We have learned better ways of doing things over time Socio-economic factors Proprietary interests, commercial advantage Special purposes Special hardware Personal preference

Attributes of a Good Language Clarity and simplicity Both are desirable, but in conjunction Using a very simple language in an application for which it is not well suited may produce lack of clarity Orthogonality Every combination of features is meaningful Example: expressions and statements are not orthogonal in C, but are in Pascal Naturalness The program structure reflects the logical structure of the algorithm

Attributes of a Good Language Support for abstraction program data reflects the problem being solved Ease of program verification Cost of use: Cost of program creation Cost of program translation Cost of program execution Cost of program maintenance

What Makes a Language Successful? Easy to learn Basic, Pascal Easy to express things “Powerful” Easy to use once known C, Lisp Easy to implement Small machines, limited resources Basic, Forth

What Makes a Language Successful? Efficient compilers Generate small / fast code Fortran Backing of a powerful sponsor Ada, Visual Basic Wide dissemination at a minimal cost Pascal, Java Inertia Fortran, Cobol

Standardization Is i = 1 && 2 + 3 | 4; legal in C? What is assigned to i if it is? 3 ways to answer this: Read language manual (Problem: Can you find one?) Read language standard (Problem: Have you ever seen it?) Write a program to see what happens. (Easy to do!) Most do the last, but different compilers may give different answers

Standardization Language standards defined by: ISO - International Standards Organization IEEE - Institute of Electrical and Electronics Engineers ANSI - American National Standards Institute Contentious features omitted to gain consensus Nothing is enforced

Standardization When to standardize a language: Other languages: If too late – many incompatible versions already exist (Fortran in 1960) If too early – no experience with language (Ada in 1983 had no running compilers yet) Just right – probably Pascal in 1983, although it is rapidly becoming a dead language Other languages: C in 1988 LISP in 1990 – way too late De facto standards: ML – one major implementation: SML Smalltalk, Prolog – none

Standardization Internationalization: How many bits to use for characters Additional letters (German ä, French é) Other alphabets (Cyrillic, Greek, Arabic, Chinese) Organization that studies this problem cannot even decide between internationalization and internationalisation for its own name Other internationali*ation issues: Dates, times, daylight saving time Currency

Readings Chapter 1