| ||
COMS W4115 Programming Languages and Translators Fall 2009 |
||
| Announcements | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Class meets 4:10-5:25pm on Mondays and Wednesdays, 833 Mudd. On Wednesday, September 30, 2009, Professor Bjarne Stroustrup, the creator of C++, gave a talk, "Evolving a language in and for the real world." On Monday, November 30, 2009, Professor Bjarne Stroustrup will lecture on concepts and concurrency in the new C++ standard. Class bulletin board: https://courseworks.columbia.edu | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Teaching Staff | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Course Overview | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In PLT you will learn the syntactic
and semantic elements of the most important 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. This fall Dr. Bjarne Stroustrup will give lectures on the design and implementation of C++.
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.
This project will teach you project management, teamwork, and
communication skills that you can apply in all aspects of your
career. The concepts, techniques, and tools that you will learn in this course have broad application to many areas of computer science outside of programming languages and compilers. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Prerequisites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Fluency in C and Java | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| COMS W3137 Data Structures and Algorithms | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| COMS W3261 Computer Science Theory | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Schedule 2009 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Andrew W. Appel Modern Compiler Implementation in Java, Second Edition Cambridge University Press, 2002 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Keith D. Cooper and Linda Torczon Engineering a Compiler Morgan Kaufmann, 2004 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Steven S. Muchnick Advanced Compiler Design and Implementation Morgan Kaufmann, 1997 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Michael L. Scott Programming Language Pragmatics, Second Edition Morgan Kaufmann, 2006 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Robert W. Sebesta Concepts of Programming Languages, Eighth Edition Addison-Wesley, 2008 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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 June 29, 2009 |