El proyecto de la clase consistirá en construir un compilador para un lenguaje llamado Granita. Granita es un lenguaje fuertemente tipificado, orientado a objetos con soporte para herencia y encapsulamiento. El diseño de Granita tiene ciertas similitudes con otros lenguajes como C, C++ o Java. Aunque debemos tener en cuenta que Granita no es una copia exacta de ninguno de esos lenguajes. La funcionalidad de Granita ha sido reducida considerablemente comparado con un lenguaje “completo”.