dependently-typed
  • wiki
  • meetings
  • Learn

    Note: This page is constantly updated with new material :)

    New to compilers?

    We recommend starting by going through "Crafting Interpreters" by Bob Nystrom. The books is available for free online and provides an accessible introduction to the topic.

    If you are looking for textbook recommendations, The Dragon Book or Engineering a Compiler will serve you well.

    The langjam repo also has some good resources on getting started.

    Intermediate?

    Read some of this papers listed in https://c9x.me/compile/bib/

    Highly recommend studying the architecture of existing open source projects. It will help you get better at navigating large codebases and will give you a sense of what techniques the industry is using.

    The Architecture of Open Source Applications has a good list of codebases to study. Let your curiosity guide you through most of this process.

    Interested in theoretical stuff?

    Types and Programming Languages by Benjamin Pierce and Practical Foundations for Programming Languages by Robert Harper are great introductory texts. You can find a series of course notes on different kinds of logic on Frank Pfinning's webpage.

    For hands-on experience with formal methods, Software Foundations is great. Once you've graduated from it, you may also want to check out Certified Programming with Dependent Types by Adam Chlipala. There is also Lean which is gaining a lot of popularity. It has excellent material on formalizing mathematics using programming languages.

  • rss
  • email
  • github
  • discord