This is the course project of my Languages and Compilers course, developed in the Spring of 2021. The goal was to develop a bytecode compiler and virtual machine for a simple language, Alpha, from scratch. The compiler and virtual machine are completely independent binaries.
cd alpha
make
This will produce the bytecode compiler and virtual machine, alc
and avm
, respectively.
brief: './alc <source> | ./avm'
alc: ./alc [--log] <source>
(--log generates log files about the symbol table, the intermediate code and the final bytecode.)
avm: ./avm <file.abc>