Usted está aquí: Inicio web asignaturas

Fichas de asignaturas 2007-08


  CÓDIGO NOMBRE
Asignatura 1710026 TRADUCTORES
Titulación 1710 INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN
Departamento C137 LENGUAJES Y SISTEMAS INFORMATICOS
Curso 3  
Duración (A: Anual, 1Q/2Q) 1Q  
Créditos ECTS 6  

Créditos Teóricos 3 Créditos Prácticos 4,5 Tipo Obligatoria

 

Profesorado
José Antonio Jiménez Millán (coordinador)
María del Carmen de Castro Cabrera
Objetivos
Introducir las técnicas para que los alumnos sean capaces de describir, analizar
y traducir lenguajes formales. Incluyendo la construcción de pequeños
compiladores, intérpretes y procesadores de varios lenguajes formales sencillos.
Programa
CONTENIDO TEÓRICO (30 horas)
Tema 1. Introducción. (4 horas)
•  Compiladores. Definición y tipos de compiladores.
•  Contexto de un compilador.
•  Fases de un compilador y agrupación de las fases.
•  Cambios en la representación interna.
•  Herramientas para construcción de compiladores.
Tema 2. Análisis lexicográfico (Scanning) (4 horas)
•  El papel del analizador lexicográfico.
•  Descripción y reconocimiento de los tokens.
Tema 3. Análisis sintáctico (Parsing) (10 horas)
•  Papel de un analizador sintáctico.
•  Gramáticas libres de contexto. y jerarquía de Chomsky.
•  Análisis descendente (Top-Down) versus ascendente (Bottom-Up).
Tema 4. Traducción dirigida por sintaxis. (12 horas)
•  Gramáticas atribuidas y esquemas de traducción.
•  Evaluación ascendente con atributos sintetizados.
•  Evaluación "Primero en profundidad" con atributos por la izquierda.
•  Evaluación ascendente con atributos heredados.


5)  CONTENIDO PRÁCTICO (45 horas)
Tema 1. Análisis léxicográfico. (12 horas)
•  Construcción de un analizador léxico a mano.
•  Programa LEX (FLEX) para construcción de un analizador.
•  Programas de eejmplo utilizando FLEX.
Tema2. Análisis sintáctico. (15 horas)
•  Implementación de un analizador descendente.
•  Transformación de una gramática para su análisis descendente.
•  Analizadores ascendentes LR, y SLR.
•  El programa YACC (BISON) generador de analizadores.
•  Programas de ejemplo utlizando BISON.
•  Gramáticas ambiguas.
Tema 3. Traducción dirigida por sintaxis (18 horas)
•  Implementación de un traductor descendente.
•  Traducción ascendente con YACC (BISON
Metodología
Las clases de teoría consistirán en la exposición de los contenidos teóricos, por
parte del profesor, con ayuda de los medios audiovisuales necesarios. Por otra
parte se propondrán ejercicios a solucionar en casa por los alumnos y que se
discutirán, por los propios alumnos, en las clases siguientes.

En las clases de prácticas se mostrará, por parte del profesor, ejemplos típicos
de traductores, discutiendo la solución adoptada. Se desarrollarán algunos
seminarios para mostrar la utilización de las herramientas, Flex y Bison, que se
utilizan en la asignatura y, por último, se pedirá que los alumnos diseñen,
implementen y depuren sobre el ordenador, pequeños analizadores léxicos,
sintácticos así como pequeños traductores propuestos por el profesor.

Tanto los ejemplos típicos como los enunciados de los programas propuestos se
publicarán, con la suficiente antelación, en la página web de la asignatura.
Criterios y Sistemas de Evaluación
Se realizará un sólo examen final que constará de una parte teórica y de otra
práctica a realizar sobre el ordenador.
El examen teórico consistirá en preguntas y ejercicios escritos. El alumno
debe contestar a todas las preguntad demostrando dominar, suficientemente,
todos los objetivos básicos de la asignatura.
El examen práctico requerirá el diseño, escritura, depuración y ejecución de
programas sobre un ordenador.
Para superar la asignatura habrá que tener aprobados tanto el examen teórico
como el práctico, y para poder realizar el examen de prácticas, el alumno debe
tener aprobada la parte de teoría.
Recursos Bibliográficos
José Antonio Jiménez Millán. "Compiladores y Procesadores de Lenguajes".
Edita: Servicio de Publñicaciones de la Universidad de Cádiz, 2004.
Aho, Alfred V. & Sethi, Ravi & Ullman, Jeffrey D. "Compiladores: Principios,
Técnicas y Herramientas". Edita: Addison-Wesley, 1990.
M.E. Lesk & E. Schmidt. "LEX - A Lexical Analyzer Generator". Dentro de los
manuales del S.O. Unix. Bell Laboratories.
Johnson, Stephen C. "YACC - Yet another compiler compiler".   Dentro de los
manuales del S.O. Unix. Bell Laboratories.
John E. Hopcroft y Jeffrey D. Ullman. “Introduction to Automata Theory,
Languages, and computation”. Ed. Addison-Wesley. 1979.

El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente.