CRN: 40997 Course No. CS558 Course Name. Programming Languages (3 cr) Department course description. Class Syllabus Times: Tuesday 16:00-18:30 Place: Willow Creek 310 (First meeting (only) on 1/7/2014 Willow Creek room 103). Textbook: Programming Language Pragmatics, by Michael L. Scott, ISBN 13:978-0-12-374514-9 Professor: Tim Sheard Office: FAB 120-04 Phone: 503-725-2410 Office Hrs Monday 10-12 am. I am also availiable by appointment, just email and set one up. Email:TA: Clint Olson Email: clinton2@pdx.edu Office hours: Tuesday 10:00-11:00 AM and Thursday 1:00-2:00 PM both days in the Fishbowl
Tuesday Jan 7, 2014 Due Today: No homework due today. No reading worksheet due today. Announcements: Readings: Chapters 1 (pp 5-39), and 2.1 (pp 41-48) Class Topic: Inventory: Languages, types, features. What makes a good language? Introduction; Concrete & abstract syntax; Interpretation & Compilation. Thanks to Andrew Tolmach for these notes (also in 4 up format). Installing Python and Haskell (see guide to installing new languages). Discussion of Reading exercises Discussion of homework Assigned today: Homework #1. Due 4:00 PM, Tuesday, January 14, 2014 Reading worksheet #1 for Chapter 6 (pp 217-287).
Tuesday Jan 14, 2014 Due Today: Homework #1. Reading worksheet #1 for Chapter 6 (pp 217-287). Announcements: GOOD NEWS - We got the larger classroom we were in last week, so everyone on the waiting list will be allowed in the class. Fill in a copy of the form and bring it by my office as soon as possible. BEFORE CLASS on Jan 14 if possible. Note the CRN is 40997. Readings: Chapter 6 (pp 217-287) Class Topic: Tim Sheards Haskell resource page. Reading discussion. Imperative languages; Structured programming; Axiomatic semantics. Thanks to Andrew Tolmach for these notes (also in 4 up format). Assigned today: Homework #2. Due 4:00 PM, Tuesday, January 21, 2014 Reading worksheet #2 for Chapter 3.1-3.5 (pp 111-148).
Tuesday Jan 21, 2014 Due Today: Homework #2. Due 4:00 PM, Tuesday, January 21, 2014 Reading worksheet #2 for Chapter 3.1-3.5 (pp 111-148). Announcements: Readings: Chapter 3.1-3.5 (pp 111-148) Class Topic: Reading discussion. Notes on environments, stores, and interpreters. Binding; Scope; Storage; Operational semantics; Procedure Thanks to Andrew Tolmach for these notes (also in 4 up format). Assigned today: Homework #3. Due 4:00 PM, Tuesday, January 28, 2014 Reading worksheet #3 for Chapter 8.1-8.3 and 8.5 (pp 383-408 and 417-425).
Tuesday Jan 28, 2014 Due Today: Homework #3. Due today. Reading worksheet #3 Due today Announcements: Readings: Chapter 8.1-8.3 and 8.5 (pp 383-408 and 417-425) Class Topic: On the structure of interpreters. Discussion of reading. Parameter Passing mechanism code(CBV, CBR, CBVR) Stacks; Calling conventions; Recursion; Exceptions. Thanks to Andrew Tolmach for these notes (also in 4 up format). Assigned today: Homework #4. Due 4:00 PM, Tuesday, Feb 4, 2014 Reading worksheet #4 for Chapters 3.6, 10, and 13 (pp 151-177; 503-543; and 649-724).
Tuesday Feb 4, 2014 Due Today: Homework #4 due today. Reading worksheet #4 due today. Announcements: A practice exam is now available here. See also the midterm from Andrew Tolmachs CS558 class, especially question 8 on operational semantics! Readings: Chapters 3.6, 10, and 13 (pp 151-177; 503-543; and 649-724) Class Topic: Discussion of reading. The role of environments in scoping. Functional languages; Scripting languages. Thanks to Andrew Tolmach for these notes (also in 4 up format). Here are some companion notes where the examples are in Haskell. Assigned today: Homework #5 due Feb 18 2014. But, recall issues covered in this homework are fair game on the exam.
Tuesday Feb 11, 2014 Due Today: Announcements: Each student is allowed one (8.5 x 11.0 inch) page of notes at the midterm. Other than that one page, the exam is closed book. Readings: Class Topic: Open Question and Answer session. Midterm ExamResult statistics. Assigned today: Nothing, but recall Homework #5 is due next week.
Tuesday Feb 18, 2014 Due Today: Homework #5 due today. Announcements: Advert for Advanced Functional Programming class. Readings: Chapters 3.5 and 3.7 (pp 144-148; 159-161), Chapters 7.1 and 7.2 (pp 289-316) Class Topic: Review exam. Type systems; Type checking; Polymorphism. Exam code from Homework #6. Thanks to Andrew Tolmach for these notes (also in 4 up format). additional notes using Haskell syntax. Assigned today: Homework #6 due Feb 25 2014. Reading worksheet #6 for Chapters 8.4 (pp 410-417)
Tuesday Feb 25, 2014 Due Today: Homework #6 due today. Reading worksheet #6 due today. Announcements: Readings: Chapters 8.4 (pp 410-417) Class Topic: User defined types. Abstract data types. Modules; Separate compilation. Notes on implementing user defined types. Thanks to Andrew Tolmach for these notes (also in 4 up format). Assigned today: Homework #7 due March 4 2014. Reading worksheet #7 for Chapter 9 (pp 449-499)
Tuesday March 4, 2014 Due Today: Homework #7 due today. Reading worksheet #7 due today. Announcements: Advert for Advanced compilers course taught by Andrew Tolmach Readings: Chapter 9 (pp 449-499) Class Topic: Object oriented languages Notes on OO principles with E8. Thanks to Andrew Tolmach for these notes (also in 4 up format). Assigned today: Homework #8 due March 11 2014. Reading worksheet #8 Chapter 7.7.3 pp 357-367
Tuesday March 11, 2014 Due Today: Homework #8 due today Reading worksheet #8 due today Announcements: I might have jury duty today. Look for email about my status this morning. Advert for Advanced Functional Programming class. Readings: Chapter 7.7.3 pp 357-367 Class Topic: Garbage Collection Some notes on Garbage Collection Questions from the audience The final Exam next week. Here is a practice Final Exam. Course questionaires at final exam Assigned today: No homework assigned today
Tuesday March 18, 2014 Final Exam period 15:30 -> 17:20 (3:30 pm -> 5:20 pm) NOTE, the University scheduled final exam period is not the same as normal class hours!Statistics of final exam.