COMP 524: Programming Language Concepts

Spring 2010 — Björn B. Brandenburg

At a Glance

Announcements

Final exam scheduled May 5, 2010 from 4:00 PM to 5:30 PM. Location: FB 007.

Additional office hours on 4/26/2010 from 5:00pm to 7:00pm in SN 115.

Quiz 4 on Tuesday 04/20/2010.

Additional office hours on 4/12/2010 from 4:00pm to 6:00pm in SN 115.

Office hours cancelled on Wednesday 03/31/2010—please email to schedule an appointment at some other time if you have any questions.

There will be a quiz on Thursday 04/01/2010, with a focus on Lectures 8 and 9.

Homework 3 deadline extended to March 18, 2010.

Mid-term exam on March 2, 2010, covering Lectures 1-8.

There will be a quiz on Tuesday 02/23/2010 on Lectures 1-6.

There will be a quiz on Thursday 02/04/2010 on Lectures 1-4, with a focus on RE/NFA/DFA conversions.

Room change: office hours on Wednesday are now being held in SN 115.

Please carefully read the syllabus for this semester.

Class

We meet Tu/Th 3:30pm–4:45pm in FB 007.

Instructor

Björn B. Brandenburg.
Office: FB 132
Email: bbb [at] cs.unc.edu
Telephone: (919) 962-1704

Office Hours

Tuesday, 12:00pm–1:00pm, SN006 (regular office hours).
Wednesday, 4:00pm–6:00pm, SN 115 (walk-in homework help).

Textbook

Programming Language Pragmatics, third edition, Michael L. Scott, 2009.
Morgan Kaufmann Publishers, ISBN 978-0-12-374514-9.

Class Host

The Linux host for this class is stetson.cs.unc.edu. You can log in via SSH using your AFS credentials.
Have a look at Putty if you need a SSH client for Windows.

Assignments and Solutions

ByRead
04/27/2010Chapters 9 and 13.
04/06/2010Sections 3.5.3, 7.1.2, and 7.2.2.
04/01/2010Chapter 10 until the end of Section 10.3, and also Section 10.7.
03/30/2010Chapter 7 (skip 7.2.4, 7.7.3, and 7.9). Skip paragraphs that discuss polymorphism, and do not worry if some of the implementation details remain a bit unclear. (especially if you have not yet completed COMP 411).
03/25/2010Section 3.7, Chapter 6 (skip 6.7), the introduction to Chapter 8, and Sections 8.3 and 8.5. These Sections provide an (at times) alternate point of view of the material that we have covered in the last couple of weeks.
02/25/2010Sections 3.3, 3.5.1, and 3.6.
(Skip Sections 3.4, 3.5.2 and 3.5.3.)
02/18/2010Sections 3.1 and 3.2.
02/09/2010Sections 11.1, 11.3, and 11.3.1.
02/02/2010Rest of Chapter 2.
01/28/2010Section 2.3.1
01/26/2010Section 2.2.
01/21/2010Section 2.1.
Section 2.4 (if you have not yet taken COMP 455 or need to review finite automata).
01/19/2010Chapter 1.
BySubmit
04/27/2010Homework 5. Example output for part 1 and part 2. Demo of part 3 (offline). Solution.
04/13/2010Homework 4. Solution.
03/18/2010Homework 3.
02/18/2010Homework 2. Reference output..
01/26/2010Homework 1. Solution.

Quiz & Exam Solutions

  1. Quiz 1.
  2. Quiz 2.
  3. Quiz 3.
  4. Quiz 4.
  5. Midterm Exam.

Slides

Lectures

  1. Introduction
  2. Programming Languages Overview
  3. Compilation and Interpretation
  4. Lexical Analysis
  5. Syntax Analysis
  6. Prolog Notes
    Example code: day.pl day_facts.pl prolog-examples.zip
  7. Binding and Storage
  8. Scope
  9. Control Flow
  10. Data Types
  11. Type Systems & Type Checking
  12. Functional Programming
    Example code: reverse.hs math.hs apply.hs hof.hs inf.hs dim.hs
  13. Polymorphism
  14. Object Orientation
    Example code: memoize.py avg.py
  15. Runtime System

Review Questions

  1. 01/14/2010
  2. 01/19/2010
  3. 01/21/2010
  4. 01/28/2010
  5. 02/09/2010
  6. 02/18/2010
  7. 03/16/2010
  8. 03/30/2010
  9. 04/06/2010
  10. 04/15/2010
  11. 04/22/2010
  12. Review Q&A

Supplemental Material

Some additional reference material for the curious.

About the textbook

Prolog

Haskell

Python

General programming languages resources

Cryptographic Hashes

Related Classes

About the class

Valid XHTML 1.0 Strict