https://www.reddit.com/r/programming/comments/it3i6i/walter_brights_explanation_on_how_compilers_can/