MAZE - Columbia University
MAZE
Alexander Brown (aab2212) | Alexander Freemantle (asf2161) Michelle Navarro (mn2614) | Lindsay Schiminske (ls3245)
CONTENTS
1. Introduction Related Work
2. Language Tutorial Environment Setup The basics Control Flow Methods
3. Language Reference Manual Lexical Conventions Data Types Expressions and Operators Statements Methods Classes
4. Project Plan Planning Process Specification Process Development Process Testing Process Team Roles Project Log
5. Language Evolution Original Idea Actual Implementation
6. Architecture The Compiler The Scanner The Parser The Analyzer The Code Generator
7. Test Plan Testing Phases Unit Testing Integration Testing Automation
Test Suites 8. Conclusions
Lessons Learned 9. Code Listings
scanner.mll ast.ml parser.mly analyzer.ml maze.ml testall.sh Test Suite Code
1. Introduction _______________________________________
MAZE is an imperative language with Java-like syntax. It compiles down to LLVM IR.
Related Work
For reference, we spent a great deal of time with the MicroC example explained to us in class as well as Dice, a project completed last year that was similar to the idea we had in mind for our language.
2. Language Tutorial _______________________________________
Setup
The language was developed in OCaml which needs to be installed in order to use the compiler. The best way to install it is by using OPAM, the OCaml Package Manager.
Once inside the maze directory, type "make" to compile the different components of the compiler. From there running "./t estall.sh" will build the corresponding .ll files from the .maze files. You can run an individual test within the "tests" directory using lli on the .ll file of the test you are running.
ex. lli test-binop.ll
You can also compile individual files by passing the maze executable the -c flag and the name of the file to be compiled.
ex. ./maze -c program.maze
The Basics
All variables and methods must be contained in classes.
Types All types are declared with their type followed by an
identification. All variables of all types must be declared before they are initialized. The following types are supported:
integers (int) floating point (float) booleans (bool) characters (char) strings (string)
class example { void main(){ int a; a = 3; float b; b = 4.2; bool c; c = true; char d; d = `d'; string e; e = "eeee"; }
}
Operators Maze supports the following binary operators: Arithmetic (+, -, *, /) Relational (==, !=, >, >=, ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- pseudo code tutorial and exercises teacher s version
- program 4 bloomin mazement
- cs2604 spring 2006 programming assignment 2 maze
- task 4 1 1 mysterious continents
- the big book of small python projects
- cs2604 fall 2001 people
- gcse computer science 9 1 non exam assessment nea guide
- project 9 maze generator
- maze columbia university
Related searches
- columbia university graduate programs
- columbia university career fairs
- columbia university graduate tuition
- columbia university costs
- columbia university cost per year
- columbia university tuition and fees
- columbia university book cost
- columbia university cost of attendance
- columbia university graduate school tuition
- columbia university tuition 2019
- columbia university tuition 2020 2021
- columbia university neuroscience