eecsmap / ca.sfu.cmpt379.2022.fall.resource

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ca.sfu.cmpt379.2022.fall.resource

Lectures

From https://canvas.sfu.ca/courses/70682/pages/lectures

COURSE DETAILS

This course covers the theoretical foundations as well as practical techniques for the construction of a compiler for a high-level programming language. Topics include lexical analysis, parsing, type checking, code generation, and optimization. Students will implement an actual compiler for a high-level programming language.

Topics

  • Formal-language theory: alphabets, words, languages, regular expressions, finite automata
  • Compiler design and implementation principles
  • Lexical Analysis: scanners, symbol tables
  • Parsing: context-free grammars, parse trees, ambiguity, top-down and bottom-up parsing
  • LL(1) parsing: efficient top-down parsing, left-factoring
  • Shift-reduce and table-driven parsers: bottom-up parsing
  • Type checking: typing rules, types as inferencing rules, Context checking for programs
  • Context and code generation: from high-level to machine code
  • Introduction to optimization: local, global, and interprocedural.

About


Languages

Language:Java 75.1%Language:Assembly 15.9%Language:Python 7.0%Language:Perl 2.0%