Compiladores II Código:  81.009    :  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.

Esta asignatura proporciona a los estudiantes conocimientos más avanzados de compiladores, con un énfasis en la parte práctica. Se presenta una aproximación moderna del uso de los compiladores para la construcción dinámica de sistemas.

La asignatura también introduce conceptos teóricos que amplían los conocimientos adquiridos en la asignatura de Compiladores I. Concretamente, se estudian los mecanismos de gestión de memoria, generación de código, gestión de tipos de datos, etc., tanto para el caso de la programación estructurada como el de la programación orientada a objetos. También se estudian los conceptos de lenguajes de marcas (SGML, XML), lenguajes interpretados, y otros tipos de lenguajes basados en paradigmas diferentes al imperativo, como son los funcionales o los declarativos.

La parte práctica de la asignatura, en la cual se basa la evaluación, consiste en la implementación de un conjunto de herramientas que simulan las distintas partes de un compilador. En vez de seguir un enfoque clásico (lenguaje fuente a lenguaje intermedio y finalmente lenguaje ensamblador), el objetivo es aplicar las técnicas de compiladores a la construcción de un entorno para documentos con contenido dinámico. Esta aplicación combina métodos del ámbito de XML con una "máquina virtual" para interpretar el contenido dinámico.

Amunt

Los objetivos generales que se pretenden conseguir en esta asignatura son los siguientes:

  1. Tener una visión general de los diferentes paradigmas de programación.

  2. Conocer las técnicas utilizadas para gestionar estructuras de datos complejas, como por ejemplo los tipos estructurados o los tipos objeto, y saber como traducirlos a lenguaje ensamblador.

  3. Conocer los diferentes tipos de rutinas que se utilizan en los diferentes paradigmas de programación y la forma de implementarlos.

  4. Entender el concepto de intérprete, su utilidad y sus ventajas e inconvenientes frente a un compilador. Saber evaluar cuál de los tipos de herramienta es más adecuado en una situación concreta.

  5. Entender el concepto de máquina de pila abstracta y saber aplicarlo para implementar un intérprete para un lenguaje determinado.  

  6. Conocer cuáles son los lenguajes de marcas y dominar la terminología utilizada en el ámbito de XML.

  7. Comprender la estructura de un documento XML y los diferentes mecanismos para describir su formato y comprobar su corrección.

  8. Conocer y utilizar los analizadores sintácticos XML. Saber elegir cuando hay que utilizar SAX y cuando hay que utilizar DOM.

  9. Comprender y utilizar los procesadores XSLT para transformar documentos XML.

Amunt

MÓDULOS DIDÁCTICOS

Módulo 1: Paradigmas de programación y generación avanzada de código

  • Introducción
  • Paradigmas de programación
  • Gestión del contexto
  • Representación y gestión de datos del código fuente
  • Rutinas y métodos
  • Gestión de errores en tiempo de ejecución

Módulo 2: Lenguajes de marcas

  • Introducción
  • Documentos electrónicos
  • La especificación XML
  • Analizadores sintácticos de XML
  • Procesadores XSLT
  • El API JAXP
  • Usos y aplicaciones de la tecnología XML

Módulo 3: Lenguajes interpretados

  • Introducción
  • Intérpretes
  • La máquina de pila abstracta
  • Construcción de un intérprete

Amunt

Compiladores II PDF

Amunt

Los materiales de la asignatura están en formato papel. Además, hay un CD de Java y un CD de software, que contienen todo el software necesario para la realización de la práctica y de los ejercicios (entre otros, Java, JLex y CUP).

En el espacio "Recursos" del aula podréis encontrar documentación adicional para la realización de los ejercicios propuestos.

Amunt