Compiladores¶
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.