El objetivo de esta asignatura es que los alumnos adquieran los conocimientos y capacidades básicos para procesar documentos en formatos intercambiados en aplicaciones telemáticas. Se considera tanto el enfoque tradicional (procesadores de lenguajes) como el enfoque basado en tecnología XML, y se relacionan ambos. Para lograr estos objetivos, el alumno debe adquirir una serie de conocimientos y capacidades.
Por lo que se refiere a conocimientos, al finalizar el curso el estudiante será capaz de:
- Conocer las definiciones de alfabeto, cadena y lenguaje.
- Entender las partes en que se divide un compilador, las tareas que se realizan en cada parte y sus interrelaciones.
- Conocer algunos formalismos para definir lenguajes: expresiones regulares y gramáticas.
- Conocer las funciones de un analizador léxico y como especificarlo.
- Conocer las funciones de un analizador sintáctico y como especificarlo.
- Conocer el funcionamiento de un generador de analizadores sintácticos LR(k).
- Conocer las definiciones de atributo, atributo heredado y atributo sintetizado.
- Conocer como especificar un atributo.
- Conocer el lenguaje XML
- Conocer el formato DTD para especificación de aplicaciones XML
- Conocer el entorno para procesar documentos XML DOM
En cuanto a las capacidades, éstas las podemos clasificar en dos grupos, uno de capacidades específicas y otro de capacidades más genéricas o destrezas.
En cuanto a las capacidades específicas, al finalizar el curso el alumno será capaz de:
- Entender cuál es el lenguaje definido por una expresión regular o una gramática.
- Definir la especificación de un analizador léxico y un analizador sintáctico para un lenguaje dado.
- Programar un conjunto de clases Java que representen los árboles de sintaxis abstracta para cadenas de un lenguaje dado.
- Utilizar generadores de analizadores para producir analizadores léxicos y sintácticos.
- Implementar una tabla de símbolos.
- Implementar un atributo sintetizado o heredado a partir de su especificación.
- Implementar un comprobador de tipos.
- Implementar otras comprobaciones requeridas por el analizador semántico.
- Diseñar e implementar un generador de código en Java.
- Determinar si un documento XML es válido según un DTD.
- Escribir programas sencillos que procesen documentos XML.
En cuanto a las capacidades genéricas o destrezas, los alumnos deberán ser capaces de:
- Identificar, formular y resolver problemas ingenieriles.
- Usar técnicas, destrezas y modernas herramientas ingenieriles necesarias para la práctica ingenieril.