Principles of Programming Languages
198:314, Fall 2017


Course Description

This course covers topics in programming languages and compilers such as parsing techniques with error handling; attribute grammars and their use in syntax-directed translation; type systems and polymorphism; models of programming language semantics (i.e., operational semantics through closure interpreters ); data abstraction; functional, logical, and object-oriented paradigms; intermediate representations of programs; parallel programming models; GPU programming; automatic parallelization and vectorization.



Academic Integrity

This course requires that every student adheres to the DCS Academic Integrity Policy. DO NOT CHEAT ! If you have any questions whether a particular activity is considered cheating, talk to the instructor. You have to make sure that all your project files are read protected. If you don't know how to do this in Linux, ask your TA. Leaving a project file unprotected and thereby visible to your fellow students is considered cheating.

If you need an extension to a project or homework, let the instructor know as early as possible.

Homework and Project Questions

Please post questions regarding homeworks and projects using Rutgers's Sakai system . DO NOT send homework or project questions directly to the TA or me.

For other communication via email, please start your subject line with cs314.


The exams will be a midterm and a common hours final exam.



Please write your section number on your homework. Electronic submission of PDF files only.
Sample solutions will be available on sakai under the "Resources" tab.


You will need an ilab account since all projects will require code to run on the ilab machines. You should know how to create and edit files in the Linux environment. All projects have to compile and compile on the ilab machines. It is your responsibility to make sure that your code works correctly on the ilab machines. Code that does not compile and/or run on the ilab cluster will not receive any credit.

Late submission policy: 20% penalty for every 24 hour period after the submission deadline. This means, no credit for projects submitted more than 4 days (4x24hours) late.

Useful Links