ICOM 4029 – Compiler Construction (Fall 2014)

Techniques involved in the analysis of source languages and the generation of efficient object codes with emphasis on the components of a compiler.

Información General

Prontuario del Curso (PDF)
Bosquejo del Curso (PDF)

Conferencias (Martes y Jueves 3:30 – 4:45 Stefani 205)

Lecture 1: Course Overview, PL History, PL Design (PPTPDF)
Lecture 2: Overview of the COOL Language (PPTPDF)
Lecture 3: Lexical Analysis (PPTPDF)
Lecture 4: Introduction to Syntactic Analysis (PDF)
Lecture 5: Top-Down Parsing (PDF)
Lecture 6: Bottom-up Parsing (PDF)
Lecture 7: Static Semantic Analysis (PDF)
Lecture 8: Runtime Environments (PDF)
Lecture 9: Code Generation I (PDF)
Lecture 10: Operational Semantics of COOL (PDF)


The lectures on this course are based on (very) slight variations of the slides used by Prof. George Necula for the CS 164 course offered at the University of California Berkeley.  Professor Necula kindly granted us permission to use his materials.  Thanks!


- Examen Parcial 1: TBA (Temas, Práctica, Solución, Estadísticas)
- Examen Parcial 2: TBA  (Temas, Practica, Solución, Estadísticas)
- Examen Final:       TBA (Temas, Práctica, Solución, Estadísticas)

Asignaciones de Programacion

Programming Assignment 1. A COOL Stack Machine. Due September 16 11:59 PM. (PDF)
Programming Assignment 2. COOL Lexer. Due October 10 11:59 PM. (PDF)
Programming Assignment 3. COOL Parser. Due TBA. (PDF)
Programming Assignment 4. COOL Semantic Analyzer. (PDF) Part A Due October 31, 2014. Part B Due November 10, 2014
Programming Assignment 5. COOL Code Generator. (PDF) Part A Due Nov26, 2014. Part B Due Dec4, 2014

Schedule for ALL programming assignments (PDF)


Laboratory 1. Writing and running Cool code (PDF)
Laboratory 2. Lexical Analysis (PDF)
Laboratory 3. Finite Automata Continued and PS2 (PDF)
Laboratory 4. PAs 1 & 2 (PDF)
Laboratory 5. Syntactic Analysis (PDF, SourceCode)
Laboratory 6. Syntactic Analysis Continued (PDF)
Laboratory 7. Semantic Analysis (PDF)
Laboratory 8. Semantic Analysis Continued (PDF)


Linux Distribution of the Cool Support Code (cool-linux.tar.gz)
Emacs for Windows (download)
.emacs File (download)
SPIM Simulator (home sitewindows version)
UC Berkeley  SPIM including SPIM for Mac OS (home sitemacOS X)
X Server for Windows (download)

Documentación para Cool y Lecturas Suplementarias

Cool Manual (PDF)
Tour of the Cool Support Code (PDF)
Cool Javadoc
Easy I Quick Reference Sheet (PDF)
“The Nature of Computing”. Bienvenido Velez. COMPEL 2002 Plenary Talk. (PDF)
“An Overview of Information Theory” Bell Labs. (PDF)
“Assemblers, Linkers and the SPIM Simulator”. This is Appendix A of Hennessy & Patterson, Computer Organization and Design: The Hardware/Software InterfaceCoutersy of Morgan Kaufmann Publishers.

RFC 1855: Netiquette Guidelines. ABSTRACT: This document provides a minimum set of guidelines for Network Etiquette (Netiquette) which organizations may take and adapt for their own use. As such, it is deliberately written in a bulleted format to make adaptation easier and to make any particular item easy (or easier) to find. It also functions as a minimum set of guidelines for individuals, both users and administrators. This memo is the product of the Responsible Use of the Network (RUN) Working Group of the IETF.

SPIM/MIPS Instruction Set Sheet (PlainText)

Enlaces de referencia

Web site del curso CS 164 de University of California Berkeley by George Necula (Spring 2004)

Web site del libro de Patterson y Hennessy “Computer Organization: The Hardware Software Interface”.

Evaluación de la clase por los estudiantes

Evaluación del curso por los estudiantes durante el examen parcial I (PDF)

Si descubres algún enlace útil para la clase  avísame para colocarlo aquí.