Spring 2010 — Björn B. Brandenburg

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.

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

Björn B. Brandenburg.

Office: FB 132

Email: bbb [at] cs.unc.edu

Telephone: (919) 962-1704

Tuesday, 12:00pm–1:00pm, SN006 (regular office hours).

Wednesday, 4:00pm–6:00pm, SN 115 (walk-in homework help).

Programming Language Pragmatics, third edition, Michael L. Scott, 2009.

Morgan Kaufmann Publishers, ISBN 978-0-12-374514-9.

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.

By | Read |
---|---|

04/27/2010 | Chapters 9 and 13. |

04/06/2010 | Sections 3.5.3, 7.1.2, and 7.2.2. |

04/01/2010 | Chapter 10 until the end of Section 10.3, and also Section 10.7. |

03/30/2010 | Chapter 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/2010 | Section 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/2010 | Sections 3.3, 3.5.1, and 3.6.
(Skip Sections 3.4, 3.5.2 and 3.5.3.) |

02/18/2010 | Sections 3.1 and 3.2. |

02/09/2010 | Sections 11.1, 11.3, and 11.3.1. |

02/02/2010 | Rest of Chapter 2. |

01/28/2010 | Section 2.3.1 |

01/26/2010 | Section 2.2. |

01/21/2010 | Section 2.1. Section 2.4 (if you have not yet taken COMP 455 or need to review finite automata). |

01/19/2010 | Chapter 1. |

By | Submit |
---|---|

04/27/2010 | Homework 5. Example output for part 1 and part 2. |

04/13/2010 | Homework 4. Solution. |

03/18/2010 | Homework 3. |

02/18/2010 | Homework 2. Reference output.. |

01/26/2010 | Homework 1. Solution. |

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

- Introduction
- Programming Languages Overview
- Compilation and Interpretation
- Lexical Analysis
- Syntax Analysis
- Prolog Notes

Example code: day.pl day_facts.pl prolog-examples.zip - Binding and Storage
- Scope
- Control Flow
- Data Types
- Type Systems & Type Checking
- Functional Programming

Example code: reverse.hs math.hs apply.hs hof.hs inf.hs dim.hs - Polymorphism
- Object Orientation

Example code: memoize.py avg.py - Runtime System

Some additional reference material for the curious.

- The author: Michael L. Scott.
- The book: Programming Language Pragmatics.

- Logic Programming with Prolog, Max Bramer, 2005. Springer Verlag, ISBN 1852339381. UNC Library.
- Prolog Programming: A First Course by Paul Brna, a free textbook.
- Learn Prolog Now!, online version of a tutorial-oriented, introductory Prolog book.
- SWI Prolog, an open source Prolog implementation.

- Haskell Platform, the easiest way to install a Haskell system.
- Real World Haskell, online version of a popular introductory book.
- Yet Another Haskell Tutorial, a comprehensive introduction to Haskell. Highly recommended.
- Haskell Tutorial for C Programmers, a Haskell tutorial focused on experienced imperative programmers.
- A Gentle Introduction To Haskell, a concise and not all that gentle introduction to Haskell.
- "Learning Haskell" on the Haskell Wiki, a comprehensive list.
- "Books and Tutorials" on the Haskell Wiki, a comprehensive list.
- "Learn You a Haskell for Great Good!", a humorous beginner's tutorial.
- The "Picnic Tutorial", another Haskell tutorial on the humorous side.
- A taste of Haskell, a 3hr taped introductory lecture on Haskell by Simon Peyton-Jones, one of the principle creators of Haskell.

- Official Python homepage. Download the interpreter here.
- Dive Into Python, an excellent introductory Python book.
- The Python Tutorial, provides a good overview of the language.
- Python Documentation, including the library and language reference.

- Lambda the Ultimate, a well-known community blog on programming language research.
- HOPL, an online “museum” and archive dedicated to the preservation of the history of programming language development. Includes a searchable language database.
- Computer Languages Timeline, a very cool graphical representation of the programming languages family tree.

- COMP 455. Have a look at Prof. Anderson's slides if you need an automata theory refresher.

- The official syllabus.
- Last year's class: http://www.cs.unc.edu/~olivier/comp524/.