Skip to content

tharittk/compiler-studies-vault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Teaching myself a compiler 📚

👋 These are the collection of resources I used to study compilers in my spare time. It is still evolving as I continue to learn.

  • Stanford Compiler

  • Princeton Compiler

    These two courses, when combined, serve as an introduction to the compiler.
    The video lectures from Stanford are heavily weighted on the front-end part.
    And since I want to learn LLVM along with compiler theory, I instead did the assignments in the Princeton class.
    It covers more materials from Stanford but lacks video lectures. 6 assignments involve building an ML-like compiler in C++.
    
    • Lexical analysis with Flex
    • Parsing with Bison
    • Code generation using LLVM IR Builder (this is fun !)
    • Instrumenting code with LLVM Pass (Edge and Block Profiler)
    • SuperBlock Formation
  • Building the LiveOak-3 (Java-like) programming language

    As a part of my graduate coursework, I built an object-oriented language and got
    a chance to hand-code an LL(1) Recursive Descent Parser - oh, it was beautiful once done (but I cannot share !).
    Also, code generation with Stack Machine was a pain in debugging and made me appreciate LLVM IR Builder.
    
  • Engineering a Compiler - I read this back-to-back and found that I couldn't get a good grasp of compiler optimization and back-end development without lectures.

Current

  The compiler optimization and backend are cool - currently, this is just my feeling. 
  I'm going to validate that.
  • Compiler Optimization - Sorav, Bansal - IIT Delhi

    I like his teaching style. And the playlist is comprehensive.

  • Compiler Optimization by U of Toronto | videos

    This course has assignments using LLVM covering

    • LLVM Pass
    • Dataflow Analysis framework
    • Loop-Invariant Code motion

    I believe it is modeled after the course from Carnegie Mellon (assignments are pretty much the same). I will do the assignments, but prefer to have the lecture from IIT (I like the pace there more).

  • Cornell CS6120 This one is more like a graduate-level seminar + lectures. I plan to do this last as it involves exploring with paper. But the guy teaching it looks cool.

Books

Here are the books I have beside me

image image image

About

A collection of compiler labs based on LLVM + online resource for self-study

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •