Your feedback has been sent to our team.
1 Rating
Hours/Week
No grades found
— Students
Professor Dwyer is a good teacher and really knows his stuff. The class is about extending an existing compiler in C++17 for the TIP programming language (basically a made-up low-level teaching language which is similar to C) with a partner by adding new features such as booleans, arrays, for-loops, etc. Since we didn't have to write everything from scratch, the class was really enjoyable since we just had to understand the existing code and then implement new features on top of it, plus we had to write our own test cases which came in handy when debugging.
The hardest part is keeping the entire stack in your head towards the end when implementing code generation—you need to think about high-level concepts like syntax and types and be able to map them down to low-level LLVM IR (which is basically like assembly). Overall, the class isn't super difficult—it's pretty easy in the beginning and gradually ramps up in difficulty. Make sure you start assignments early though, especially for code generation! The professor spends a lot of class time answering questions to encourage people to start early.
We covered grammars, parser generators (we used ANTLR), ASTs, the Visitor Pattern, static analysis, type inference, code-generation (via LLVM), and optimizations. All of these things are really practical and LLVM is widely used in industry.
I highly recommend taking this class!
Get us started by writing a question!
It looks like you've already submitted a answer for this question! If you'd like, you may edit your original response.
No course sections viewed yet.