Profesor: 

Juan Miguel Vilar Torres

Estudios en los que se imparte el curso:

4º Ingeniería Informática

Conocimientos previos recomendables:

Los estudiantes deben tener conocimientos previos de programación en Python (asignaturas II04 e II24), programación en lenguaje ensamblador (II19), programación orientada a objetos (II17), árboles (II13), entornos de programación (II15) y teoría básica de autómatas y lenguajes formales (II20). 

Objetivos:

- Conocer con detalle la estructura de los procesadores de lenguaje: las partes en que se dividen (análisis léxico, análisis sintáctico, análisis semántico y generación), su interrelación y las principales técnicas utilizadas en cada una de ellas. 

- Conocer formalismos para especificar lenguajes de programación. 

- Aprender a implementar analizadores descendentes recursivos y a escribir 
gramáticas adecuadas para dichos analizadores. 

- Apreciar el interés de dichas técnicas para desarrollar aplicaciones informáticas que deban procesar datos de entrada estructurados (calculadoras, conversores de formato, navegadores web, etc.). 

- Poder implementar un compilador o intérprete de un lenguaje de programación con y sin ayuda de un metacompilador. 

Guia docent / Aprenentatge