Guías Docentes Electrónicas
1. DATOS GENERALES
Asignatura:
PROCESADORES DE LENGUAJES
Código:
42349
Tipología:
OPTATIVA
Créditos ECTS:
6
Grado:
406 - GRADO EN INGENIERÍA INFORMÁTICA (AB)_20
Curso académico:
2021-22
Centro:
604 - E.S. DE INGENIERIA INFORMATICA ALBACETE
Grupo(s):
15 
Curso:
4
Duración:
Primer cuatrimestre
Lengua principal de impartición:
Español
Segunda lengua:
Inglés
Uso docente de otras lenguas:
Inglés para alumnos extranjeros
English Friendly:
S
Página web:
Bilingüe:
N
Profesor: JUAN JOSE PARDO MATEO - Grupo(s): 15 
Edificio/Despacho
Departamento
Teléfono
Correo electrónico
Horario de tutoría
ESII / 0.A.10
SISTEMAS INFORMÁTICOS
2044
juanjose.pardo@uclm.es

2. REQUISITOS PREVIOS

Esta asignatura se apoya en las competencias y conocimientos adquiridos en otras asignaturas del plan de estudios:

  • Teoría de Autómatas y Computación.
  • Estructura de Datos.
  • Fundamentos de Programación I y II.
  • Metodología de Programación.
  • Estructura de Computadores.

Por lo que para asimilar y aprovechar convenientemente los contenidos que se impartirán en  la asignatura, se recomienda haberlas superado.

3. JUSTIFICACIÓN EN EL PLAN DE ESTUDIOS, RELACIÓN CON OTRAS ASIGNATURAS Y CON LA PROFESIÓN

Esta asignatura se integra en la materia Tecnología Específica de Computación. Su principal objetivo es introducir y consolidar los principios de funcionamiento de los compiladores e intérpretes, así como mostrar su utilidad en el diseño y especificación de lenguajes específicos del dominio dedicados a un problema de dominio en particular, o una técnica de representación o resolución de problemas específica, y de la construcción de sus procesadores asociados.

Los conocimientos adquiridos en el estudio de los procesadores de lenguaje también encuentran aplicación fuera del campo de la compilación. La importancia práctica de los procesadores de lenguaje en la informática se manifiesta principalmente en el uso cotidiano que hace el profesional informático de compiladores e intérpretes, consustancial a la gestión y programación de los sistemas informáticos. Entre los campos de la informática en los que encuentran aplicación las técnicas aprendidas en Procesadores de Lenguaje podemos citar, sin ánimo de dar una relación exhaustiva, los siguientes: Diseño de los lenguajes de programación, herramientas de ayuda a la programación, diseño de lenguajes de control de aplicaciones o del sistema operativo, tratamiento de ficheros de texto con información estructurada, procesadores de texto, diseño e interpretación de lenguajes para el formateo de texto y descripción de gráficos, gestión de bases de datos, cálculo simbólico, control de dispositivos sofisticados, diseño de circuitería compleja (mediante los denominados compiladores de silicio), interfaces hombre-máquina multimodales, visión artificial, reconocimiento de formas, diseño de videojuegos, etc.

Hoy en día, la compilación se considera un área clásica de la informática, sólidamente fundada sobre un rico cuerpo teórico y sistematizada en sus aspectos de diseño. El futuro de los procesadores de lenguajes aparece vinculado al desarollo de sus múltiples áreas de aplicación. Por tanto, un conocimiento profundo de los principios y técnicas de procesadores de lenguajes es fundamental en la formación universitaria de especialistas en informática, y en concreto de los alumnos que opten por la intensificación de Computación


4. COMPETENCIAS DE LA TITULACIÓN QUE LA ASIGNATURA CONTRIBUYE A ALCANZAR
Competencias propias de la asignatura
Código Descripción
CM02 Capacidad para conocer los fundamentos teóricos de los lenguajes de programación y las técnicas de procesamiento léxico, sintáctico y semántico asociadas, y saber aplicarlas para la creación, diseño y procesamiento de lenguajes.
INS01 Capacidad de análisis, síntesis y evaluación.
INS04 Capacidad de resolución de problemas aplicando técnicas de ingeniería.
UCLM03 Correcta comunicación oral y escrita.
5. OBJETIVOS O RESULTADOS DE APRENDIZAJE ESPERADOS
Resultados de aprendizaje propios de la asignatura
Descripción
Conocer en qué consiste un lenguaje de programación y tener una visión integrada del funcionamiento y estructura de un procesador de lenguajes.
Saber construir aplicaciones basadas en procesadores para lenguajes específicos de un dominio.
Resultados adicionales
Descripción
Discutir qué problemas son susceptibles de ser resueltos con las metodologías y herramientas que permiten la construcción de analizadores a partir de las especificaciones léxicas, sintácticas y semánticas, y ser capaz de resolverlos.
Identificar y aplicar los aspectos de la teoría de lenguajes formales necesarios para la especificación de lenguajes de programación.
Documentar, describir y evaluar el proceso de construcción de un procesador de lenguaje.
6. TEMARIO
  • Tema 1: Estructura de los compiladores e intérpretes
    • Tema 1.1: Introducción
    • Tema 1.2: Etapas del proceso de traducción
    • Tema 1.3: La interpretación
    • Tema 1.4: La arquitectura real de compiladores e intérpretes
  • Tema 2: Análisis léxico
    • Tema 2.1: Introducción
    • Tema 2.2: Categorías léxicas
    • Tema 2.3: Especificación de las categorías léxicas
    • Tema 2.4: Autómatas de estados finitos
    • Tema 2.5: Implementación del analizador léxico
    • Tema 2.6: Algunas aplicaciones de los analizadores léxicos
  • Tema 3: Análisis sintáctico
    • Tema 3.1: Introducción
    • Tema 3.2: Gramáticas incontextuales
    • Tema 3.3: Algunas construcciones de los lenguajes de programación
    • Tema 3.4: Extensiones de las gramáticas incontextuales
    • Tema 3.5: Análisis descendente
    • Tema 3.6: Análisis ascendente
    • Tema 3.7: Implementación del analizador sintáctico
  • Tema 4: Análisis semántico
    • Tema 4.1: Introducción
    • Tema 4.2: Esquemas de traducción dirigidos por la sintáxis
    • Tema 4.3: El árbol de sintáxis abstracta
    • Tema 4.4: Comprobaciones semánticas
    • Tema 4.5: Interpretación
  • Tema 5: Generación de código
    • Tema 5.1: Introducción
    • Tema 5.2: Código intermedio
    • Tema 5.3: Organización y gestión de la memoria
    • Tema 5.4: Generación de código para expresiones
    • Tema 5.5: Generación de código para las estructuras de control
    • Tema 5.6: Generación de codigo para llamadas a función
    • Tema 5.7: Generación de código máquina
COMENTARIOS ADICIONALES SOBRE EL TEMARIO



7. ACTIVIDADES O BLOQUES DE ACTIVIDAD Y METODOLOGÍA
Actividad formativa Metodología Competencias relacionadas (para títulos anteriores a RD 822/2021) ECTS Horas Ev Ob Descripción
Enseñanza presencial (Teoría) [PRESENCIAL] Método expositivo/Lección magistral CM02 0.56 14 N N Se realizará la presentación de los conceptos teóricos de cada uno de los temas de la asignatura.
Resolución de problemas o casos [PRESENCIAL] Resolución de ejercicios y problemas CM02 INS01 INS04 0.64 16 N N Se resolverán diferentes Ejercicios/Problemas que permitan aplicar los conceptos teóricos estudiados. Esta actividad está relacionada directamente con la de elaboración de informes o trabajos (autonoma) en la que se engloba la evaluación de ambas tareas
Prácticas de laboratorio [PRESENCIAL] Trabajo en grupo CM02 INS01 INS04 0.72 18 N N Realización de las prácticas en el laboratorio con la ayuda del profesor. Esta actividad estará relacionada y será evaluada a traves de la actividad de Elaboracion de memoria de practicas
Prueba final [PRESENCIAL] Pruebas de evaluación CM02 INS01 INS04 UCLM03 0.24 6 S S Esta prueba de evaluacion se dividirá en dos partes que se haran por separado. Cada una de ellas será un examen escrito de conocimientos mínimos basado en la resolución de problemas o casos prácticos
Presentación de trabajos o temas [PRESENCIAL] Trabajo en grupo INS01 INS04 UCLM03 0.24 6 S S Defensa en clase de laboratorio el laboratorio de la memoria y el trabajo desarrollado en la practica que será entregada y que se realizará, como trabajo en grupo
Estudio o preparación de pruebas [AUTÓNOMA] Trabajo autónomo CM02 INS01 INS04 UCLM03 1.64 41 N N Estudio de forma autónoma e individual de los contenidos teóricos y prácticas de los temas desarrollados, así como preparación para las pruebas presenciales
Estudio o preparación de pruebas [AUTÓNOMA] Trabajo en grupo CM02 INS01 INS04 0.8 20 N N Realización de las prácticas como trabajo de grupo
Elaboración de informes o trabajos [AUTÓNOMA] Trabajo autónomo CM02 INS01 INS04 UCLM03 0.48 12 S S Realización de la memoria de los ejercicios de evaluación contínua por temas. En la memoria deberá darse una solución comentada y y justificada de los ejercicios planteados. Esta actividad está relacionada directamente con la de Resolución de problemas y casos (presencial)
Elaboración de memorias de Prácticas [AUTÓNOMA] Trabajo en grupo CM02 INS01 INS04 UCLM03 0.68 17 S S Realización y entrega de la memoria de prácticas como trabajo de grupo. Dicha memoria deberá ajustarse a los criterios especificados para la misma. Esta tarea esta estrechamente relacionada con la actividad "Practicas de Laboratorio [Presencial] ya que ambas son complementarias.
Total: 6 150
Créditos totales de trabajo presencial: 2.4 Horas totales de trabajo presencial: 60
Créditos totales de trabajo autónomo: 3.6 Horas totales de trabajo autónomo: 90

Ev: Actividad formativa evaluable
Ob: Actividad formativa de superación obligatoria (Será imprescindible su superación tanto en evaluación continua como no continua)

8. CRITERIOS DE EVALUACIÓN Y VALORACIONES
Sistema de evaluación Evaluacion continua Evaluación no continua * Descripción
Resolución de problemas o casos 20.00% 20.00% Los alumnos deberán entregar una pequeña memoria en la que se presenten de forma justificada las soluciones para los ejercicios indicados como tal en clase.

La valoración de cada ejercicio pedido se realizará de acuerdo al siguiente baremo:
- Ejercicio correcto: Máxima puntuacion.
- Ejercicio parcialmente correcto: Maximapuntuacion/2.
- Ejercicio incorrecto: 0 puntos.
Valoración de la participación con aprovechamiento en clase 5.00% 5.00% Se valorará la participación en las clases de resolución de problemas y en las prácticas de laboratorio. Se tendrán los siguientes criterios:
- Presentación y aportación de ideas al grupo para la resolución de problemas de forma grupal.
- Presentación y aportación de soluciones a las problemas planteados en las prácticas de laboratorio.
- Participación en seminarios de discusión de ideas y soluciones a tomar.
Realización de prácticas en laboratorio 30.00% 30.00% Los alumnos deberán entregar el proyecto de practicas consistente en el desarrollo de un traductor para un lenguaje pequeño que se definirá al principio del curso. A lo largo del curso se realizarán varias entregas parciales del proyecto que permitirá ver la evolución de los alumnos . Cada entrega tendrá su correspondiente defensa ante el profesor
Prueba 35.00% 35.00% A lo largo del curso se realizarán dos pruebas de evaluación, una tras la finalización del tema 3 y otra al finalizar el tema 5.
La primera prueba tendrá un peso de 60% y la segunda un 40% sobre la valoración de este apartado
Estas pruebas estarán formadas por varios ejercicios de similar dificultad a los trabajados en clase.
Presentación oral de temas 10.00% 10.00% Los alumnos deberán defender ante el profesor la solución planteada en la memoria de practicas. Se realizará después de cada una de las entregas establecidas en las practicas de laboratorio
Total: 100.00% 100.00%  
* En Evaluación no continua se deben definir los porcentajes de evaluación según lo dispuesto en el art. 4 del Reglamento de Evaluación del Estudiante de la UCLM, que establece que debe facilitarse a los estudiantes que no puedan asistir regularmente a las actividades formativas presenciales la superación de la asignatura, teniendo derecho (art. 12.2) a ser calificado globalmente, en 2 convocatorias anuales por asignatura, una ordinaria y otra extraordinaria (evaluándose el 100% de las competencias).

Criterios de evaluación de la convocatoria ordinaria:
  • Evaluación continua:
    Para superar la asignatura en la convocatoria ordinaria los alumnos deberán superar con una nota superior o igual a 4 la parte de problemas, practicas y pruebas de evaluación.
    En caso de no superar alguna de las partes, la asignatura no será superada y deberá hacer uso de la convocatoria extraordinaria. No existirá la posibilidad de realizar un examen final en esta convocatoria.
    El alumno que no supere todas las pruebas mínimas exigidas en la asignatura tendrá una calificación no superior a 4.00 incluso si la media obtenida fuera otra, incluida más de 5.00

    Los alumnos que en el curso anterior hayan superado la parte de problemas o de practicas, podrán conservar la nota obtenida en esa parte en este curso. Para ello deberán indicarselo al profesor en las dos primeras semanas de clase.
  • Evaluación no continua:
    Se establecen los mismos criterios que para la evaluación continúa. EL 5% de la valoración de la participación en clase será la obtenida durante el curso. Asi que los alumnos que no asistan habitualmente a las tareas formativas presenciales no podrán sumar a su nota el 5% establecido en el apartado de aprovechamiento.

Particularidades de la convocatoria extraordinaria:
Los alumnos deberán someter a evaluación solamente aquellas partes que no hayan superado en la convocatoria ordinaria, manteniendo la nota de las partes si superadas.

EL 5% de la valoración de la participación en clase será la obtenida durante el curso. Asi que los alumnos que no asistan habitualmente a las tareas formativas presenciales no podrán sumar a su nota el 5% establecido en el apartado de aprovechamiento.

Si un alumno decide repetir la evaluación de una de las partes superadas en la convocatoria ordinaria, automáticamente se anulará la calificación de esa parte obtenida en la convocatoria ordinaria, siendo la única nota valida la obtenida en esta convocatoria.
Particularidades de la convocatoria especial de finalización:
La evaluación de esta convocatoria consistirá en un único examen escrito en el que se deberán poner de manifiesto que el alumno ha adquirido las competencias y resultados de aprendizaje propuestos, atentendiendo tanto a aspectos teóricos como prácticos. La prueba consistirá en la resolución de varios ejercicios o casos prácticos de similar dificultad, sobre un total de 10 puntos (que corresponderá con el 100% de la nota final).
9. SECUENCIA DE TRABAJO, CALENDARIO, HITOS IMPORTANTES E INVERSIÓN TEMPORAL
No asignables a temas
Horas Suma horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 3
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 3
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] 4
Prueba final [PRESENCIAL][Pruebas de evaluación] 6
Presentación de trabajos o temas [PRESENCIAL][Trabajo en grupo] 8
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 15
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo en grupo] 20
Elaboración de informes o trabajos [AUTÓNOMA][Trabajo autónomo] 12
Elaboración de memorias de Prácticas [AUTÓNOMA][Trabajo en grupo] 17

Tema 1 (de 5): Estructura de los compiladores e intérpretes
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 1
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 1
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] 2
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 2

Tema 2 (de 5): Análisis léxico
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 2
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 2
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] 2
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 6

Tema 3 (de 5): Análisis sintáctico
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 4
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 2
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] 4
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 6

Tema 4 (de 5): Análisis semántico
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 2
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 2
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] 4
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 6

Tema 5 (de 5): Generación de código
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL][Método expositivo/Lección magistral] 2
Resolución de problemas o casos [PRESENCIAL][Resolución de ejercicios y problemas] 4
Prácticas de laboratorio [PRESENCIAL][Trabajo en grupo] 2
Estudio o preparación de pruebas [AUTÓNOMA][Trabajo autónomo] 6

Actividad global
Actividades formativas Suma horas
Comentarios generales sobre la planificación: Esta planificación es aproximada ya que puede verse alterada por las festividades del calendario y la evolución del curso. Se proporcionará una planificacion mas detallada en la plataforma campusvirtual. Las clases de la asignatura se desarrollarán a lo largo del primer cuatrimetres en tres seisones de 1:30 horas cada una de semana. Las actividades de evaluación o recuperación de clases podrían planificarse, excepcionalmente, en horario diferrente al habitual de la asignatura.
10. BIBLIOGRAFÍA, RECURSOS
Autor/es Título Libro/Revista Población Editorial ISBN Año Descripción Enlace Web Catálogo biblioteca
Aho, Alfred V. Compiladores : principios, técnicas y herramientas Addison-Wesley Iberoamericana 968-444-333-1 1998 Ficha de la biblioteca
Aho, Alfred V. Compiladores : principios, técnicas y herramientas Pearson Educación 978-970-26-1133-2 2008 Ficha de la biblioteca
Aho, Alfred V. Compilers : principles, techniques, and tools Pearson/Addison Wesley 0-321-49169-6 2007 Ficha de la biblioteca
Alfonseca, Manuel Compiladores e intérpretes : teoría y práctica Pearson Prentice Hall 978-84-205-5031-2 2006 Ficha de la biblioteca
Bal, Henri E. Grune, Dick Diseño de compiladores modernos McGraw-Hill/Interamericana de España 978-84-481-5656-5 2007 Ficha de la biblioteca
Cooper, Keith D. Engineering a compiler Morgan Kaufmann Publishers 1-55860-699-8 2004 Ficha de la biblioteca
Garrido Alenda, Alicia Diseño de compiladores Departamento de Lenguajes y Sistemas Informátic 84-7908-700-5 2002 Ficha de la biblioteca
Jiménez Millán, José Antonio Compiladores y procesadores de lenguajes Universidad de Cádiz 84-96274-39-X 2004 Ficha de la biblioteca
Louden, Kenneth C. Construcción de compiladores : principios y práctica Thomson 970-686-299-4 2004 Ficha de la biblioteca
Ruiz Catalán, Jacinto Compiladores : teoría e implementación RC Libros 978-84-937008-9-8 2010 Ficha de la biblioteca
Scott ,Michael L. Programming language pragmatics Morgan Kaufmann 978-0-12-633951-2 2006 Ficha de la biblioteca



Web mantenido y actualizado por el Servicio de informática