Max Austin

Logo

BSc. Computer Science, Utah Valley University

Contents

Portfolio
Contact

Thanks for checking my page out! Please take a look around. You can contact me using the link above.

View My GitHub Profile

Compiler and Assembler/Virtual Machine



Project Description


Created with C++ using Visual Studio as an IDE

This project involves two primary programs, the Compiler and the Assembler/VM:

The compiler takes as input a program written in the KXI language (see grammar below). It performs lexical, syntax and semantic analysis on this file, which is then converted into intermediate code. The intermediate code is then turned into target code, which is output as an assembly file.

The assembler takes as input an assembly file, which is parsed and converted into bytecode which the virtual machine then executes. The instructions as well as more information can be found below.


KXI Language


KXI is an object-oriented programming language. Some features of the language are described below.

Supported Primitive Data Types
Integers
Characters
Booleans

The full grammar for the language is included in the file below.

KXI grammar 2019


Assembler Details


The assembly code used by the virtual machine has the following instructions available to it.

Important Note about Code


If you are interested in the code for this particular project, please contact me at any of the available contacts I have posted here. The code itself is private to help maintain the integrity of the course at UVU. Thank you for your understanding.