Usted está aquí: Inicio web asignaturas

TRADUCTORES

  Código Nombre    
Asignatura 1710026 TRADUCTORES Créditos Teóricos 3
Descriptor   COMPILERS AND INTERPRETERS Créditos Prácticos 4.5
Titulación 1710 INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN Tipo Obligatoria
Departamento C137 INGENIERÍA INFORMÁTICA    
Curso 3      
Créditos ECTS 6      

Para el curso Créditos superados frente a presentados Créditos superados frente a matriculados
2007-08 79.3% 56.5%

 

 

Profesores

José Antonio Jiménez Millán (coordinador)

Situación

Prerrequisitos

Conocimientos de programación en C y C++, estructuras de datos, y sistema
operativo Linux.

Contexto dentro de la titulación

Se trata de una materia que es, clásicamente, considerada como bagaje cultural
básico de cualquier informático.

Esta asignatura es continuada en 4º y 5º curso en las asignaturas de
Procesadores de Lenguajes I y II.

A su vez, pone en práctica conocimientos de otras materias de la carrera como:
programación, sistemas operativos o estructuras de datos.

Recomendaciones

Debido al escaso número de créditos, la asignatura se ha planteado como una
introducción al tema y con un enfoque eminentemente práctico.

Se recomienda el trabajo continuado desde el principio del curso, la realización
de prácticas y ejercicios sobre el ordenador.

Competencias

Competencias transversales/genéricas

Capacidad de relacionar conocimientos teóricos con la práctica.
Resolución autónoma de problemas.
Capacidad de organización y planificación.

Competencias específicas

  • Cognitivas(Saber):

    Conocimientos de informática relativos al ámbito de estudio.
    Capacidad de organización y planificación.
    Manejo de manuales y documentación en inglés.
    Saber gestionar la información.
  • Procedimentales/Instrumentales(Saber hacer):

    Describir por escrito preguntas teóricas de la materia.
    Resolver ejercicios y problemas de la materia.
    Buscar información de la asignatura.
    Programar, compilar y depurar programas que implementen ejercicios de
    la materia en cuestión.
    
  • Actitudinales:

    Compromiso ético.
    Trabajo continuado.
    Razonamiento crítico.
    Toma de decisiones.

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) (6 horas)
• El papel del analizador lexicográfico.
• Descripción y reconocimiento de los tokens.
Tema 3. Análisis sintáctico (Parsing) (14 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. Introducción a la Traducción Dirigida por Sintaxis. (6 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.


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 ejemplo 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 utilizando 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

No hay docencia

Distribución de horas de trabajo del alumno

Nº de Horas (indicar total): 150

  • Clases Teóricas: 26  
  • Clases Prácticas: 39  
  • Exposiciones y Seminarios:  
  • Tutorías Especializadas (presenciales o virtuales):
    • Colectivas: 4  
    • Individules:  
  • Realización de Actividades Académicas Dirigidas:
    • Con presencia del profesor: 6  
    • Sin presencia del profesor:  
  • Otro Trabajo Personal Autónomo:
    • Horas de estudio: 47  
    • Preparación de Trabajo Personal: 0  
    • ...
      Realización de
      problemas = 24 horas
       
  • Realización de Exámenes:
    • Examen escrito: 4 horas  
    • Exámenes orales (control del Trabajo Personal):  

Técnicas Docentes

Sesiones académicas teóricas:Si   Exposición y debate:Si   Tutorías especializadas:Si  
Sesiones académicas Prácticas:Si   Visitas y excursiones:No   Controles de lecturas obligatorias:No  

Criterios y Sistemas de Evaluación

Se realizará un 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 preguntas 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.
La calificación final será la suma ponderada de la parte relativa al examen de
teoría, y al examen de prácticas.

Recursos Bibliográficos

• José Antonio Jiménez Millán. "Compiladores y Procesadores de Lenguajes. 2ª
ed.".
Edita: Servicio de Publñicaciones de la Universidad de Cádiz, 2010.
• Aho, Alfred V. & Lam, Monica & Sethi, Ravi & Ullman, Jeffrey D. "Compiladores:
Principios, Técnicas y Herramientas 2ª edición". Edita: Addison-Wesley, 2008.
• Manuales de Bison y Flex (dentro de la documentación del sistema operativo
Linux).
• John E. Hopcroft & R. Motwani & Jeffrey D. Ullman. “Teoría de
autómatas,lenguajes y computación. 3ED”. Ed. Addison-Wesley. 2008.
• Bjarne Stroustrup. "El Lenguaje de Programación C++". Addison Wesley.

 

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