Skip to content

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

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ca.sfu.cmpt379.2022.fall.resource

Lectures

  • Week 1
    • Lecture 1. Philosophy.
    • Lecture 2. Course Administration. Compilers Overview Download Course Administration. Compilers Overview. Regular Expressions Download Regular Expressions. Lecture Notes Download Lecture Notes.
  • Week 2
    • Lecture 3. Addendum to Regular Expressions. Download Addendum to Regular Expressions.Code overview.
    • Lecture 4. Project jumpstart.
  • Week 3
    • Lecture 5. Jumpstart, continued: SimpleCodeGenerator.
    • Lecture 6. Abstract Stack Machine. Download Abstract Stack Machine. Context-Free Languages.Download Context-Free Languages.
  • Week 4
    • Lecture 7. Eliminating left-recursion. Operator precedence in recursive descent parsers.Download Eliminating left-recursion. Operator precedence in recursive descent parsers. Truth and Reconciliation Day. No lecture.
  • Week 5
    • Lecture 8. Miscellaneous items in Milestone 1.
    • Lecture 9. Miscellaneous items in Milestone 1, continued. The Visitor Pattern and Casting Download The Visitor Pattern and Casting.
  • Week 6
    • Lecture 10. Milestone 2. Milestone specification used as lecture notes. Download Milestone specification used as lecture notes.Additional notes.Download Additional notes.
    • Lecture 11. Milestone 2, DFAs and NFAs. Notes. Download Notes.
  • Week 7
    • Lecture 12. Finite automata: DFAs and NFAs. Notes.Download Notes.
    • Lecture 13. Type variables in Milestone 2.
  • Week 8
    • Midterm
    • Lecture 14. Automatic Lexical Analysis Download Automatic Lexical Analysisand promotions in Milestone 2.
  • Week 9
    • Lecture 15. Top-Down Parsing Download Top-Down Parsing.
    • Lecture 16. Bottom-Up Parsing Download Bottom-Up Parsing. Milestone 3.
  • Week 10
    • Lecture 17. Milestone 3 - procedure calls. Notes.Download Notes. Remembrance Day. No lecture.
  • Week 11
    • Lecture 18. Attribute grammars Download Attribute grammars. Notes Download Notes.
    • Lecture 19. Symbol Tables Download Symbol Tablesand Procedures Download Procedures.
  • Week 12
    • Lecture 20. Intermediate Representations. Notes Download Notes.
    • Lecture 21. IRs, continued. Notes Download Notes. Run-time Environments Download Run-time Environments.
  • Week 13
    • Lecture 22. Optimization Download Optimization.
    • Lecture 23. Optimization, part II Download Optimization, part II. Dataflow Download Dataflow.

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

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 73.0%
  • Assembly 17.3%
  • Python 7.5%
  • Perl 2.2%