You are on page 1of 6

UNIVERSIDAD DE CASTILLA - LA MANCHA

GUÍA DOCENTE

1. Datos generales

Asignatura: PROCESADORES DE LENGUAJES Código: 42349


Tipología: OBLIGATORIA Créditos ECTS: 6
Grado: 346 - GRADO EN INGENIERIA INFORMATICA (AB) Curso académico: 2011-12
Centro: (604) E.S. DE INGENIERIA INFORMATICA ALBACETE Grupos: 15
Curso: 4 Duración: Primer cuatrimestre
Lengua principal
de impartición:
Español Segunda lengua:

Uso docente de
English friendly: No
otras lenguas:
Página Web:
Nombre del profesor: ISMAEL GARCIA VAREA - Grupo(s) impartido(s):
Despacho Departamento Teléfono Correo electrónico Horario de tutoría
Consultar
ESII/1.D.1 SISTEMAS INFORMÁTICOS 2548 ismael.garcia@uclm.es
https://www.esiiab.uclm.es/tutorias.php

2. Requisitos previos

Para asimilar y aprovechar convenientemente los contenidos que se impartirán en la asignatura, así como para la realización de los trabajos
prácticos que se proponen, es necesario que el alumno posea algunos conocimientos (impartidos en otras asignaturas) y que haya adquirido
ciertas capacidades. En lo que respecta a conocimientos previos, es deseable formación previa en:

Lenguajes de Programación. El alumno debe saber lo que representan las distintas construcciones de un lenguaje de programación en
términos de funcionamiento de una máquina virtual. También debe saber las diversas restricciones que motivan el diseño de un
lenguaje como pueden ser: facilidad de escritura del compilador, flexibilidad, extensibilidad, portabilidad, ortogonalidad, etc.
Teoría de Autómatas y Computación. El alumno debe conocer y saber aplicar los fundamentos de la teoría de lenguajes formales, en
particular los referentes a lenguajes regulares e incontextuales.
Algorítmica y Estructuras de Datos. El alumno debe estar familiarizado con algoritmos para tratamiento de grafos y estructuras para
la construcción de diccionarios, así como con el cálculo del coste computacional de dichos algoritmos.
Arquitectura de computadores. Es suficiente un conocimiento general de la organización de los computadores y soltura en la escritura
de programas en un lenguaje ensamblador.

Más específicamente el alumno debería:

Ser capáz de trabajar dentro de un marco matemático y formal.


Poseer cierta capacidad de abstracción que le permita fijarse en las ideas y conceptos claves por encima de los detalles y la notación
utilizada.
Conocer la especificación de la sintaxis de un lenguaje de programación.
Ser capaz de describir e interpretar de forma precisa algoritmos expresados en forma de pseudocódigo, de diseñar algoritmos
eficientes para resolver un problema dado, y de codificar eficientemente estos algoritmos en un lenguaje de alto nivel de carácter
imperativo y estructurado.

3. Justificación en el plan de estudios, relación con otras asignaturas y con la profesión

Tal vez el primer lenguaje de programación construido bajo el principio de posibilitar una compilación sencilla y eficiente sea el PASCAL
(propuesto por Niklaus Wirth en 1974).

Entre los principios que, según el propio Wirth, deben guiar el diseño de un lenguaje de programación tenemos numerosas consideraciones
acerca de su compilador, como por ejemplo: que genere código eficiente y economice memoria, que sea rápido y compacto, que el lenguaje y
su compilador sean fácilmente adaptables a diferentes entornos, que sea fácilmente transportable, y que el tiempo y coste dedicados al
desarrollo del compilador y la documentación sean mínimos.

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
Capacidad para conocer los fundamentos teóricos de los lenguajes de programación y las técnicas de procesamiento léxico,
CM2
sintáctico y semántico asociadas, y saber aplicarlas para la creación, diseño y procesamiento de lenguajes.
INS1 Capacidad de análisis, síntesis y evaluación.
INS4 Capacidad de resolución de problemas aplicando técnicas de ingeniería.
UCLM3 Correcta comunicación oral y escrita.

5. Objetivos o resultados de aprendizaje esperados


Resultados propios de la asignatura
Saber construir aplicaciones basadas en procesadores para lenguajes específicos de un dominio.
Conocer en qué consiste un lenguaje de programación y tener una visión integrada del funcionamiento y estructura de un procesador de
lenguajes.
Resultados adicionales
Identificar y aplicar los aspectos de la teoría de lenguajes formales necesarios para la especificación de lenguajes de programació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.
Documentar, describir y evaluar el proceso de construcción de un procesador de lenguaje.

6. Temario / Contenidos

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 Introducción a un generador automático de especificaciones léxicas: flex
Tema 2.7 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 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 4.6 Algunas aplicaciones
Tema 5 Organización y gestión de la memoria
Tema 5.1 Introducción
Tema 5.2 Organización de la memoria en tiempo de ejecución
Tema 5.3 Memoría estática
Tema 5.4 Memoría de pila
Tema 5.5 Memoria con reserva dinámica
Tema 5.6 Otros aspectos de las subrutinas
Tema 6 Generación de código
Tema 6.1 Introducción
Tema 6.2 Código intermedio
Tema 6.3 Generación de código para expresiones
Tema 6.4 Generación de código para las estructuras de control
Tema 6.5 Generación de código máquina

7. Actividades o bloques de actividad y metodología


Competencias
Actividad formativa Metodología ECTS Horas Ob Rec Descripción
relacionadas
Método
Enseñanza presencial Presentación de la
expositivo/Lección CM2 0.48 12.00 Sí No
(Teoría) [PRESENCIAL] asignatura
magistral
Resolución
Resolución de problemas Resolución de ejercicios
INS4 0.48 12.00 Sí No Ejercicios/Problemas
o casos [PRESENCIAL] y problemas
Tema 2
Realización de las
Prácticas de laboratorio prácticas en el
Trabajo en grupo CM2 0.72 18.00 Sí No
[PRESENCIAL] laboratorio con la ayuda
del profesor
Examen escrito de
conocimientos mínimos
Pruebas de progreso Aprendizaje basado en
INS1 0.16 4.00 Sí Sí basado en la resolución
[PRESENCIAL] problemas (ABP)
de problemas o casos
prácticos
Examen final escrito de
conocimientos mínimos
basado en la resolución
de problemas o casos
Prueba final Aprendizaje basado en
INS1 0.08 2.00 Sí Sí prácticos. Solo deberán
[PRESENCIAL] problemas (ABP)
realizarla aquellos
alumnos que no hayan
superado las dos
pruebas de progreso
Estudio de forma
autónoma de los
contenidos teóricos y
Estudio o preparación de
Trabajo autónomo INS1 1.64 41.00 Sí Sí prácticas de los temas
pruebas [AUTÓNOMA]
desarrollados, así como
preparación para las
pruebas presenciales
Realización y entrega de
Elaboración de informes o la memoria de los
Trabajo autónomo UCLM3 0.84 21.00 Sí No
trabajos [AUTÓNOMA] ejercicios de evaluación
contínua por temas
Defensa en el laboratorio
de la memoria y el
Presentación de trabajos
Trabajo en grupo INS4 0.48 12.00 Sí No trabajo desarrollado en
o temas [PRESENCIAL]
la distintas práctica,
como trabajo en grupo
Realización de las
Estudio o preparación de
Trabajo en grupo CM2 0.80 20.00 Sí No prácticas como trabajo
pruebas [AUTÓNOMA]
de grupo
Elaboración de memorias Realización y entrega de
de Prácticas Trabajo en grupo UCLM3 0.32 8.00 Sí No la memoria de prácticas
[AUTÓNOMA] como trabajo de grupo
Total: 6.00 150.00
Créditos totales de trabajo presencial: 2.40 Horas totales de trabajo presencial: 60.00
Créditos totales de trabajo autónomo: 3.60 Horas totales de trabajo autónomo: 90.00
Ev: Actividad formativa evaluable
Ob: Actividad formativa de superación obligatoria
Rec: Actividad formativa recuperable

8. Criterios de evaluación y valoraciones


Valoraciones
Estud.
Sistema de evaluación Estud. pres. Descripción
semipres.
Esta evaluación consistirá en la resolución de 4
ejercicios/problemas de similar nivel de dificultad. Cada
ejercicio se valorará sobre un total de 1 punto de
acuerdo al siguiente baremo: - Ejercicio correcto: 1
Resolución de problemas o casos 20.00% 20.00% punto. - Ejercicio parcialmente correcto: 0,5 puntos. -
Ejercicio incorrecto: 0 puntos. En esta tarea se evalúan
los Resultados de Aprendizaje 2077, 2333 y 2334, y
para superarla con éxito el alumno deberá obtener una
puntuación mínima de 2 puntos.
La evaluación de cada trabajo práctico se realizará
sobre un total de 6 puntos y se realizará en base a los
siguientes criterios: - El funcionamiento de la
implementación realizada (común al grupo: 3 puntos). -
Las respuestas realizadas por cada miembro del grupo,
y de forma individual, a las cuestiones planteadas por el
profesor (individual: 3 puntos). Para superar con éxito
esta actividad, en la que se evalúan los Resultados de
Aprendizaje 2078, 2333 y 2334, cada alumno del grupo
Realización de prácticas en laboratorio 24.00% 24.00% deberá obtener un mínimo de 3 puntos, atendiendo a: -
Que el programa implementado realiza la funcionalidad
pedida. - Que el alumno sea capaz de contestar
correctamente al menos la mitad de la preguntas
planteadas por el profesor. Para obtener la máxima
puntuación (6 puntos), además de lo anterior se tendrá
en cuenta: - Que el programa sea eficiente, este bien
codificado y comentado, y que sea robusto. - Que el
alumno sea capaz de contestar correctamente a todas
las preguntas planteadas por el profesor.
La evaluación de la memoria de cada trabajo práctico
se realizará sobre un total de 2 puntos y se realizará en
base a la calidad de la memoria presentada (común al
grupo). Para superar con éxito esta actividad, en la que
se evalúan los Objetivos de Aprendizaje 2335, cada
Elaboración de memorias de prácticas 8.00% 8.00% alumno del grupo deberá obtener un mínimo de 1,0
puntos, atendiendo a que la memoria contiene lo pedido
en el enunciado de la práctica. Para obtener la máxima
puntuación (2 puntos), además de lo anterior se tendrá
en cuenta que la memoria está bien presentada y
escrita.
La puntuación asignada a la única actividad de
evaluación cruzada de las prácticas realizadas
(propuesta al final del curso) será de 8 puntos, y en ella
Actividades de autoevaluación y coevaluación 8.00% 0.00% se valorará la calidad de la memoria presentada así
como el informe de valoración de la práctica evaluada.
Los alumnos semipresenciales no podrán optar a esta
puntuación.
La evaluación de las pruebas escritas u orales
consistirá en la resolución de dos ejercicios o casos
prácticos de similar dificultad, sobre un total de 10
puntos, de acuerdo a los siguientes criterios: - Cada
ejercicio valdrá 5 puntos. - La valoración de cada
ejercicio dependerá de la solución propuesta variando
Pruebas de progreso 20.00% 20.00%
desde 0 cuando la solución sea totalmente incorrecta
hasta 5 cuando la solución sea correcta. Para superar
con éxito esta actividad, en la que se evalúan los
Objetivos de Aprendizaje 2077, 2078, 2333 y 2334 el
alumno deberá obtener una puntuación mínima de 5
puntos entre los dos ejercicios.
Prueba final 10.00% 10.00% Igual a las pruebas de progreso.
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: - Aportación de ideas al
Valoración de la participación con aprovechamiento en grupo para la resolución de problemas de forma
10.00% 0.00%
clase grupal. - Aportación de soluciones a las problemas
planteados en las prácticas de laboratorio. Esta
puntuación no será aplicable a los alumnos
semipresenciales.
Total: 100.00% 82.00%
Criterios de evaluación de la convocatoria ordinaria:
La evaluación de la convocatoria ordinaria consistirá en una prueba presencial escrita y en la entrega de las prácticas propuestas.
La evaluación de la prueba escrita consistirá en la resolución de dos ejercicios o casos prácticos de similar dificultad, sobre un total de 10
puntos (que corresponderá con el 50% de la nota final), de acuerdo a los siguientes criterios:
- Cada ejercicio valdrá 5 puntos.
- La valoración de cada ejercicio dependerá de la solución propuesta variando desde 0 cuando la solución sea totalmente incorrecta hasta 5
cuando la solución sea correcta.
La valoración de las prácticas consistirá en una entrevista personal con el profesor, sobre un total de 10 puntos (que corresponderá con el
32% de la nota final) en la que se tendrán en cuenta los siguientes criterios:
- El buen funcionamiento de las prácticas entregadas.
- La calidad de la memoria presentada.
- Las respuestas dadas por el alumno a las preguntas realizadas por el profesor concernientes a aspectos de implementación, pruebas y
resultados obtenidos con el funcionamiento de las prácticas.
Particularidades de la convocatoria extraordinaria:
Las condiciones de la convocatoria extraordinaria serán las mismas que para la convocatoria ordinaria.
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áctios. La prueba
consistirá en la resolución de tres 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
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] (12 h tot.) 1
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (12 h tot.) 1
Prácticas de laboratorio [PRESENCIAL] [Trabajo en grupo] (18 h tot.) 18
Pruebas de progreso [PRESENCIAL] [Aprendizaje basado en problemas (ABP)] (4 h tot.) 4
Prueba final [PRESENCIAL] [Aprendizaje basado en problemas (ABP)] (2 h tot.) 2
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (41 h tot.) 9
Elaboración de informes o trabajos [AUTÓNOMA] [Trabajo autónomo] (21 h tot.) 21
Presentación de trabajos o temas [PRESENCIAL] [Trabajo en grupo] (12 h tot.) 12
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo en grupo] (20 h tot.) 20
Elaboración de memorias de Prácticas [AUTÓNOMA] [Trabajo en grupo] (8 h tot.) 8
Tema 1 (de 6): Estructura de los compiladores e intérpretes
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] (12 h tot.) 1
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (12 h tot.) 1
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (41 h tot.) 2
Periodo temporal: 1 semana
Grupo 15
Fecha de inicio: 12/09/2011 Fecha de fin: 18/09/2011
Tema 2 (de 6): Análisis léxico
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] (12 h tot.) 2
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (12 h tot.) 2
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (41 h tot.) 6
Periodo temporal: 2 semanas
Grupo 15
Fecha de inicio: 19/09/2011 Fecha de fin: 02/10/2011
Tema 3 (de 6): Análisis sintáctico
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] (12 h tot.) 2
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (12 h tot.) 2
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (41 h tot.) 6
Periodo temporal: 2 semanas
Grupo 15
Fecha de inicio: 03/10/2011 Fecha de fin: 16/10/2011
Comentario: El día 12/10/2011 es festivo, afectando a la clase de los miércoles. Esta clase será recuperada en otro día acordado con los
alumnos.
Tema 4 (de 6): Análisis semántico
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] (12 h tot.) 2
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (12 h tot.) 2
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (41 h tot.) 6
Periodo temporal: 2 semanas
Grupo 15
Fecha de inicio: 17/10/2011 Fecha de fin: 30/10/2011
Tema 5 (de 6): Organización y gestión de la memoria
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] (12 h tot.) 2
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (12 h tot.) 2
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (41 h tot.) 6
Periodo temporal: 2 semanas
Grupo 15
Fecha de inicio: 07/11/2011 Fecha de fin: 20/11/2011
Comentario: El día 01/11/2011 es festivo, aunque no afecta a la planificación al ser martes.
Tema 6 (de 6): Generación de código
Actividades formativas Horas
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] (12 h tot.) 2
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] (12 h tot.) 2
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] (41 h tot.) 6
Periodo temporal: 2 semanas
Grupo 15
Fecha de inicio: 21/11/2011 Fecha de fin: 04/12/2011
Actividad global
Suma
Actividades formativas
horas
Enseñanza presencial (Teoría) [PRESENCIAL] [Método expositivo/Lección magistral] 12
Resolución de problemas o casos [PRESENCIAL] [Resolución de ejercicios y problemas] 12
Prácticas de laboratorio [PRESENCIAL] [Trabajo en grupo] 18
Pruebas de progreso [PRESENCIAL] [Aprendizaje basado en problemas (ABP)] 4
Prueba final [PRESENCIAL] [Aprendizaje basado en problemas (ABP)] 2
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo autónomo] 41
Elaboración de informes o trabajos [AUTÓNOMA] [Trabajo autónomo] 21
Presentación de trabajos o temas [PRESENCIAL] [Trabajo en grupo] 12
Estudio o preparación de pruebas [AUTÓNOMA] [Trabajo en grupo] 20
Elaboración de memorias de Prácticas [AUTÓNOMA] [Trabajo en grupo] 8
Total horas: 150
Grupo 15
Inicio de actividades: 12/09/2011 Fin de las actividades: 04/12/2011
La planificación temporal podrá verse modificada ante causas imprevistas

10. Bibliografía, recursos


Autor/es Título/Enlace Web Editorial Población ISBN Año Descripción
Compiladores : principios, Addison-Wesley
Aho, Alfred V. 0-201-62903-8 1990
técnicas y herramientas Iberoamericana
Compiladores : principios, Addison-Wesley
Aho, Alfred V. 968-444-333-1 1998
técnicas y herramientas Iberoamericana
Compiladores : principios, Pearson
Aho, Alfred V. 978-970-26-1133-2 2008
técnicas y herramientas Educación
Morgan
Cooper, Keith D. Engineering a compiler Kaufmann 1-55860-699-8 2004
Publishers
Compiladores y procesadores Universidad de
Jiménez Millán, José Antonio 84-96274-39-X 2004
de lenguajes Cádiz
Construcción de compiladores
Louden, Kenneth C. Thomson 970-686-299-4 2004
: principios y práctica
Compiladores : teoría e
Ruiz Catalán, Jacinto RC Libros 978-84-937008-9-8 2010
implementación
Programming language Morgan
Scott ,Michael L. 978-0-12-633951-2 2006
pragmatics Kaufmann
Compiladores e intérpretes : Pearson Prentice
978-84-205-5031-2 2006
teoría y práctica Hall
Compilers : principles, Pearson/Addison
0-321-49169-6 2007
techniques, and tools Wesley
Departamento de
Lenguajes y
Diseño de compiladores 84-7908-700-5 2002
Sistemas
Informátic
McGraw-
Diseño de compiladores
Hill/Interamericana 978-84-481-5656-5 2007
modernos
de España