The Jack compiler that is implemented in C within the scope of project 10 and project 12 from the book The Elements of Computing Systems (further info can be found here https://www.nand2tetris.org/).
The Jack compiler compiles jack files into vm files that can later be run in the Virtual machine emulator (instructions + emulator can be found here https://www.nand2tetris.org/software).
The code compile on Ubuntu using Cmake