CSCI 8980 (Fall 2006)
Advanced Topics in Programming Languages
New Information:
- The schedule for student presentations can be found here.
Table of Contents
Contact Information
- Lecture Times and Place: TTh 9:45 - 11:00 a.m., AmundH 156.
- Instructor: Gopalan Nadathur
(gopalan atsign cs dot umn dot edu), EE/CSci 6-215, 612-626-1354.
Office Hours: By appointment on Wednesdays.
In the present rendition of this course, we shall discuss
principles underlying logic and functional programming languages and
approaches to their implementation. Mathematical maturity will be
needed for the first part and also for understanding its influence on
implementation questions. We shall also assume an understanding of the
usefulness of languages such as Prolog and ML and a basic ability
to write programs in them. Some of these aspects may be orthogonal to
the actual discussions in class but would be necessary to understand
their broader utility.
Course Texts and References
There is no official textbook for this course. A portion of the
discussions will be based on research papers that will be distributed
later in the term. The instructor's lectures on the more basic
material will be drawn from some of the sources that are listed
below:
- Lambda Calculus:
- J. Roger Hindley and J.P. Seldin. Introduction to
Combinators and Lambda Calculus, Cambridge University Press, 1990.
- Henk Brendregt, The Lambda Calculus: Its Syntax and
Semantics, North Holland, Amsterdam, 1984.
You will find what appears to be an summary of the book here.
- Functional Programming Language Implementation:
-
Implementing Functional Languages, Simon Peyton Jones and
David Lester, Prentice Hall.
- The Implementation of Functional Programming Languages, Simon L.
Peyton Jones, Prentice Hall.
- Compiling with Continuations, Andrew Appel, Cambridge
University Press.
- Logic Programming Implementation:
Unfortunately the UMN library does not have most of these books and
some are also out of print. However, the sources are available for
many and links have been provided whereever possible to these. For the
others, the instructor has copies of the books and will be happy to
loan them out on the promise that they will be treated
very carefully.
Course Description and Objectives
The broad objective of this course is to discuss research related to
the design and implementation of advanced programming languages. The
lectures are intended to construct the background needed for
understanding discussions related especially to the implementation of
such languages. However, in keeping with the fact that this is a
seminar-style course, the full set of topics will be determined by the
interests of the participants. I see in particular a strong
possibility for discussing rewrite systems and also for exploring the
mix of language and logic properties that are turning out to be
critical to authentication and security. Some of these topics will
likely be discussed through student presentations.
This is a seminar course with the usual rules for participation.
Attendance is generally required and it is mandatory for student
presentations. In addition, you should read material from the
indicated sources to keep yourself informed about the topics in
class.
The grade for the course will be determined mainly by a term paper of
about 20 pages on a chosen topic (55%), a class presentation (30%) and
participation in class discussions (15%). The term paper and
presentation will generally be based on reading papers on a specific
topic and interpreting and critiquing them. Criteria that will be
considered in evaluating the term paper is the comprehensiveness of
the study, the coherence of the report and, most important, the
special insights that you offer into the work you have studied.
Here is a timetable that you should adhere to for the term paper and
presentation:
- Talk to the instructor about a possible topic before the end of
September.
- Select a topic for the term paper by October 17. Concretely,
this means that you should submit a write-up of up to one page
describing your topic and also listing a few papers that you will
definitely read for this.
- Be ready for a presentation by the middle of November. This
presentation should be about one hour in duration but not more than
one meeting period. Prepare for this seriously: your grade depends
on this in part.
- Turn in a report by the last meeting in the course on December 12
Again, take the task of writing this report seriously since it
carries over half the grade. Also please note that the deadline for
this report is really sharp; I will be leaving town on Dec 13 and must
have your reports in hand by then so as to be able to assign you a
grade in a timely fashion.
Last modified: Sept 5, 2006 by gopalan atsign cs dot umn dot edu