Giter Site home page Giter Site logo

uidaho-cs445-compiler-project's Introduction

Compiler and Translator Design Project

https://travis-ci.org/andschwa/uidaho-cs445.svg?branch=master Andrew Schwartzmeyer

Summary

  • University of Idaho - Department of Computer Science
  • CS 445: Compiler and Translator Design, by Dr. Clinton Jeffery

This is a work-in-progress old-school compiler using Flex and Bison for a subset of C++, dubbed “120++” as it should work for most code written in CS 120, including basic classes.

This repo is located at: https://github.com/andschwa/uidaho-cs445

Assignments

Assignment #1: A Lexical Analyzer

Per the requirements, my initial goal was to create a lexical analyzer (using Flex) for 120++.

Assignment #2: A Syntax Tree

Per the requirements, my second goal was to write (or reuse) a 120++ grammar that works with Bison.

Assignment #3: Semantic Analysis

Per the requirements, my third goal was to perform semantic analysis (including populating symbol tables and type checking the expressions) on the syntax tree.

Assignment #4: Intermediate Code Generation

Per the requirements, my fourth goal was to implement intermediate code generation, i.e., a list of three-address instructions given the parse tree.

Assignment #5: Final Code Generation

Per the requirements, my fifth goal was to implement final code generation, i.e., either native (assembly) code, or three-address C code to demonstrate the correctness of the compiler’s memory layout and intermediate code logic.

Seeing as how I dislike assembly and have a greater need for my time than a perfect grade, I have chosen to implement TAC-C.

uidaho-cs445-compiler-project's People

Contributors

andyleejordan avatar

Stargazers

 avatar Laurie Luo avatar  avatar  avatar Siro Díaz Palazón avatar Chris Goes avatar Jesse Frantzich avatar  avatar

Watchers

James Cloos avatar  avatar Jesse Frantzich avatar

Forkers

shyamsunder007

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.