Skip to content

DoctorWkt/acwj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Warren Toomey
Jul 18, 2024
64e6ccf · Jul 18, 2024
Dec 6, 2022
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 9, 2023
Dec 24, 2022
Dec 24, 2022
Dec 25, 2022
Dec 25, 2022
Dec 25, 2022
Dec 25, 2022
Dec 25, 2022
Dec 26, 2022
Dec 26, 2022
Dec 6, 2022
Dec 28, 2022
Dec 28, 2022
Dec 28, 2022
Dec 29, 2022
Dec 29, 2022
Dec 29, 2022
Dec 30, 2022
Dec 30, 2022
Dec 30, 2022
Dec 30, 2022
Dec 30, 2022
Dec 30, 2022
Dec 30, 2022
Dec 30, 2022
Jan 3, 2023
Jan 3, 2023
Jan 3, 2023
Jan 3, 2023
Jan 4, 2023
Jan 4, 2023
Jan 4, 2023
Jan 4, 2023
Jan 4, 2023
Jan 4, 2023
Jan 5, 2023
Jan 5, 2023
Jan 5, 2023
Jan 5, 2023
Jan 5, 2023
Jan 5, 2023
Jan 5, 2023
Jan 5, 2023
Dec 6, 2022
Jan 5, 2023
Jan 6, 2023
Jan 6, 2023
Feb 10, 2023
Feb 10, 2023
Dec 6, 2022
Feb 10, 2023
Jul 18, 2024
Jul 18, 2024
Oct 18, 2019
Jul 18, 2024

Repository files navigation

A Compiler Writing Journey

In this Github repository, I'm documenting my journey to write a self-compiling compiler for a subset of the C language. I'm also writing out the details so that, if you want to follow along, there will be an explanation of what I did, why, and with some references back to the theory of compilers.

But not too much theory, I want this to be a practical journey.

Here are the steps I've taken so far:

There isn't a schedule or timeline for the future parts, so just keep checking back here to see if I've written any more.

Copyrights

I have borrowed some of the code, and lots of ideas, from the SubC compiler written by Nils M Holm. His code is in the public domain. I think that my code is substantially different enough that I can apply a different license to my code.

Unless otherwise noted,

  • all source code and scripts are (c) Warren Toomey under the GPL3 license.
  • all non-source code documents (e.g. English documents, image files) are (c) Warren Toomey under the Creative Commons BY-NC-SA 4.0 license.