CS 321 - Winter 2005

Programming Languages and Compilers




  Course Description

Goal is to show you key principles, techniques, and methods of mapping programming language constructs automatically into executable (object) instructions. We'll discuss grammars, language semantics, general problems of machine translation, formal methods of expressing cross-, native-, and self-compilers, lexical analysis, syntax analysys (parsing), symbol table design, object code generation, compiler organization, and some optimizations.

At the end of this (two-term) course you can design and implement compilers on your own, plus you have better understanding of existing compilers you use and their numerous switches.

In the second term we concentrate on interpreters, simulators, run time system, the run time stack, display, and the design of virtual machines via SW simulation. At the end of the second term you'll be prepared to take a third, newly proposed compiler course (CS 401CO) at PSU that focuses on optimization only. For more detail, please refer to Handouts and Homweorks by clicking at the respective buttons below.



  Course Handouts

Handout 1
Handout on Java Language + JVM Topics
Homework 1
Homework 2
Homework 3
Homework 4
Sample output for HW 4
Homework 5
Midterm Exam
Final Exam Solution
SAda Quad Spec
SAda Language Spec
Class mailing list: How to subscribe



This page created by Herb Mayer
Last updated: 12/27/2004