Usted está aquí: Inicio web asignaturas

TRADUCTORES

  Código Nombre    
Asignatura 1711026 TRADUCTORES Créditos Teóricos 3
Descriptor   COMPILERS AND INTERPRETERS Créditos Prácticos 4.5
Titulación 1711 INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS 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 75.0% 58.1%

 

ASIGNATURA OFERTADA SIN DOCENCIA

 

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 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):

    • 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.
    • 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:  
    • ...
      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

Al dejar de impartirse la asignatura en el curso 2012/2013 dispone de 4
convocatorias de examen que puede distribuir durante los cursos 2012/2013 y
2013/2014.

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.

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 & Rajeev 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.