Programming Language


OCaml is a functional programming language suitable for writing compilers. Cornell CS3110 is a great course on OCaml.

The Bolt Compiler

Here is a tutorial of creating a new language called Bolt, which is essentially a new compiler frontend that works with LLVM backend.

Writing LLVM Backend

Andres Amaya Garcia has a series of posts teaching how to write a LLVM backend for RV32IM. The LLVM official website also has a tutorial on writing a backend.

Memory & Type Safety

The definitions found on wikipedia are not satisfiable. Here is Michael Hicks’ definition on memory safety and type safety.