Saltar a contenido

Compiladores

Photo Credit: openclassroom.stanford.edu

Requisitos

  • Tener claros los conceptos de CC1, CC2 y CC3.
  • Tener claros los conceptos de Informática 3.
  • Tener habilidad para programar en Java.

Descripción

Este es un curso introductorio al diseño de lenguajes de programación y a la implementación de sus compiladores e intérpretes. En el proceso, haremos una exploración general al diseño de lenguajes de programación y su impacto en la implementación de los mismos. Durante este semestre, nos enfocaremos en un lenguaje particular: Classroom Object Oriented Language (COOL).

Objetivos

Uno de los objetivos de este curso es explorar la estructura de los lenguajes de programación y considerar alternativas a características familiares en lenguajes de programación. Estudiaremos además el problema de la traducción de lenguajes de alto nivel a formas que pueda ejecutar la máquina, utilizando el lenguaje COOL como lenguaje de alto nivel y RISC-V como lenguaje ensamblador. La implementación de un compilador se hace por varias razones:

  • Aprender técnicas que se aplican a muchas clases de problemas fuera del ámbito de un compilador,
  • Obtener una mejor comprensión de las herramientas que utilizamos cuando programamos y los costos de los programas que escribimos.
  • Para obtener experiencia construyendo y validando un problema de ingeniería sustancialmente complejo.

Libro de Texto