Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>If you're looking to use powerful, higher level tools rather than building <em>everything</em> yourself, going through the projects and readings for <a href="http://www.antlr.org/wiki/display/CS652/CS652+Home" rel="noreferrer">this course</a> is a pretty good option. It's a languages course by the author of the Java parser engine ANTLR. You can get the book for the course as a PDF from <a href="http://www.pragprog.com/titles/tpantlr/the-definitive-antlr-reference" rel="noreferrer">the Pragmatic Programmers</a>.</p> <p>The course goes over the standard compiler compiler stuff that you'd see elsewhere: parsing, types and type checking, polymorphism, symbol tables, and code generation. Pretty much the only thing that isn't covered is optimizations. The final project is a program that <a href="http://www.antlr.org/wiki/display/CS652/C+subset+compiler" rel="noreferrer">compiles a subset of C</a>. Because you use tools like ANTLR and LLVM, it's feasible to write the entire compiler in a single day (I have an existence proof of this, though I do mean ~24 hours). It's heavy on practical engineering using modern tools, a bit lighter on theory.</p> <p>LLVM, by the way, is simply fantastic. Many situations where you might normally compile down to assembly, you'd be much better off compiling to <a href="http://llvm.org/docs/LangRef.html" rel="noreferrer">LLVM's Intermediate Representation</a> instead. It's higher level, cross platform, and LLVM is quite good at generating optimized assembly from it.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload