You are here:   ArielOrtiz.com > Compilers > Project: The Griffin Compiler

Project: The Griffin Compiler

Generalities

This project must be developed in teams of up to three members. Using C#, you must implement the different compiler phases for the Griffin programming language. Each phase will be evaluated using the following grading criteria:

Concept %
Phase implementation 80%
Version control usage 20%

Version control usage

Each team member must create a Bitbucket account. The team leader must create a new repository for the project with these characteristics:

Afterwards, the team leader must send invitations to the other team members (and also to ariel.ortiz@itesm.mx) so that they can all join the repo.

Read the Bitbucket 101 tutorial in order to learn how to get started with Bitbucket using Git. Also, you are strongly advised to read chapters 1, 2 and 3 from the “Pro Git” book.

All team members are expected to clone the Git repository and to commit and push frequently all code contributions.

Source code examples

Source file Description Date added
hello.griffin Prints "Hello World!" in the screen. 27-Aug-2014
palindrome.griffin Determines if a string is a palindrome. 27-Aug-2014
variables.griffin Using variables and constants with different scopes. 17-Sep-2014
binary.griffin Converts numbers into binary. 17-Sep-2014
factorial.griffin Computes factorials using iteration and recursion. 01-Oct-2014
lists.griffin Implementation of typical list operations. 01-Oct-2014

Due Dates

Phase Date Description Exemplar
1 03-Sep-2014 Lexical analysis. buttercup-0.1.tgz
2 01-Oct-2014 Syntactic analysis. buttercup-0.2.tgz
3 22-Oct-2014 AST construction. buttercup-0.3.tgz
4 12-Nov-2014 Semantic analysis. buttercup-0.4.tgz
5 03-Dec-2014 CIL code generation. buttercup-0.5.tgz

The project assessment will be carried out with each team personally during class hours in the specified date. All your code should be in the Bitbucket repo, so nothing else needs to be delivered.