Principles of Programming Languages
198:314, Spring 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.