Resources
This page contains links to third-party resources that you may find helpful. If you have suggestions for other resources that your fellow students may find helpful, please let me know.
References
- Decaf Language Reference
- C for CS 432 reference
- CS 261 project guide
- CS 261 coding standards
- CS 261 C function quick reference
- Vim syntax highlighting for Decaf (courtesy of Zamua)
- Atom syntax highlighting for Decaf (courtesy of Austin)
- launch.json for VS Code debugging
- ILOC Code Reference
- Code review guidelines and rubric
- Errata - List of discovered typos and mistakes in our textbook
- Mindmap of course topics: (PDF | MM)
Learning Aids
- Rice COMP 412 - Compilers class taught by our textbook authors
- Stanford CS 143 - Another well-respected compilers class (Coursera version)
- RegexOne - Interactive regular expression tutorial
- RegExr - Regular expression tester (JavaScript, PHP/PCRE)
- RegEx101 - Regular expression tester (JavaScript, PHP/PCRE, Python, Go)
- HackingOff - Regex to NFA to DFA tool
- CyberZHG's toolbox - Regex to NFA to DFA tools
- Grammophone - Context-free grammar tool
- Visitor Design Pattern - Online article about the Visitor design pattern
- DFAV - Data-Flow Analysis Visualizer
- Compiler Explorer - Web-based interface for comparing the output of various compilers
Videos
- VS Code + stu Tutorial
- VS Code + CS 261 Tutorial (also relevant for CS 432)
- Chomsky Hierarchy - Computerphile
- Finite Automata - Computerphile
- Grammars - Computerphile
- Finite Automata and Grammars - Computerphile
Project Technologies
- Make - build system used by our Decaf project
- Check - unit testing framework used by our Decaf project
- Doxygen - documentation system used by our Decaf project
- GitHub Copilot - allowed on projects and free for confirmed students