3 ms·
I skipped compilers in undergrad, did any of you guys use what you learned in compilers in other topics? ( have no desire to make a compiler, but wondering if
by utnick 19y ago
I skipped compilers in undergrad, did any of you guys use what you learned in compilers in other topics?
( have no desire to make a compiler, but wondering if this is a topic I should pick up )
- Goladus 19y agoI'm taking compilers right now. The highlights: Loads of practice writing code to solve problems with a significant degree of complexity where accuracy is critical and each step builds on the last. It's easily the most coding-intensive course I have ever taken. Writing a compiler is the best way to learn the dusty corners of a language, and you typically have to learn at least two languages; the source and the target. You learn how to read and apply BNF Grammars, not just understand what they are (as in a Theory of Comp course). You learn how they're used to specify things like operator precedence. You also will probably get a lot of practice analyzing or manipulating the resulting abstract syntax tree. If you are slow at recursion now, you won't be after trying to build a compiler (or else it will take you forever). You make practical use of a variety of classical data structures and algorithms. You walk around your parse tree, you do graph coloring to optimize register usage. Really though, it's not a topic you can just browse over and get much out of. The real value is actually buckling down and trying to build a compiler.