Encabezado Facultad de Ciencias
Presentación

Ciencias de la Computación (plan 1994) 2025-1

Optativas, Compiladores

Grupo 7010, 40 lugares. 37 alumnos.
Profesor Miguel Carrillo Barajas lu mi 16 a 17:30
Ayudante Marco Antonio Rivera Silva ma ju 15 a 16
Ayud. Lab. Tania Michelle Rubí Rojas vi 15 a 17
 

Bienvenidos al curso,

Avisos:

La modalidad del curso es virtual, y los exámenes serán presenciales (confirmado).
Las aulas y fechas serán anunciadas con al menos una semana de anticipación.
El modalidad del curso es virtual, con exámenes presenciales, y cubrirá puntos esenciales del temario oficial.
En el primer día de clases comentamos el temario, la metodología, y la evaluación del curso.

Resumen. El propósito de este curso de compiladores es:

Comprender y aplicar conceptos y técnicas utilizados en la construcción de compiladores.
Tales conceptos y técnicas son importantes en diversas áreas de Ciencias de la Computación.

Al terminar el curso los alumnos serán capaces de:

  1. Reconocer y usar gramáticas, lenguajes, libres de contexto (CFGs y CFLs).

  2. Generar una representación estructurada de un archivo de texto, de acuerdo a una gramática dada.
    Serán capaces de construir, o generar, un parser.

  3. Transformar la representación estructurada a un archivo utilizable con diversos propósitos,
    por ejemplo: ejecución, interpretación, o verificación.
    A partir de una representación estructurada, serán capaces de generar "código".

  4. Implementar un parser, y un intérprete, utilizando Haskell.


Durante el curso, señalaremos algunas de las limitaciones y alcances de las técnicas aprendidas.
Para ilustrar los conceptos y técnicas, utilizaremos ejemplos de experimentación (toy examples).

La comunicación con el grupo, durante la clase, se complementa mediante un grupo de interés y correo electrónico.

La evaluación considera tres evaluaciones parciales con porcentajes crecientes:

Calificación = Parcial_1*.20 + Parcial_2*.30 + Parcial_3*.50
Parcial_i = Tareas_i*.30 + Examen_i*.70


Grupo del curso.


Detalles del curso:

La metodología del curso opera con los siguientes puntos en forma cíclica:

1. Después de atender dudas, el profesor expone en clase los temas con una explicación crítica y ejemplos.
La exposición de temas se hace reconstruyendo los conceptos, y procurando la participación del grupo.
La notación (definiciones, teoremas, etc) es propia del curso, y se dan referencias a libros de texto.

2. El alumno revisa posibles dudas, estudia, y reconstruye los temas y ejemplos vistos en clase.

3. El alumno resuelve, con supervisión (individualmente y en equipo) ejercicios sobre temas vistos en clase.
Los ejercicios supervisados son base de las Tareas del curso.

4. El alumno revisa posibles dudas, y reconstruye los ejercicios resueltos con supervisión.
El alumno plantea sus dudas y preguntas al profesor.

5. El profesor atiende dudas sobre temas anteriores, y expone nuevos temas (como en el punto 1)

6. El alumno revisa las dudas atendidas, y vuelve a revisar los temas y ejemplos vistos en clase.

7. Fin del ciclo.

La notación de la materia es propia del curso con referencias a la bibliografía del curso.
Es importante que el alumno se mantenga al tanto de los temas vistos en clase,
Es importante que el alumno consulte las referencias bibliográficas para afianzar lo visto en clase.

La evaluación considera tres evaluaciones parciales (de 0 a 100 puntos) con porcentajes crecientes:

Calificación = Parcial_1*.20 + Parcial_2*.30 + Parcial_3*.50
Parcial_i = Tareas_i*.30 + Examen_i*.70
Tareas_i = Promedio de Tareas del parcial i
Examen_i = Examen del parcial i
En algunas ocasiones, la participación en clase se motiva puntos adicionales para tareas o exámenes.

Es obligatorio presentar el último examen para obtener calificación en el curso.
Los exámenes serán presenciales. Las aulas y fechas serán anunciadas con al menos una semana de anticipación.

CF = Round(Calificación / 10.0)
Acta = IF(Examen_ultimo=NP, NP, IF(CF<6, 5, CF))

Las tareas y exámenes se califican de 0 a 100 puntos.
Las preguntas de los exámenes, y tareas, son sobre temas vistos en clase antes de la fecha del examen.
Los exámenes son presenciales con tiempo límite marcado por el horario/día en que se aplica.
Las fechas de los exámenes se fijarán durante el curso, usando las semanas de exámenes finales ordinarios.
La asistencia a clases es importante, pero no se usa negativamente en cálculo la calificación.

En las tareas se permiten el trabajo en equipo, pero algunas tareas se entregan individualmente.
Es posible que en algunos ejercicios se requieran entregar una solución individual escrita de propia mano.
Las fechas de entrega de las tareas concuerdan con el trabajo ya realizado en clase,
es decir la mayoría de los ejercicios para entregar ya se supervisaron en clase.

El curso tiene ejercicios de programación en Haskell, a nivel básico y con ayuda del profesor.
Los ejercicios de programación son base de Tareas del curso.
Si las circunstancias lo permiten, usaremos también una herramienta de verificación formal.

La comunicación con el grupo, durante la clase, se complementa mediante un grupo de interés y correo electrónico.

Referencia adicional, al temario oficial. Hutton, Graham. Programming in haskell. Cambridge U. Press, 2nd Ed., 2016.

Miguel Carrillo.

 


Hecho en México, todos los derechos reservados 2011-2016. Esta página puede ser reproducida con fines no lucrativos, siempre y cuando no se mutile, se cite la fuente completa y su dirección electrónica. De otra forma requiere permiso previo por escrito de la Institución.
Sitio web administrado por la Coordinación de los Servicios de Cómputo de la Facultad de Ciencias. ¿Dudas?, ¿comentarios?. Escribenos. Aviso de privacidad.