CSCI 3136 Principles of Programming Languages
|
|
- Cory Hutchinson
- 6 years ago
- Views:
Transcription
1 CSCI 3136 Principles of Programming Languages Summer 2013 Faculty of Computer Science Dalhousie University 1 / 100
2 CSCI 3136 Principles of Programming Languages Summer 2013 Aminul Islam Faculty of Computer Science Dalhousie University 2 / 100
3 Basic Course Information 3 / 100
4 Basic Course Information Web: 4 / 100
5 Basic Course Information Web: Class: Mon & Wed 12:05-13:25 at CS / 100
6 Basic Course Information Web: Class: Mon & Wed 12:05-13:25 at CS 127 Lab: Fri 12:05-13:25 at CS Lab 3 6 / 100
7 Basic Course Information Web: Class: Mon & Wed 12:05-13:25 at CS 127 Lab: Fri 12:05-13:25 at CS Lab 3 Instructor: Aminul Islam (islam@cs.dal.ca) Office: Room # 437, The Goldberg CS Building 7 / 100
8 Basic Course Information Web: Class: Mon & Wed 12:05-13:25 at CS 127 Lab: Fri 12:05-13:25 at CS Lab 3 Instructor: Aminul Islam (islam@cs.dal.ca) Office: Room # 437, The Goldberg CS Building Office Hour: Fri 11:00-12:00 8 / 100
9 Textbooks and Other Material 9 / 100
10 Textbooks and Other Material Class slides are available online 10 / 100
11 Textbooks and Other Material Class slides are available online Recommended text: Michael L. Scott. Programming Language Pragmatics, 3rd edition / 100
12 Textbooks and Other Material Class slides are available online Recommended text: Michael L. Scott. Programming Language Pragmatics, 3rd edition 2009 More relevant books listed on the course web site (some of them are available on-line) 12 / 100
13 Textbooks and Other Material Class slides are available online Recommended text: Michael L. Scott. Programming Language Pragmatics, 3rd edition 2009 More relevant books listed on the course web site (some of them are available on-line) Other links can be found at course web site 13 / 100
14 Evaluation and Plagiarism Policy Evaluation Plagiarism policy 14 / 100
15 Evaluation Evaluation and Plagiarism Policy 40% assignments (Five) Plagiarism policy 15 / 100
16 Evaluation and Plagiarism Policy Evaluation 40% assignments (Five) 20% midterm exam Plagiarism policy 16 / 100
17 Evaluation and Plagiarism Policy Evaluation 40% assignments (Five) 20% midterm exam 40% final exam Plagiarism policy 17 / 100
18 Evaluation and Plagiarism Policy Evaluation 40% assignments (Five) 20% midterm exam 40% final exam Plagiarism policy Assignments and exams must be done individually 18 / 100
19 Evaluation and Plagiarism Policy Evaluation 40% assignments (Five) 20% midterm exam 40% final exam Plagiarism policy Assignments and exams must be done individually Any use of reference material (book, web,... ) must be acknowledged 19 / 100
20 Evaluation and Plagiarism Policy Evaluation 40% assignments (Five) 20% midterm exam 40% final exam Plagiarism policy Assignments and exams must be done individually Any use of reference material (book, web,... ) must be acknowledged According to Faculty policy, any suspected case of plagiarism is referred to the Academic Integrity Officer and may be forwarded to the Senate Discipline Committee. Details at http: // 20 / 100
21 How is This Course Useful? 21 / 100
22 How is This Course Useful? Help choose the most appropriate language for the job, evaluate trade-offs 22 / 100
23 How is This Course Useful? Help choose the most appropriate language for the job, evaluate trade-offs Make it easier to learn new languages 23 / 100
24 How is This Course Useful? Help choose the most appropriate language for the job, evaluate trade-offs Make it easier to learn new languages Learn to simulate useful features in languages that lack them 24 / 100
25 How is This Course Useful? Help choose the most appropriate language for the job, evaluate trade-offs Make it easier to learn new languages Learn to simulate useful features in languages that lack them? 25 / 100
26 Course Outline Contents Introduction Lexical analysis and automata theory Syntactic Analysis and Context-Free Grammars Semantic analysis Names, scopes, and binding Control flow Data types and object-oriented programming Specialized topics Tutorials Perl Scheme/Lisp Prolog 26 / 100
27 Course Outline Contents Introduction Programming language, History, Paradigms Implementation Lexical analysis and automata theory Syntactic Analysis and Context-Free Grammars Semantic analysis Names, scopes, and binding Control flow Data types and object-oriented programming Specialized topics Tutorials Perl Scheme/Lisp Prolog 27 / 100
28 We know Something in Common 28 / 100
29 We know Something in Common C 29 / 100
30 We know Something in Common C C++ 30 / 100
31 We know Something in Common C C++ C# 31 / 100
32 We know Something in Common C C++ C# Java 32 / 100
33 We know Something in Common C C++ C# Java JavaScript 33 / 100
34 We know Something in Common C C++ C# Java JavaScript Perl 34 / 100
35 We know Something in Common C C++ C# Java JavaScript Perl PHP 35 / 100
36 We know Something in Common C C++ C# Java JavaScript Perl PHP Python 36 / 100
37 We know Something in Common C C++ C# Java JavaScript Perl PHP Python Ruby 37 / 100
38 We know Something in Common C C++ C# Java JavaScript Perl PHP Python Ruby SQL 38 / 100
39 We know Something in Common C C++ C# Java JavaScript Perl PHP Python Ruby SQL According to langpop.com, 10 most cited programming languages 39 / 100
40 Principles of Programming Language 40 / 100
41 Principles of Programming Language? 41 / 100
42 Principles of Programming Language? Human Language Programming Language 42 / 100
43 Principles of Programming Language? Human Language Vocabulary Programming Language 43 / 100
44 Principles of Programming Language? Human Language Vocabulary Programming Language Key words 44 / 100
45 Principles of Programming Language? Human Language Programming Language Grammar 45 / 100
46 Principles of Programming Language? Human Language Programming Language Grammar Grammar 46 / 100
47 Principles of Programming Language? Human Language Programming Language Proper Name/Noun (e.g., Gosling is the...) 47 / 100
48 Principles of Programming Language? Human Language Programming Language Proper Name/Noun (e.g., Gosling is the...) Variable Name (e.g., int x = 3;) 48 / 100
49 Principles of Programming Language? Human Language Programming Language / 100
50 Principles of Programming Language? Human Language Programming Language / 100
51 Principles of Programming Language? Human Language Vocabulary Grammar Proper Name/Noun (e.g., Gosling is the...)... Programming Language Key words Grammar Variable Name (e.g., int x = 3;) / 100
52 Difference between Human Language and Programming Language Colorless green ideas sleep furiously. John is a married bachelor. 52 / 100
53 Brief history of Programming Languages 53 / 100
54 Machine language Brief history of Programming Languages 54 / 100
55 Machine language Brief history of Programming Languages Hello world example in Machine language / 100
56 Assembly language Brief history of Programming Languages 56 / 100
57 Brief history of Programming Languages Assembly language Hello world example in Assembly language for the IBM-PC (i386) dosseg.model small.stack 100h.data hello_message db Hello, World!,0dh,0ah, $.code main proc mov mov ds,ax mov ah,9 mov dx,offset hello_message int 21h mov ax,4c00h int 21h main endp 57 end / 100 main
58 Brief history of Programming Languages FORTRAN (1957), COBOL (1959), BASIC (1964), C (1972) 58 / 100
59 Brief history of Programming Languages FORTRAN (1957), COBOL (1959), BASIC (1964), C (1972) Hello world example in FORTRAN program helloworld write (*,*) Hello, world. end program helloworld 59 / 100
60 Brief history of Programming Languages LISP (1959) Scheme (1975), Common Lisp (1984) 60 / 100
61 Brief history of Programming Languages Hello world example in LISP LISP (1959) Scheme (1975), Common Lisp (1984) (DEFUN HELLO-WORLD () (PRINT (LIST HELLO WORLD))) 61 / 100
62 Brief history of Programming Languages Prolog (1973) 62 / 100
63 Prolog (1973) Brief history of Programming Languages Hello world example in Prolog?- write( Hello world. ), nl. Hello world. true.?- 63 / 100
64 Brief history of Programming Languages Simula (1967), Smalltalk (1980), C++ (1985), Java (1995), C# (2002) 64 / 100
65 Brief history of Programming Languages Hello world example in Java class HelloWorldApp { public static void main(string[] args){ System.out.println("Hello World!"); } } Simula (1967), Smalltalk (1980), C++ (1985), Java (1995), C# (2002) 65 / 100
66 Brief history of Programming Languages Perl (1987), Python (1990s), JavaScript (1995), PHP (1995), 66 / 100
67 Programming Paradigms 67 / 100
68 Programming Paradigms Imperative programming 68 / 100
69 Programming Paradigms Imperative programming assemblers, FORTRAN, BASIC, COBOL 69 / 100
70 Programming Paradigms Imperative programming assemblers, FORTRAN, BASIC, COBOL Structured programming (ALGOL, Pascal, C) 70 / 100
71 Programming Paradigms Imperative programming assemblers, FORTRAN, BASIC, COBOL Structured programming (ALGOL, Pascal, C) Object-oriented programming 71 / 100
72 Programming Paradigms Imperative programming assemblers, FORTRAN, BASIC, COBOL Structured programming (ALGOL, Pascal, C) Object-oriented programming Smalltalk, C++, Java 72 / 100
73 Programming Paradigms Imperative programming assemblers, FORTRAN, BASIC, COBOL Structured programming (ALGOL, Pascal, C) Object-oriented programming Smalltalk, C++, Java Functional programming 73 / 100
74 Programming Paradigms Imperative programming assemblers, FORTRAN, BASIC, COBOL Structured programming (ALGOL, Pascal, C) Object-oriented programming Smalltalk, C++, Java Functional programming Lisp, Scheme, ML, Haskell 74 / 100
75 Programming Paradigms Imperative programming assemblers, FORTRAN, BASIC, COBOL Structured programming (ALGOL, Pascal, C) Object-oriented programming Smalltalk, C++, Java Functional programming Lisp, Scheme, ML, Haskell Logic programming 75 / 100
76 Programming Paradigms Imperative programming assemblers, FORTRAN, BASIC, COBOL Structured programming (ALGOL, Pascal, C) Object-oriented programming Smalltalk, C++, Java Functional programming Lisp, Scheme, ML, Haskell Logic programming Prolog, VisiCalc 76 / 100
77 Programming Paradigms Imperative programming assemblers, FORTRAN, BASIC, COBOL Structured programming (ALGOL, Pascal, C) Object-oriented programming Smalltalk, C++, Java Functional programming Lisp, Scheme, ML, Haskell Logic programming Prolog, VisiCalc 77 / 100
78 78 / 100
79 Why So Many Programming Languages? 79 / 100
80 Why So Many Programming Languages? Evolution 80 / 100
81 Why So Many Programming Languages? Evolution Special purpose 81 / 100
82 Why So Many Programming Languages? Evolution Special purpose Personal preference 82 / 100
83 Why So Many Programming Languages? Evolution Special purpose Personal preference What makes a programming language successful? 83 / 100
84 Why So Many Programming Languages? Evolution Special purpose Personal preference What makes a programming language successful? Expressive power 84 / 100
85 Why So Many Programming Languages? Evolution Special purpose Personal preference What makes a programming language successful? Expressive power Easy to learn 85 / 100
86 Why So Many Programming Languages? Evolution Special purpose Personal preference What makes a programming language successful? Expressive power Easy to learn Easy to implement 86 / 100
87 Why So Many Programming Languages? Evolution Special purpose Personal preference What makes a programming language successful? Expressive power Easy to learn Easy to implement Open-source 87 / 100
88 Why So Many Programming Languages? Evolution Special purpose Personal preference What makes a programming language successful? Expressive power Easy to learn Easy to implement Open-source Good compilers (e.g., FORTRAN) 88 / 100
89 Why So Many Programming Languages? Evolution Special purpose Personal preference What makes a programming language successful? Expressive power Easy to learn Easy to implement Open-source Good compilers (e.g., FORTRAN) Economics, patronage, inertia 89 / 100
90 Why So Many Programming Languages? Evolution Special purpose Personal preference What makes a programming language successful? Expressive power Easy to learn Easy to implement Open-source Good compilers (e.g., FORTRAN) Economics, patronage, inertia 90 / 100
91 {calculate greatest common divisor} program gcd(input, output); var i, j : integer; begin read(i, j); while i <> j do if i > j then i := i - j else j := j - i; writeln(i); end.
92 {calculate greatest common divisor} program gcd(input, output); var i, j : integer; begin read(i, j); while i <> j do if i > j then i := i - j else j := j - i; writeln(i); end.
93 {calculate greatest common divisor} program gcd(input, output); var i, j : integer; begin read(i, j); while i <> j do if i > j then i := i - j else j := j - i; writeln(i); end.
94 {calculate greatest common divisor} program gcd(input, output); var i, j : integer; begin read(i, j); while i <> j do if i > j then i := i - j else j := j - i; writeln(i); end.
95 {calculate greatest common divisor} program gcd(input, output); var i, j : integer; begin read(i, j); while i <> j do if i > j then i := i - j else j := j - i; writeln(i); end.
96 {calculate greatest common divisor} program gcd(input, output); var i, j : integer; begin read(i, j); while i <> j do if i > j then i := i - j else j := j - i; writeln(i); end.
97 {calculate greatest common divisor} program gcd(input, output); var i, j : integer; begin read(i, j); while i <> j do if i > j then i := i - j else j := j - i; writeln(i); end. Implementation 97 / 100
98 {calculate greatest common divisor} program gcd(input, output); var i, j : integer; begin read(i, j); while i <> j do if i > j then i := i - j else j := j - i; writeln(i); end. Compiler/ Interpreter Implementation 98 / 100
99 99 / 100
100 How is This Course Useful? Help choose the most appropriate language for the job, evaluate trade-offs Make it easier to learn new languages Learn to simulate useful features in languages that lack them? 100 / 100
INTRODUCTION PRINCIPLES OF PROGRAMMING LANGUAGES. Norbert Zeh Winter Dalhousie University 1/10
INTRODUCTION PRINCIPLES OF PROGRAMMING LANGUAGES Norbert Zeh Winter 2018 Dalhousie University 1/10 GOAL OF THIS COURSE 2/10 GOAL OF THIS COURSE Encourage you to become better programmers 2/10 GOAL OF THIS
More informationConcepts in Programming Languages
Concepts in Programming Languages Marcelo Fiore Computer Laboratory University of Cambridge 2012 2013 (Easter Term) 1 Practicalities Course web page: with lecture
More informationTopic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003.
Topic I Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapter 1 of Programming languages: Design and implementation (3RD EDITION)
More informationOrganization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?
Organization of Programming Languages (CSE452) Instructor: Dr. B. Cheng Fall 2004 1 Why are there so many programming languages? Evolution -- we've learned better ways of doing things over time Socio-economic
More informationCSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN
What languages do you know? CSC 326H1F, Programming Languages The usual suspects: C, C++, Java fine languages nearly the same Perhaps you've also learned some others? assembler Basic, Visual Basic, Turing,
More informationGeneral Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design
General Concepts Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design 1 Abstractions in Programming Languages Abstractions hide details that
More information8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES
CS-3304 Introduction In Text: Chapter 1 & 2 COURSE DESCRIPTION 2 What will you learn? Survey of programming paradigms, including representative languages Language definition and description methods Overview
More informationToday. An Animated Introduction to Programming. Prerequisites. Computer programming
Today 1 2 3 4 Computer programming What is this course about? We re making several assumptions about you as a student. In particular, we assume that you have: Never taken a programming course before. Have
More informationCS 3304 Comparative Languages. Lecture 1: Introduction
CS 3304 Comparative Languages Lecture 1: Introduction 17 January 2012 2012 Denis Gracanin Course Overview 2 Welcome What this course is about? What this course is not about? What will you learn? How will
More informationConcepts of Programming Languages
Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014
More informationPrinciples in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo
Principles in Programming: Orientation & Lecture 1 1 Course Objectives Introduce various subjects in computer science through puzzles and problems Most problems came from ICPC 2 Textbook Programming Challenges
More informationLECTURE 1. Overview and History
LECTURE 1 Overview and History COURSE OBJECTIVE Our ultimate objective in this course is to provide you with the knowledge and skills necessary to create a new programming language (at least theoretically).
More informationMIDTERM EXAMINATION - CS130 - Spring 2005
MIDTERM EAMINATION - CS130 - Spring 2005 Your full name: Your UCSD ID number: This exam is closed book and closed notes Total number of points in this exam: 231 + 25 extra credit This exam counts for 25%
More informationOutline. Introduction to Programming (in C++) Introduction. First program in C++ Programming examples
Outline Introduction to Programming (in C++) Introduction Programming examples Algorithms, programming languages and computer programs Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer
More informationWhy are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?
Chapter 1 :: Introduction Introduction Programming Language Pragmatics Michael L. Scott Why are there so many programming languages? evolution -- we've learned better ways of doing things over time socio-economic
More information! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented
Course Goal CMSC 330: Organization of Programming Languages Introduction Learn how programming languages work Broaden your language horizons! Different programming languages! Different language features
More informationSeminar in Programming Languages
Seminar in Programming Languages Shuly Wintner Fall 2010-11 Course web site: http://cs.haifa.ac.il/~shuly/teaching/10/plseminar/ Course Goals Programming Language Concepts A language is a conceptual universe
More informationCom S 541. Programming Languages I
Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR
More informationComp 333: Concepts of Programming Languages Fall 2016
Comp 333: Concepts of Programming Languages Fall 2016 Instructor: Professor Schwartz History Syntax and Semantics Compilers Language Constructs Names, Binding, Scoping, Data Types Expressions, Control
More informationCS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106
CS 565: Programming Languages Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 Administrivia Who am I? Course web page http://www.cs.purdue.edu/homes/peugster/cs565spring08/ Office hours By appointment Main
More informationLecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)
Lecture 09 Ada to Software Engineering Mr. Mubashir Ali Lecturer (Dept. of dr.mubashirali1@gmail.com 1 Summary of Previous Lecture 1. ALGOL 68 2. COBOL 60 3. PL/1 4. BASIC 5. Early Dynamic Languages 6.
More informationProgramming Languages, Summary CSC419; Odelia Schwartz
Programming Languages, Summary CSC419; Odelia Schwartz Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design
More informationWhy are there so many programming languages?
Chapter 1 :: Introduction Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier 1 Chapter01_ Introduction_4e - Tue November 21, 2017 Introduction Why are there so many
More informationCS 415 Midterm Exam Spring 2002
CS 415 Midterm Exam Spring 2002 Name KEY Email Address Student ID # Pledge: This exam is closed note, closed book. Good Luck! Score Fortran Algol 60 Compilation Names, Bindings, Scope Functional Programming
More informationCSc 520. Course Outline (Subject to change) Course Outline (Subject to change)... Principles of Programming Languages. Christian Collberg
Slide 0 2 Course Outline (Subject to change) This course will define, analyze and evaluate important concepts found in current programming languages. Its goals are to build an ability to evaluate and compare
More informationEarly computers (1940s) cost millions of dollars and were programmed in machine language. less error-prone method needed
Chapter 1 :: Programming Language Pragmatics Michael L. Scott Early computers (1940s) cost millions of dollars and were programmed in machine language machine s time more valuable than programmer s machine
More informationWhat is programming? Elements of Programming Languages. From machine code to programming languages. What is a programming language?
What is programming? Elements of Programming Languages Lecture 0: Introduction and Course Outline James Cheney University of Edinburgh September 18, 2017 Computers are deterministic machines, controlled
More informationLanguage Translation, History. CS152. Chris Pollett. Sep. 3, 2008.
Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008. Outline. Language Definition, Translation. History of Programming Languages. Language Definition. There are several different ways one
More informationOutline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current
PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY Dr. John Georgas, Northern Arizona University Copyright John Georgas All Rights Reserved Outline Current Programming languages Compiled and interpreted implementations
More informationProgrammiersprachen (Programming Languages)
2016-05-13 Preface Programmiersprachen (Programming Languages) coordinates: lecturer: web: usable for: requirements: No. 185.208, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/ps.html
More informationProgramming Languages
Chapter 1 :: Introduction Programming Language Pragmatics Michael L. Scott Programming Languages What programming languages can you name? Which do you know? 1 Introduction Why are there so many programming
More informationPrinciples in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo
Principles in Programming: Orientation & Lecture 1 1 Course Objectives Introduce various subjects in computer science through puzzles and problems Most problems came from ICPC 2 Introduction Instructor:
More informationProgramming Languages 2nd edition Tucker and Noonan"
Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "
More informationCS2303 C14 Systems Programming Concepts. Bob Kinicki
CS2303 C14 Concepts Bob Kinicki Survey and TA/SA s Pause to Look Backwards and Forwards Course Objectives Course Operation/Expectations Course Plan and Syllabus Systems Concepts Higher Level Language
More informationCS383 PROGRAMMING LANGUAGES. Kenny Q. Zhu Dept. of Computer Science Shanghai Jiao Tong University
CS383 PROGRAMMING LANGUAGES Kenny Q. Zhu Dept. of Computer Science Shanghai Jiao Tong University KENNY Q. ZHU Research Interests: Programming Languages Probabilistic Programming Data Processing Concurrency
More informationIA010: Principles of Programming Languages
IA010: Principles of Programming Languages Introduction and course organization Achim Blumensath blumens@fi.muni.cz Faculty of Informatics, Masaryk University, Brno Warm-up: A Quiz What does this program
More informationCS A331 Programming Language Concepts
CS A331 Programming Language Concepts Lecture 4 Programming Language Semantics and Code Generation February 3, 2014 Sam Siewert PLP Companion Materials CD-ROM is On-Line: http://booksite.elsevier.com/9780123745149/?isbn=978
More informationIn the hardware module, you saw the basic execution of a program Programs are written in specific languages Each language has it s strengths and
In the hardware module, you saw the basic execution of a program Programs are written in specific languages Each language has it s strengths and weaknesses, and own grammar and syntax We will take a high-
More informationCS 242. Fundamentals. Reading: See last slide
CS 242 Fundamentals Reading: See last slide Syntax and Semantics of Programs Syntax The symbols used to write a program Semantics The actions that occur when a program is executed Programming language
More informationCS 314 Principles of Programming Languages
CS 314 Principles of Programming Languages Lecture 15: Review and Functional Programming Zheng (Eddy) Zhang Rutgers University March 19, 2018 Class Information Midterm exam forum open in Sakai. HW4 and
More informationhttp://xkcd.com/224/ CS252 Programming Language Paradigms Prof. Tom Austin San José State University Fall 2014 What are some programming languages? Why are there so many? Different domains. Mobile devices
More informationSKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)
SKILL AREA 304: Review Programming Language Concept Computer Programming (YPG) 304.1 Demonstrate an Understanding of Basic of Programming Language 304.1.1 Explain the purpose of computer program 304.1.2
More informationCSCI.4430/6969 Programming Languages Lecture Notes
CSCI.4430/6969 Programming Languages Lecture Notes August 28, 2006 1 Brief History of Programming Languages Ada Augusta, the Countess of Lovelace, the daughter of the poet Lord Byron, is attributed as
More informationIntroduction to Engineering Using Robotics Experiments. Dr. Yinong Chen
Introduction to Engineering Using Robotics Experiments Dr. Yinong Chen Outline Historical Perspective Programming Language Generations Programming Language Paradigms Imperative Programming Paradigm Writing
More informationA Tour of Language Implementation
1 CSCE 314: Programming Languages Dr. Flemming Andersen A Tour of Language Implementation Programming is no minor feat. Prometheus Brings Fire by Heinrich Friedrich Füger. Image source: https://en.wikipedia.org/wiki/prometheus
More informationCS101 Introduction to Programming Languages and Compilers
CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights
More informationCSci 160 Computing Science I. Sarah Carruthers Fall 2017
CSci 160 Computing Science I Sarah Carruthers Fall 2017 Administrivia Lecture: Tues. & Thurs. 11:30-1:00, Tues. 4:00-5:00 Instructor: Sarah Carruthers (sarah.carruthers@viu.ca) Office Hours: Mon. 3-4PM,
More informationCS 102 Lecture 1. Syllabus, history, intro
CS 102 Lecture 1 Syllabus, history, intro Contact Info Instructor: Hannah Aizenman Email: haizenm00@ccny.cuny.edu Office: NAC 7/311 Office Hours: After class by appointment 2:00-4:00 T/Th Recitation Instructor:
More informationLecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?
Lecture 1 Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Welcome to ENGR 102 Syllabus review Your Time Expectations (in
More information! Broaden your language horizons. ! Study how languages are implemented. ! Study how languages are described / specified
Course Goal CMSC 330: Organization of Programming Languages Introduction Instructors: Mike Hicks, Chau-Wen Tseng TAs: Srividya Ramaswamy, Eylul Dogruel, Khoa Doan Learn how programming languages work!
More informationCOSC 2P90 Programming Languages & Object-Orientation
COSC 2P90 Programming Languages & Object-Orientation Hi! 1 Textbooks Main Text Comparative Programming Languages 3rd ed.; Wilson, LB & Clark, RG; Addison-Wesley (2001); ISBN 0-201-71012-9 Supplemental
More informationChapter 5. Names, Bindings, and Scopes
Chapter 5 Names, Bindings, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Scope Scope and Lifetime Referencing Environments Named Constants 1-2 Introduction Imperative
More informationLecture 1: Course Introduction
Lecture 1: Course Introduction CS164: Programming Languages and Compilers P. N. Hilfinger, 787 Soda Spring 2015 Acknowledgement. Portions taken from CS164 notes by G. Necula. Last modified: Wed Jan 21
More informationCompilation I. Hwansoo Han
Compilation I Hwansoo Han Language Groups Imperative von Neumann (Fortran, Pascal, Basic, C) Object-oriented (Smalltalk, Eiffel, C++) Scripting languages (Perl, Python, JavaScript, PHP) Declarative Functional
More informationImproving Software Cost Estimates Using the Univariate Model
Improving Software Cost Estimates Using the Univariate Model Brian Opaska OPS Consulting 1 Outline Background on Univariate (Linear) Method Improvement Techniques Code Count Metric Actual SLOC Analysis
More informationProgramming (ERIM) Lecture 1: Introduction to programming paradigms and typing systems. Tommi Tervonen
Programming (ERIM) Lecture 1: Introduction to programming paradigms and typing systems Tommi Tervonen Econometric Institute, Erasmus School of Economics Course learning objectives After this course, you
More informationLecture content. Course goals. Course Introduction. TDDA69 Data and Program Structure Introduction
Lecture content TDDA69 Data and Program Structure Introduction Cyrille Berger Course Introduction to the different Programming Paradigm The different programming paradigm Why different paradigms? Introduction
More information1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction
Introduction (Cont.) Introduction to CSE 1325 Object Oriented Programming (Using Java) Sharma Chakravarthy Information Technology Laboratory (IT Lab) Computer Science and Engineering Department The University
More informationIntroduction to Computer Science I
Introduction to Computer Science I CSE 1020 www.cse.yorku.ca/course/1020 Programming Contests in September and October Everyone is welcome to participate in these contests. The students who will represent
More informationCS 314 Principles of Programming Languages
CS 314 Principles of Programming Languages Lecture 13: Names, Scopes and Bindings Zheng (Eddy) Zhang Rutgers University February 28, 2018 Review: Names, Scopes and Binding What s in a name? Each name means
More informationProgram Abstractions, Language Paradigms. CS152. Chris Pollett. Aug. 27, 2008.
Program Abstractions, Language Paradigms. CS152. Chris Pollett. Aug. 27, 2008. Outline. Abstractions for telling a computer how to do things. Computational Paradigms. Language Definition, Translation.
More informationSOFTWARE ARCHITECTURE 6. LISP
1 SOFTWARE ARCHITECTURE 6. LISP Tatsuya Hagino hagino@sfc.keio.ac.jp slides URL https://vu5.sfc.keio.ac.jp/sa/ 2 Compiler vs Interpreter Compiler Translate programs into machine languages Compilers are
More informationSemantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End
Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors
More informationProgramming Languages (CS )
Programming Languages (CS 234319) Prof. Ron Pinter Dept. of CS, Technion Spring 2007 Why Not Study Programming Languages? The expressive power of all programming languages and computational devices is
More informationPLAGIARISM. Administrivia. Course home page: Introduction to Programming Languages and Compilers
Administrivia Introduction to Programming Languages and Compilers CS164 11:00-12:00 MWF 306 Soda Notes by G. Necula, with additions by P. Hilfinger Course home page: http://www-inst.eecs.berkeley.edu/~cs164
More informationIntroduction to Programming Languages and Compilers. CS164 11:00-12:00 MWF 306 Soda
Introduction to Programming Languages and Compilers CS164 11:00-12:00 MWF 306 Soda Notes by G. Necula, with additions by P. Hilfinger Prof. Hilfinger CS 164 Lecture 1 1 Administrivia Course home page:
More informationIntroduction to Scientific Computing Languages
1 / 1 Introduction to Scientific Computing Languages Prof. Paolo Bientinesi pauldj@aices.rwth-aachen.de Languages for Scientific Computing 2 / 1 What is a programming language? Languages for Scientific
More informationProgramming Language Concepts 1982, 1987, Outline. Period
Programming Language Concepts 1982, 1987, 1997 Mehdi Jazayeri Distributed Systems Group Technische Universität Wien mjazayeri@alum.mit.edu http://www.infosys.tuwien.ac.at Outline Computer science environment
More informationIntroduction to the course and basic programming concepts
Introduction to the course and basic programming concepts Lecture 1 of TDA 540 Object-Oriented Programming Jesper Cockx Fall 2018 Chalmers University of Technology Gothenburg University About the course
More informationIntroduction to Scientific Computing Languages
1 / 17 Introduction to Scientific Computing Languages Prof. Paolo Bientinesi pauldj@aices.rwth-aachen.de Languages for Scientific Computing 2 / 17 What is a programming language? Languages for Scientific
More informationThe role of semantic analysis in a compiler
Semantic Analysis Outline The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors
More informationLecture 15: Iteration and Recursion
Lecture 15: and Recursion The University of North Carolina at Chapel Hill Spring 2002 Lecture 15: and Recursion Feb 13/15 1 Control Flow Mechanisms Sequencing Textual order, Precedence in Expression Selection
More informationWelcome to Introduction to Computer Science I
Welcome to Introduction to Computer Science I CSE 1020 moodle.yorku.ca Instructor Name: Franck van Breugel Email: franck@cse.yorku.ca Please use your EECS or York account to send me email Office: Lassonde
More informationCourse Announcements cs2220: Engineering Software
Course Announcements cs2220: Engineering Software Assistant Teacher: Robbie Hott Help for PS1: Friday, 2:30-3:30pm (Thornton Stacks) Class 2: Introduction Java Fall 2010 University of Virginia David Evans
More informationCSI32 Object-Oriented Programming
Outline Department of Mathematics and Computer Science Bronx Community College February 2, 2015 Outline Outline 1 Chapter 1 Cornerstones of Computing Textbook Object-Oriented Programming in Python Goldwasser
More informationCSc 372 Comparative Programming Languages
CSc 372 Comparative Programming Languages The University of Arizona Fall Semester, 2006 CSc 372, Fall 2006 Introduction Slide 1 CSc 372, Fall 2006 Introduction Slide 2 Introduction Instructor Teaching
More information1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation
1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Administrivia Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/h18
More informationCompiling and Interpreting Programming. Overview of Compilers and Interpreters
Copyright R.A. van Engelen, FSU Department of Computer Science, 2000 Overview of Compilers and Interpreters Common compiler and interpreter configurations Virtual machines Integrated programming environments
More information1DL321: Kompilatorteknik I (Compiler Design 1)
Administrivia 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/ht16
More informationPrinciples of Programming Languages. Lecture Outline
Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation
More informationLecture 1: Introduction. 23. August, 2010
Lecture 1: Introduction 23. August, 2010 Lecture Outline TDT4165 Administratrivia Programming Languages Introduction Illustration Hello World Programs Further Comments Summary TDT4165 Administratrivia
More informationG Programming Languages - Fall 2018
G22.2110-001 Programming Languages - Fall 2018 Class 1 Thomas Wies New York University Course Information and Resources Course web page (general info, syllabus, etc.) http://cs.nyu.edu/wies/teaching/pl-fa18/
More informationInformal Semantics of Data. semantic specification names (identifiers) attributes binding declarations scope rules visibility
Informal Semantics of Data semantic specification names (identifiers) attributes binding declarations scope rules visibility 1 Ways to Specify Semantics Standards Documents (Language Definition) Language
More informationG Programming Languages Spring 2010 Lecture 1. Robert Grimm, New York University
G22.2110-001 Programming Languages Spring 2010 Lecture 1 Robert Grimm, New York University 1 Course Information Online at http://cs.nyu.edu/rgrimm/teaching/sp10-pl/, including grading policy and collaboration
More informationCS558 Programming Languages
CS558 Programming Languages Winter 2017 Lecture 1a Andrew Tolmach Portland State University 1994-2017 1 What programming languages do you know? Some historically interesting and/or currently visible languages:
More informationLecture 1: Course Introduction
Lecture 1: Course Introduction CS164: Programming Languages and Compilers P. N. Hilfinger, 787 Soda Fall 2013 Acknowledgement. Portions taken from CS164 notes by G. Necula. Last modified: Thu Aug 29 16:03:34
More informationLecture 31: Building a Runnable Program
The University of North Carolina at Chapel Hill Spring 2002 Lecture 31: Building a Runnable Program April 10 1 From Source Code to Executable Code program gcd(input, output); var i, j: integer; begin read(i,
More informationPreliminaries. 1. Preliminaries 1.1 Administration. 1.2 Motivation 1.3 Hello, World!
Section 1 Preliminaries 1. Preliminaries 1.1 Administration 1.2 Motivation 1.3 Hello, World! 1.1. Administration Where are we? 1. Preliminaries 1.1. Administration 1. Preliminaries 1.1 Administration 1.2
More informationLecture content. Course goals. Course Introduction. TDDA69 Data and Program Structure Introduction Cyrille Berger
Lecture content TDDA69 Data and Program Structure Introduction Cyrille Berger Course Introduction Concepts and models of programming languages The different programming paradigms Why different paradigms?
More informationCS 330 Lecture 18. Symbol table. C scope rules. Declarations. Chapter 5 Louden Outline
CS 0 Lecture 8 Chapter 5 Louden Outline The symbol table Static scoping vs dynamic scoping Symbol table Dictionary associates names to attributes In general: hash tables, tree and lists (assignment ) can
More informationWhat Is Computer Science? The Scientific Study of Computation. Expressing or Describing
What Is Computer Science? The Scientific Study of Computation CMPSCI 630: Programming Languages Introduction Spring 2009 (with thanks to Robert Harper) Expressing or Describing Automating Understanding
More informationCOMP 201: Principles of Programming
COMP 201: Principles of Programming 1 Learning Outcomes To understand what computing entails and what the different branches of computing are. To understand the basic design of a computer and how it represents
More informationObjective: To learn meaning and concepts of programming. Outcome: By the end of this students should be able to describe the meaning of programming
30 th September 2018 Objective: To learn meaning and concepts of programming Outcome: By the end of this students should be able to describe the meaning of programming Section 1: What is a programming
More informationCompilation 2012 The What and Why of Compilers
Compilation 2012 The What and Why of Compilers Jan Midtgaard Michael I. Schwartzbach Aarhus University What is a Compiler? A program that: tralates from one programming language to another preserves the
More informationPrinciples of Programming Languages Lecture 22
Principles of Programming Languages Lecture 22 Wael Aboulsaadat wael@cs.toronto.edu http://portal.utoronto.ca/ Acknowledgment: parts of these slides are based on material by Diane Horton & Eric Joanis
More informationChapter 3:: Names, Scopes, and Bindings (cont.)
Chapter 3:: Names, Scopes, and Bindings (cont.) Programming Language Pragmatics Michael L. Scott Review What is a regular expression? What is a context-free grammar? What is BNF? What is a derivation?
More informationProgramming Paradigms
Programming Paradigms Programming languages A Programming language is a notational system for describing tasks/computations in a machine and human readable form. Most computer languages are designed to
More informationCS240: Programming in C
CS240: Programming in C Lecture 1: Class overview. Cristina Nita-Rotaru Lecture 1/ Fall 2013 1 WELCOME to CS240 Cristina Nita-Rotaru Lecture 1/ Fall 2013 2 240 Team Instructor: Cristina Nita-Rotaru Special
More informationIntroduction. A. Bellaachia Page: 1
Introduction 1. Objectives... 2 2. Why are there so many programming languages?... 2 3. What makes a language successful?... 2 4. Programming Domains... 3 5. Language and Computer Architecture... 4 6.
More informationCS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013
CS252 Advanced Programming Language Principles Prof. Tom Austin San José State University Fall 2013 What are some programming languages? Why are there so many? Different domains Mobile devices (Objective
More information