C Compiler

C → ARM64 subset → machine code → emulator

C source

Standard input

▶Output

1Tokenize

The lexer expands #defines and splits the source into tokens.

2Parse

A recursive-descent parser builds the syntax tree.

3Generate assembly

Code generation type-checks the tree and emits ARM assembly plus the runtime it uses.

4Assemble

The assembler encodes each instruction as a 32-bit word, split into its fields.