Ad blocker interference detected!
Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers
Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.
General Information Edit
CS 4120 and CS 4121 are co-requisites and enrollment in one requires enrollment in the other. Total: 5 credits.
- CS 2110
- CS 3410.
Topics Covered Edit
Lexical Analysis (Tokenizing things)
Recursive Descent Parsing
Automated generation of LL(0) and LL(1) parsers (don't worry, this is very intuitive)
Automated generation of LR(0), LR(1), and LALR parsers (also intuitive)
Syntax-directed translations and how to translate your source language into a lower intermediate representation (IR) form
Instruction selection (IR -> assembly) and dynamic programming
Data/control flow Analysis and other optimization (this is the fun part, you get to learn what complete partial orders and maximal fixed points are)
Object Oriented stuff (no one took this seriously)
Seven programming assignments, a few homeworks (relatively short and easy), and two prelims (open book with Myers, quite challenging). 20 to 40+ hours a week towards the end of the semester (group dependent)
General Advice Edit
Though the prelims were open book and open note, notes didn't help much, unless you thoroughly understood all of them. If you understand all the notes and are reasonably good at problem solving on prelims, you should be fine.
Find a good group.
"You should take compilers.
WHY SHOULD YOU TAKE COMPILERS YOU ASK???
- it'll make you good at c++
- it'll make you good at programming
- you'll still often have over 100 hours a week to do things that aren't compilers
- you will learn how to write compilers
you have to take 4121 if you take 4120
Q: Should I take Compilers?
A: You should take Compilers." ~Gregor Stocks
"If you want to truly understand how your program makes things happen in your computer, take this class. If you want to improve your programming skills, take this class. If you have an amazing group who will carry you through this class (and don't mind a non-negligible amount of guilt afterwards), take this class. If you don't meet the previous condition and want to have a lot of free time, don't take this class." - G
Past Offerings Edit
|Semester||Time||Professor||Median Grade||Course Page|
|2011 FA||Andrew Myers||A||http://www.cs.cornell.edu/courses/cs4120/2011fa/|