Institución Facultad de Cs. Físicas y Matemáticas Facultad de Cs. Físicas y Matemáticas
Disponible desde Primavera 2008
Cursos Asociados Otras realizaciones de este Curso
Objetivos El objetivo de este curso es entregar los elementos necesarios para implementar la traducción, o “compilación”, de un lenguaje de programación de alto nivel al lenguaje de máquina de un computador digital.

El énfasis del curso son las técnicas usadas en el diseño de compiladores, sus modelos teóricos y la implementación de un lenguaje de alto nivel.
Descripción Para el curso usaré los apuntes y metodología que amablemente me facilito Alex Aiken, ex profesor de Berkeley. En la actualidad el profesor Aiken trabaja en Standford, sin embargo yo usaré el material que usaba en Berkeley, que me parece muy didáctico y entretenido. Esto consistirá en construir un compilador para el lenguage COOL (Classroom Object-Oriented Language) que genera código para la máquina MIPS.

Si quieren saborear un poco cool pueden ver la página:
www.cs.berkeley.edu/~aiken/cool/

En general me gusta mucho su enfoque aunque en algunas partes pasaré otras técnicas que me gustan más o daré más énfasis en ciertos aspectos.
Metodología Introducción

Un poco de historia, estructura general de un compilador, un compilador básico

Análisis Léxico

Expresiones regulares y autómatas finitos, AFN, AFD, transformar un AFN a AFD. Generación de un analizador léxico. LEX

Análisis Sintáctico

Gramáticas libres de contexto, notación BNF. Árbol de derivación, análisis descendente y ascendente, análisis LALR. Gramáticas ambiguas. YACC

Análisis Semántico

Atributos, tabla de símbolos, tipo de datos

Ambientes de Ejecucción

Organización de la memoria, memoria dinámica, paso de parámetros

Generación de Código

Código intermedio: declaraciones, asignaciones, expresiones boolean, control, llamado a funciones. Generación de código, asignación de registros, optimización de código
Evaluación El curso comprenderá 4 tareas (T1, T2, T3 y T4) y tres controles
La nota de tareas NT se calcula como NT = 0.6*(T1+T2+T3) + 0.4*T4.

Para aprobar el curso debe tener NT >= 4

La Nota de Control (NC) es el promedio simple de los tres controles y el Examen ( el Examen sustituye la peor nota de los controles, en caso de ser superior a ella). Si la Nota de Control es superior o igual a 3,7 pero inferior a 4,0, el estudiante tendrá derecho a rendir un Examen Adicional (oral o escrito), con el cual mantendrá su nota reprobatoria o elevará la Nota de Control a 4,0.

La nota de eximición del exámen es superior o igual a 5.5

La Nota final se calcula como NF = 0.5*NT+0.5*NC
Programa del Curso 2006_0_CC50A.pdf
Compartir