Lecture Recordings (rehosted on YouTube)
Remember that lecture recordings are available on Canvas for 2 weeks after class; so if you don’t see it here, check there first.
You can speed up the video playback… listening to myself at 1x speed is agonizing lmao
- Lecture 0 - Intro and Rust
- Lecture 1 - Rust, Strings, and Text
- Lecture 2 - Lexing and Grammars
- Lecture 3 - CFGs and ASTs
- Lecture 4 - Top-down Parsing
- Lecture 5 - Bottom-up Parsing
- Lecture 6 - Semantic Analysis
- Lecture 7 - Scoping and Naming
- Lecture 8 - Typing
- Lecture 9 - Advanced Typing
- Lecture 10 - Backend and Runtime
- Lecture 11 - Dynamic Memory Management
- Lecture 12 - ABI and Codegen
- Lecture 13 - More Codegen and Arrays
- Lecture 14 - Structs and Classes, OOP
- Lecture 15 - Control Flow Graphs and IR
- Lecture 16 - Local Optimization
- Lecture 17 - Global Optimization
- Lecture 18 - Liveness and Register Allocation (part 1)
- Lecture 18 - Liveness and Register Allocation (part 2)
Guides and Links
- The Truss Language reference - a specification of the toy language whose compiler you are writing for the projects.
- MIPS instruction cheat sheet - if you forgot.
- The Rust Playground is an online Rust compiler, good for testing things.
- This is a page of common programming idioms implemented in several languages.
- This is useful if, for example, you know how to do something in Java but not Rust.
- Unicode normalization is a complex topic. Human languages and writing systems are weird!!
- Rustlings is a set of exercises for new Rust programmers.
Examples are hosted on GitHub here!
Clone the repository:
git clone https://github.com/cs1622-2217/examples.git
This will create an
examples directory wherever you are that will contain the examples.
When I update the examples, I will let you know. Then you can go into that
examples directory and do:
to get the updated code.