Offered: 2017Fa, 2013Fa, 2012Fa
Ever wonder how the high-level C/C++/<your favorite language> syntax statements eventually get converted to the binary 1's and 0's that the machines understand?! In CGO, we focus on the backend, rather than the front-end---it isn't about parsing and lexical analysis---rather it is about code generation and optimization. You'd want to take this course if you are interested in how compilers generate code ARM vs. x86, or how they optimize for different ISA types (RISC vs. CISC vs. VLIW). It assumes limited computer architecture background, and it shows the connections between architecture, code, and compilation.