Giter Site home page Giter Site logo

shyamsunder007 / partial-cpp-compiler Goto Github PK

View Code? Open in Web Editor NEW

This project forked from andyleejordan/uidaho-cs445-compiler-project

0.0 2.0 0.0 1.74 MB

CS445 Compiler and Translator Design Project

License: GNU Affero General Public License v3.0

Makefile 1.17% C++ 10.73% C 71.36% Lex 5.69% Yacc 11.06%

partial-cpp-compiler'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.

partial-cpp-compiler's People

Contributors

andyleejordan avatar

Watchers

James Cloos avatar Shyam Sunder avatar

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.