Purpose

The compiler is planned as an educational and research platform for exploring compiler optimization techniques and programming language implementation.

Scope

This compiler targets a subset of C for AMD64/Linux, sufficient to compile programs consisting of functions, control flow, pointers, arithmetic, arrays, structs, and standard I/O via libc. The minimal viable feature set is defined by the benchmark programs along with compiler source code. The compiler accepts C source files and produces AMD64 assembly conforming to the System V ABI, which is then assembled and linked using external tools. C preprocessor, DWARF debugging, Go language support, targeting ARM architecture, and compliance to C language standards are out of scope.

Objectives

  • Learn compiler engineering concepts through hands-on, systematic implementation
  • Understand optimization algorithms and their practical applications
  • Build maintainable and extensible compiler architecture
  • Generate correct and efficient AMD64 machine code

Philosophy

This project follows a systematic, disciplined, and reproducible approach adhering to KISS and Lean Software Development principles. All source code, algorithms, and compiler infrastructure are authored by the developer. No code generation tools, large language models, or AI-assisted code completion are used in the implementation. The compiler does not rely on external compiler construction tools such as lex, yacc, or LLVM. Implementation proceeds incrementally, with each phase producing testable, working software.