Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Roadmap-To-Compilers

Welcome! In this document we try to delineate a clear roadmap for people and/or students who want to get into what it takes to engineer and build Compiler Software.

Prerequisites

This guide is intended for people who already have a general understanding of:

  • Programming using general-purpose low-level languages (C, C++, Rust)
  • Understanding of basic operating systems architectures
  • Basic computer architectures (preferably x86)
  • Algorithms and Data Structures

Resources

The following is a collection of "free" online resources meant to build a general understanding of how a compiler works. We also provide a series of PROJECTS to test and apply your knowledge.

YOU ARE STRONGLY ENCOURAGED to not only build projects mindlessly but to actually understand the basics of the theory first.

Books

The following books are to be read in the specified order:

  1. Robert Nystrom - Crafting Interpreters — A great book that teaches you how to build an interpreter from scratch using Java and C.
  2. Keith Cooper, Linda Torczon - Engineering a Compiler — A comprehensive, modern book on compiler design and implementation.
  3. Muchnick - Advanced Compiler Design and Implementation — An advanced book focused on optimization techniques.

Note: links are not official so they are not guaranteed to work...

Other

Free Online-Courses

YouTube

Tools

  • Compiler Explorer (Godbolt) - An amazing online tool to see how different compilers compile code snippets in different languages and with different optimization levels.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors