Profesor: Federico Prat Villar

Objetivos:

Entender y manejar con soltura los conceptos de lenguaje y gramática. 

Entender y manejar con soltura las ideas principales que guían el diseño de compiladores e intérpretes. 

Entender en profundidad los conceptos propios de cada una de las distintas fases lógicas de compiladores e intérpretes (análisis léxico, sintáctico y semántico y generación de resultados). 

Manejar los conceptos anteriores con la soltura necesaria para poder diseñar completamente un pequeño compilador o intérprete. 

Poder implementar un pequeño compilador o intérprete utilizando para ello un metacompilador. 

Apreciar la posibilidad de utilizar en otros programas las ideas y técnicas propias del diseño de compiladores e intérpretes. 

Conocimientos previos recomendables:

Para poder abordar la asignatura con garantías, el alumno debe tener conocimientos previos de programación y de estructuras de datos; en particular, le será de mucha utilidad cierta soltura con el lenguaje de programación Python. Además, es recomendable que tenga conocimientos de teoría de autómatas y lenguajes formales. 

Temario:

TEORÍA 

1. Introducción a compiladores e intérpretes 

2. Análisis léxico 

3. Análisis sintáctico 

4. Análisis semántico 


PRÁCTICAS 

Diseño e implementación de compiladores e intérpretes 

Teaching / Learning guide