Herramientas de usuario

Herramientas del sitio


compiladores:main

Lenguajes y Compiladores

  • Profesores: Héctor Gramaglia, Miguel Pagano, Demetrio Vilela.
  • Lista de Mail: famaf-compiladores arroba googlegroups punto com
  • Suscribirse en groups punto google punto com slash group slash famaf-compiladores.

Generalidades

  • Parciales: 2
  • Promoción: obteniendo al menos 7 en cada uno de los parciales y aprobando el taller.
  • Regularidad: aprobando 2 parciales (es posible recuperar 1) y aprobando el taller.
  • Taller: se implementarán intérpretes o compiladores de lenguajes de programación.
  • Examen: examen con parte escrita y parte oral.
  • Alumnos libres: examen con ejercicios/preguntas adicionales + defensa del taller.

Exámenes Parciales

  • PRIMER PARCIAL: 5 de mayo
  • SEGUNDO PARCIAL: 20 de junio

Teórico

Bibliografía

  • Reynolds, Theories of Programming Languages, Cambridge University Press, 1998.

Apuntes de Clase

Primera parte: Lenguajes imperativos

  • Apunte 1: Introducción a la sintaxis y la semántica de lenguajes. Sintaxis abstracta. Función semántica. Composicionalidad y dirección por sintaxis. Variables y metavariables. Ligadura. Sustitución y captura en el Cálculo de Predicados. Propiedades de la semántica denotacional. Filminas del apunte 1
  • Apunte 2: El problema de dar significado a la recursión. Ordenes parciales, predominios y dominios. Funciones monótonas, morfismos y funciones continuas. Espacio de Funciones. Teorema del Menor Punto Fijo. Aplicación del TMPF para el estudio de las soluciones de una ecuación recursiva. Filminas del apunte 2

Segunda parte: Lenguajes aplicativos puros, lenguajes aplicativos con referencias y asignación

Material complementario

  • Apunte 7: Continuaciones en el lenguaje imperativo simple y el lenguaje imperativo con extensiones.

Contenidos de cada Clase

  • Martes 14/3. Apunte 1: Distintas formas de dar significado a los lenguajes de programación. Sintaxis abstracta: gramáticas abstractas. Definición de la función semántica: ecuaciones semánticas, dirección por sintaxis y composicionalidad.

Prácticos

Prácticos 2017

  1. Guía del 14 de marzo Gramática abstracta y semántica denotacional, composicionalidad y dirección por sintaxis.
  2. Guía extra (sale gratis) del 17 de marzo Repaso de Haskell, implementación de gramática abstracta y definición de funciones semánticas.
  3. Guía del 17 de marzo Variables, ligaduras, sustitución, renombre. Todo esto en la lógica de predicados.

Los que siguen son del año pasado, por si alguien quiere ir avanzando…

  1. Guía del 18 de marzo Predominios y dominios. Funciones continuas, teorema del menor punto fijo.
  2. Guía del 1 de abril Semántica denotacional del lenguaje imperativo simple.
  3. Guía del 12 de abril Fallas. Semántica operacional del lenguaje imperativo simple.
  4. Guía del 22 de abril Productos y uniones disjuntas de predominios. Dominios recursivos. Input.
  5. Guía del 3 de mayo Cálculo Lambda, sintaxis. Reducción. Formas canónicas y normales. Evaluación Normal e eager.
  6. Guía del 17 de mayo Semántica denotacional del Cálculo Lambda, la evaluación normal y la evaluación eager.
  7. Guía del 24 de mayo Lenguaje Aplicativo. Evaluación normal e eager. Semántica denotacional.
  8. Guía del 3 de junio Lenguaje aplicativo con referencias y asignación.

Extras

  1. http://pdf.aminer.org/000/210/722/initial_algebra_semantics.pdf “Initial algebra semantics and continuous algebras” Artículo que explica qué es la sintaxis abstracta de una manera amena (en la introducción).

Taller

Descargar el archivo, allí se encuentra la definición de la gramática abstracta (o una representación en Haskell de ella, existe algo así como la gramática abstracta?) junto con otros módulos útiles como la representación de Ω y funciones para manipular el estado. La tarea consiste en definir las funciones semánticas para cada categoría sintáctica IntExp, Assert y Comm. Asegurarse que el proyecto puede cargarse con GHCi o compilarse con GHC.

Mandar por mail antes del 15 de mayo a las direcciones hector.gramaglia arroba gmail punto com, miguel.pagano arroba gmail punto com y demetriomeister arroba gmail punto com. El asunto del mail debe ser lyc-2016: ApellidoNombre y debe contener un archivo adjunto ApellidoNombre.tar.bz2.

Recordar todas las buenas prácticas que aprendieron a lo largo de la carrera: modularización, abstracción, consistencia en el estilo de programación, comentarios.

Exámenes Parciales de años anteriores

2015
2013
2012
2011
2010
2009
compiladores/main.txt · Última modificación: 2017/03/17 08:34 por mpagano