The course project involves building a compiler for SPL (SUSTech Programming Language), a simplified, strongly-typed, C-like language without advanced features like macros or pointers. SPL supports basic user interaction with built-in read and write functions, making it Turing-complete.
The compiler translates SPL programs into MIPS32 assembly, covering lexical and syntax analysis, semantic checking, intermediate code generation, and target code generation.