Last updated 01/05/04 for Spring Semester 2004.

CS 386L: Graduate Programming Languages

Instructor: Dr. Greg Lavender
Email: lavender@cs
Office: ACES 6.242
Office Hours: Mon 10:30-11:30
Tel: (512) 232-7891

TA: Shawn Manley
Email: smanley@cs
Office: PAI 5.40A
Office Hours: Tue/Wed 9-10:30 am

When/Where: Mon 4-7, GEO 2.218

Other:


Prerequisites

An undergraduate course on algorithms and data structures. Programming experience with one of C, C++, Java required. Prior experience using a functional language, such as Scheme, ML, or Haskell an advantage, but not required.

Course Reading Material

The required textbooks for this course is:


Course Description

This is a graduate level breadth course on programming languages. This course will give you the opportunity to learn the fundamental syntactic and semantic concepts underlying modern programming languages. The primary focus is on understanding how modern object-oriented and functional programming languages are designed and implemented.

The course will require reading and discussing papers on programming languages. There is a course project to implement an interpreter for a language, which will require significant programming effort in an appropriate language.

The main topics we will cover include:

The unifying concepts are the notions of expressions, functions and types. We will examine carefully how expressions, functions and types are defined, used, and implemented. We will develop an understanding of different strategies for expression evaluation and the impact on language design. We will see how types allow the programmer to specify constraints on functions and data, and understand the tradeoffs of static versus dynamic typing.