Programming Languages and Translators
Class meets 2:40-3:55pm on Mondays and Wednesdays, 535 Mudd.|
Courseworks site: https://courseworks.columbia.edu
Piazza bulletin board: https://piazza.com/class#spring2013/comsw4115
On February 18, 2013, Dr. Robert L. Martin, former CTO of Bell Labs, gave a lecture on Software Project Management. Bob argued that producing a high quality programming product on time requires the disciplined application of well-tuned individual and team skills. While often repackaged with fancy new, consultant-expensive names, these skills are based on decades-old ideas. Intriguingly, many programmers and programming teams ignore these techniques and assume, by magic, they will avoid repeating history's disasters. There is no magic.
On April 24, 2013, Maria Ayako Taku gave a lecture on
Functional Programming Languages.
Maria discussed the influence of the lambda calculus on functional languages
and showed how to implement an interpreter using
the functional language OCaml.
Languages Created during the Spring 2013 Semester
In PLT you will learn the syntactic
and semantic elements and the computational models of the most important modern
as well as the algorithms and techniques used
by compilers to translate them into machine and other
The course will cover imperative, object-oriented, functional,
logic and scripting languages, as well as trends in the evolution of programming 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.
This project will teach you computational thinking in language design as
well as project management, teamwork, and
communication skills that you can apply in all aspects of your
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.
|Fluency in C and Java|
|COMS W3137 Data Structures and Algorithms|
|COMS W3261 Computer Science Theory|
Alfred V. Aho, Monica Lam, Ravi Sethi, and Jeffrey D. Ullman
Compilers: Principles, Techniques, and Tools, Second Edition
Addison-Wesley, 2007, ISBN 978-0321486813
Alfred V. Aho and Jeffrey D. Ullman
Foundations of Computer Science, C Edition
W. H. Freeman, 1995
An online version of this book is available here.
Andrew W. Appel
Modern Compiler Implementation in Java, Second Edition
Cambridge University Press, 2002
Keith D. Cooper and Linda Torczon
Engineering a Compiler, Second Edition
Morgan Kaufmann, 2012
Steven S. Muchnick
Advanced Compiler Design and Implementation
Morgan Kaufmann, 1997
Michael L. Scott
Programming Language Pragmatics, Third Edition
Morgan Kaufmann, 2009
Robert W. Sebesta
Concepts of Programming Languages, Tenth Edition
Stephen Edward's CS4115 Web Page
40 % Project |
10 % Homework
20 % Midterm
30 % Final
|firstname.lastname@example.org||Updated May 19, 2013|