Created 4 projects in COP3402, Systems Software: virtual machine, lexical analyzer, tiny P/L machine, and compiler
In order to translate high level languages - like Java, Python, and C - into machine code for computers to process and understand what tasks it needs to execute, the source code must go through an entire process. It begins with entering the compiler which will translate these higher level languages into assembly code, a low-level programminmg language. The four projects contained in this repository demonstrate this process...
- VM (Virtual Machine) --> This project is separate from the rest because this reads assembly language programs.
- Lexical Analyzer
- Tiny P/L Machine
- Final Compiler
Projects 2-4 build off each other however, in order to meet specific criteria for the course, the EBNF grammar1 used differs in all 3.
*NOTE: There is a README file contained in each project to help explain the functionality of that specific step in the compiler process!
EBNF Grammar1 = Extended Backus-Naur form grammar expresses a defined language which, in this case, is for a programming language. It is used to check if a program's syntax is valid or not.