| ||
COMS W4115 Programming Languages and Translators Spring 2008 |
||
| Announcements | ||||||||||||||||||||||
|
Class meets 4:10-5:25pm, Mondays and Wednesdays, 602 Hamilton.
Class bulletin board: https://courseworks.columbia.edu On Wednesday, January 30, Dr. Kedar Namjoshi of Bell Labs lectured on concurrency in languages. Project presentations will occur April 28 and 30. See presentation suggestions for some hints on how to organize your presentation. Final project reports are due on May 5. See suggestions for project report. Final exam will be in class on May 5. Project demos will occur May 12 and 13 in the CS conference room. Project Presentations Pictures from class courtesy of Gaurav Gautam, April 30, 2008. | ||||||||||||||||||||||
| Teaching Staff | ||||||||||||||||||||||
| ||||||||||||||||||||||
| Course Overview | ||||||||||||||||||||||
|
In PLT you will learn the syntactic
and semantic elements of the most popular modern programming languages
as well as the algorithms and techniques used
by compilers to translate them into machine and other
target languages.
The course will cover imperative, object-oriented, functional, logic, and scripting languages. A highlight of this course is a semester-long programming project in which you will work in a small team to create and implement an innovative little language of your own design. The concepts, techniques, and tools that you will learn in this course have broad application to many areas of project management and software development outside of programming languages and compilers. |
||||||||||||||||||||||
| Prerequisites | ||||||||||||||||||||||
| Fluency in C and Java | ||||||||||||||||||||||
| COMS W3137 Data Structures and Algorithms | ||||||||||||||||||||||
| COMS W3261 Computer Science Theory | ||||||||||||||||||||||
| Schedule 2008 | ||||||||||||||||||||||
| Required Text | ||||||||||||||||||||||
|
Alfred V. Aho, Monica Lam, Ravi Sethi, and Jeffrey D. Ullman Compilers: Principles, Techniques, and Tools, Second Edition Addison-Wesley, 2007, ISBN 0-321-48681-1 |
||||||||||||||||||||||
| Additional References | ||||||||||||||||||||||
|
Keith D. Cooper and Linda Torczon Engineering a Compiler Morgan Kaufmann, 2004 |
||||||||||||||||||||||
|
Andrew W. Appel Modern Compiler Implementation in Java, Second Edition Cambridge University Press, 2002 |
||||||||||||||||||||||
|
Michael L. Scott Programming Language Pragmatics, Second Edition Morgan Kaufmann, 2006 |
||||||||||||||||||||||
|
Steven S. Muchnick Advanced Compiler Design and Implementation Morgan Kaufmann, 1997 |
||||||||||||||||||||||
|
Stephen Edward's CS4115 Web Page |
||||||||||||||||||||||
| Class Policies | ||||||||||||||||||||||
| Grading |
40 % Project 10 % Homeworks 20 % Midterm 30 % Final |
|||||||||||||||||||||
| Late Policy | All assignments can be handed in one week after they are due for 50% credit. | |||||||||||||||||||||
| aho@cs.columbia.edu | Updated Tuesday, March 4, 2008 |