Se presentará un compilador para un subconjunto de estructuras del conocido lenguaje de programación C, llamado C - -. Se describirán las distintas etapas de implementación, partiendo por el análisis léxico de un secuencia de caracteres y finalizando en la generación de código assembly, pasando por el análisis sintáctico y semántico, además de las representaciones internas y las distintas optimizaciones. Este proyecto contempla diversos conceptos de asignaturas previas, tales como gramáticas libres de contexto, expresiones regulares, autómatas, entre otros. El lenguaje de implementación utilizado para el mencionado compilador fue C, bajo el sistema operativo GNU/Linux. Se utilizaron además diversas herramientas auxiliares, tales como Lex y Yacc para el análisis léxico y sintáctico (LR) respectivamente. Además se utilizó código de tres direcciones como lenguaje intermedio y se generío un assembly x86.