Skip to content

ChaseCarthen/CS660-Compiler-Construction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ANSI C to MIPS Compiler

Institution: University of Nevada, Reno
Course: CS660: Compiler Construction
Author: Chase Carthen
Author: Nolan Burfield
Author: Vinh Le
Date: 12/15/15

========================================

To run this compiler

On ubuntu it can be installed with these commands

$ sudo apt-get install python-pip spim
$ sudo pip install ply bintrees strconv termcolor

To run this compiler:

$ python driver.py input_file
$ spim a input_asm
The spim command will verify the results

Flags offered by this compiler can be referenced using the
$ python driver.py -h

Dependencies

Python - Main Language of this Compiler Project
**PiP - This module allows for easy of use in installing these python modules. **
**PLY - This module mimics the C equivalent of Flex and Yacc **
**Bintrees - This module allows for an easy of use Red-Black Tree **
**StrConv - This module allows for the type inference needed for type checking **
**TermColor - Chase has OCD for coloring text **

Features

Type Definitions - Capable of handling simple variable types(char, int).
N-Arrays - Fully Functional.
Functions - Fully Functional.
Constants - Fully Functional.
Recognize Syntax Errors - Can locate errors and provide IMPROVED feedback.
Constant Value Arithmetic - Capable of optimizing simple arithmetic.
For Loop - Fully Functional.
While Loop - Fully Functional.
Function Declarations - Fully Functional.
Function Definitions - Fully Functional.
Variable Declarions/Calls - Fully Functional.
If/Else - Fully Functional.
Simple Assignment - Fully Functional.
Type Checking - Fully Functional.
**Pointer - Simple 1D Pointers **
**Structs - No Array of Structs **

Additional Notes

Assignment Completed in Python 2.7

Extra credit: 1D Pointers, Structs, Multiple Dimensions, Recursion

About

Compiler Construction

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published