CS 352: Compilers: Principles and Practice - Department of Computer Science - Purdue University Skip to main content

CS 352: Compilers: Principles and Practice

List of Topics (By Week):

  1. Introduction: modules and interfaces, tools and software

  2. Programming data structures for tree languages

  3. Lexical analysis: lexical tokens, regular expressions, finite automata, lexical analyser generators

  4. Parsing I: context-free grammars, predictive parsing

  5. Parsing II: LR parsing, parser generators

  6. Abstract syntax: semantic actions, abstract parse trees

  7. Semantic analysis: symbol tables, type-checking expressions, type-checking declarations

  8. Activation records: stack frames, allocation

  9. Translation to intermediate code: intermediate representation trees, translation into trees

  10. Basic blocks and traces: canonical trees, conditional branches

  11. Instruction selection: algorithms for instruction selection, CISC and RISC machines

  12. Liveness analysis: solution of basic dataflow equations

  13. Register allocation: graph coloring, coloring by simplification, coalescing, register allocation for trees

  14. Supplemental material: a selection drawn from garbage collection, object-oriented languages, functional languages, dataflow analysis, optimization, polymorphism, static single-assignment form, scheduling and pipelining, memory hierarchies

  15. Summary


Last Updated: Apr 25, 2017 4:44 PM

Department of Computer Science, 305 N. University Street, West Lafayette, IN 47907

Phone: (765) 494-6010 • Fax: (765) 494-0739

Copyright © 2024 Purdue University | An equal access/equal opportunity university | Copyright Complaints

Trouble with this page? Disability-related accessibility issue? Please contact the College of Science.