SkillAgentSearch skills...

Gogo

Go to MIPS compiler, written in Go. Course project for Compiler Design (CS335).

Install / Use

/learn @shivansh/Gogo
About this skill

Quality Score

0/100

Category

Design

Supported Platforms

Universal

README

gogo

Build Status

Go to MIPS compiler, written in Go.

<p align="center"> <img alt="Logo" src="gopher.svg"> </p>

Gopher vector imported from egonelbre/gophers .


Components

| Component | Demo | |:------------------------:|:----------------------------------------------------------------------------------------------------------------------------------:| | Token generation / Lexer | test1.out | | Parser | struct.go :arrow_right: struct.html | | IR generation | scope.go :arrow_right: scope.ir | | Code generation | pascalTriangle.ir :arrow_right: pascalTriangle.asm |

Setting up

Run ./scripts/setup.sh from the root directory of the project to set up the pre-commit git hooks.

Dependencies

Build

The following should generate relevant binaries inside the directory bin -

make

The generated binary bin/gogo can be used as follows -

Usage: gogo (-r | -r2s | -s) <filename>
  -p	Generates rightmost derivations used in bottom-up parsing
  -r	Generates IR instructions from go program
  -r2s  Generates the MIPS assembly from IR
  -s	Generates MIPS assembly from go program

NOTE: The generated MIPS assembly has been tested to work on SPIM MIPS32 simulator.

Testing

The tests can be built via -

make test

Related Skills

View on GitHub
GitHub Stars27
CategoryDesign
Updated2y ago
Forks6

Languages

Go

Security Score

80/100

Audited on Nov 11, 2023

No findings