Compiladores I Código:  81.008    :  4,5
Consulta de los datos generales   Descripción   Objetivos   Contenidos   Lista de los materiales de los que dispone la asignatura   Materiales  
Este es el plan docente de la asignatura para el primer semestre del curso 2024-2025. Podéis consultar si la asignatura se ofrece este semestre en el espacio del campus Más UOC / La universidad / Planes de estudios). Una vez empiece la docencia, tenéis que consultarlo en el aula. El plan docente puede estar sujeto a cambios.

La asignatura Compiladores I es la primera parte del conjunto de asignaturas formado por Compiladores I y Compiladores II, cada una de éstas con una carga docente de 4.5 créditos.

En este primer bloque del conjunto, se mostrará cuál es la estructura básica de los compiladores de lenguajes generales. Veremos cómo, a partir de un programa fuente escrito en un lenguaje de alto nivel (por ejemplo C, PASCAL o FORTRAN), se puede obtener su traducción a un programa objeto, de funcionalidad equivalente, escrito en un lenguaje de más bajo nivel (ensamblador, código máquina ...).

Se tratarán especialmente los compiladores de lenguajes de alto nivel y de uso general (tipo PASCAL o C). Se estudiarán los módulos que los componen y las formas en que se comunican entre ellos. Se verá cómo se analiza un programa fuente para obtener las partes componentes y se detectan los posibles errores introducidos por el programador. Después se verá como a partir de los datos obtenidos en la parte de análisis, se genera el código objeto y es optimizado tanto para reducir el espacio ocupado como para mejorar la eficiencia del código generado.

Amunt

Los objetivos generales que se pretende que los estudiantes alcancen con esta asignatura son los siguientes:

1. Conocer las partes en que está dividido un compilador de uso general y saber cómo se relacionan.

2. Dibujar los diagramas que caracterizan el proceso de compilació y aplicarlos para describir el proceso de creación de un nuevo compilador en una plataforma determinada.

3. Obtener las expresiones regulares que permiten la programación del autómata finito que dividirá la entrada en unidades léxicas (palabras claves, constantes, ...).

4. Conocer las técnicas que permiten verificar la sintaxis de un programa fuente escrito un lenguaje determinado.

5. Diseñar la gramática de un lenguaje y utilizarla para generar un analizador sintáctico que verifique los errores estructurales del programa fuente.

6. Conocer los diferentes tipos de código intermedio y las técnicas que dirigen la generación de este tipo de código.

7. Profundizar en las técnicas aplicadas durante la generación de código: la asignación de memoria, el paso de parámetros y la selección del conjunto de instrucciones.

8. Aprender algunos de los procedimientos que permiten la optimización del código generado.

9. Conocer las herramientas de construcción de compiladores más habituales en el entorno a desarrollo usando Java, como JLex y CUP.

Amunt

La asignatura se estructura en cinco módulos, que representan el total de los créditos de la asignatura.

Módulo 1

Visión general: se verá una panorámica de la estructura general de los compiladores.


Módulo 2


Análisis Léxico: se estudiará la única parte del compilador que trabaja con el fichero fuente, convirtiendo sus caracteres en una secuencia de símbolos léxicos (tokens) y eliminando todo lo que no es necesario para su análisis (comentarios, saltos de línea ...).


Módulo 3

Análisis Sintáctico: se estudiará la fase encargada de verificar que el programa fuente, convertido en una secuencia de símbolos léxicos, llegan en el orden correcto y que se cumplen las especificaciones de la gramática libre de contexto que define el lenguaje.

Módulo 4

Análisis Semántico: se estudiará la verificación de la semántica del programa fuente que es dependiente del contexto, incorporando acciones semánticas en las producciones de la gramática y atributos en sus símbolos.

Módulo 5

Fase de síntesis: se estudiará la generación de código a partir del código intermedio, así como los aspectos a tener en cuenta con el fin de hacer una traducción automática y la fase final de optimización.

Amunt

Compiladores PDF

Amunt

Los materiales de la asignatura están en formato papel y siguen la estructura habitual del resto de materiales utilizados en la titulación. Se estructuran en cinco módulos, tal como ya se ha detallado en este documento.

Además, hay dos CDs con el software necesario para la realización de los ejercicios prácticos: el CD de Java, con el entorno de desarrollo para Java, y el CD de software, donde hay las herramientas de construcción de compiladores JLex y CUP.

Finalmente, en el espacio de recursos del aula se pueden encontrar documentos adicionales de soporte para la realización de los ejercicios prácticos.

Amunt