Curso Académico:
2022/23
439 - Graduado en Ingeniería Informática
30230 - Procesadores de lenguajes
Información del Plan Docente
Año académico:
2022/23
Asignatura:
30230 - Procesadores de lenguajes
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
Titulación:
439 - Graduado en Ingeniería Informática
Créditos:
6.0
Curso:
3
Periodo de impartición:
Segundo semestre
Clase de asignatura:
---
Materia:
---
1.1. Objetivos de la asignatura
La asignatura y sus resultados previstos responden a los siguientes planteamientos y objetivos:
- Dar a conocer el funcionamiento interno de los compiladores.
- Capacitar al alumno para que aplique los conocimientos adquiridos sobre gramáticas y autómatas para la especificación de lenguajes y la construcción de traductores.
- Dar a conocer al alumno en profundidad los métodos y técnicas de construcción de traductores.
- Capacitar al alumno para utilizar herramientas específicas para la construcción de traductores.
- Lograr que el alumno utilice los traductores y compiladores de forma eficaz y eficiente.
Estos planteamientos y objetivos están alineados con algunos de los Objetivos de Desarrollo Sostenible de la Agenda 2030 (ODS, https://www.un.org/sustainabledevelopment/es/) y determinadas metas concretas. La adquisición de los resultados de aprendizaje de la asignatura proporciona capacitación y competencia al estudiante para contribuir en cierta medida a su logro:
- Objetivo 8: Promover el crecimiento económico sostenido, inclusivo y sostenible, el empleo pleno y productivo y el trabajo decente para todo.
Meta 8.4. Mejorar progresivamente, de aquí a 2030, la producción y el consumo eficientes de los recursos mundiales y procurar desvincular el crecimiento económico de la degradación del medio ambiente, conforme al Marco Decenal de Programas sobre modalidades de Consumo y Producción Sostenibles, empezando por los países desarrollados.
1.2. Contexto y sentido de la asignatura en la titulación
Procesadores de Lenguajes es una materia obligatoria de la especialidad de Computación que se implanta como una asignatura de 6 créditos ECTS en el segundo semestre del tercer curso del Grado en Ingeniería Informática con un perfil práctico y aplicado.
La ubicación temporal de la asignatura permite enfocar la asignatura de forma muy práctica y aplicada, y que reflexione sobre las características de los compiladores y traductores que ha utilizado o que conoce. Además, los conceptos iniciales relativos al análisis léxico, la construcción de lenguajes y gramáticas y el análisis de los mismos, los ha adquirido previamente a través de la asignatura de Teoría de la Computación, lo que permite actuar de forma directa y práctica, y aplicar los conceptos aprendidos a la construcción de un compilador completo de un lenguaje con un conjunto reducido de tipos de datos e instrucciones.
1.3. Recomendaciones para cursar la asignatura
Se recomienda que el alumno haya cursado las siguientes asignaturas:
Además, se hacen las siguientes recomendaciones:
- Estudio de los conceptos teóricos.
- Resolución de ejercicios relacionados con los conceptos teóricos.
- Realización de las prácticas de laboratorio de forma cuidadosa y durante las fechas recomendadas. Hay una muy estrecha relación entre los conceptos teóricos y el trabajo a desarrollar en las sesiones de laboratorio, por lo que la correcta realización de las prácticas periódicas es una muy buena forma de llegar a los resultados de aprendizaje necesarios para superar la asignatura
2. Competencias y resultados de aprendizaje
2.1. Competencias
Al superar la asignatura, el estudiante será más competente 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.
- Evaluar la complejidad computacional de un problema, conocer estrategias algorítmicas que puedan conducir a su resolución y recomendar, desarrollar e implementar aquella que garantice el mejor rendimiento de acuerdo con los requisitos establecidos.
2.2. Resultados de aprendizaje
El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados...
- Comprende el funcionamiento interno de los compiladores y los utiliza eficaz y eficientemente.
- Aplicar los conocimientos adquiridos sobre gramáticas y autómatas para la especificación de lenguajes y la construcción de traductores.
- Conocer los métodos y técnicas de construcción de traductores.
- Dominar el uso de herramientas específicas para la construcción de traductores.
2.3. Importancia de los resultados de aprendizaje
El conjunto de los resultados de aprendizaje pueden concretarse indicando que el alumno será capaz de identificar los requisitos de un determinado lenguaje y construir un traductor completo que abarque el análisis léxico, sintáctico y semántico del lenguaje, así como la generación de código correspondiente para su posterior ejecución. El éxito de su aprendizaje resulta de suma importancia para el desarrollo del futuro Ingeniero en Informática, ya que la comprensión de cómo funciona internamente un compilador será fundamental en su día a día cuando trabaje con lenguajes de programación.
3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba
El estudiante deberá demostrar que ha alcanzado los resultados de aprendizaje previstos mediante las siguientes actividades de evaluación:
- Evaluación continua (primera convocatoria): Se basará en la entrega de las prácticas y el desarrollo de una prueba teórico-práctica. Las prácticas tienen como resultado la construcción de un compilador para un lenguaje sencillo, en el plazo previsto, junto con una memoria. Es obligatorio presentar todas las prácticas mediante las entregas intermedias en fechas concretas. En la prueba teórico-práctica el estudiante deberá demostrar que ha adquirido las competencias y los resultados de aprendizaje de la asignatura mediante la resolución de un problema planteado sobre el compilador planteado para las sesiones de laboratorio.
- Evaluación global (primera y segunda convocatorias): Se basará en la entrega de un compilador desarrollado según las pautas del guión que se proporcionará al estudiante, una memoria y una defensa del trabajo ante los profesores, así como una prueba teórico-práctica. En las pruebas se comprobará que el estudiante ha asimilado los conceptos clave de la asignatura y que ha realizado las prácticas, mediante la resolución de algún ejercicio o ampliación sobre el compilador desarrollado.
En la calificación final el peso de la parte correspondiente a las prácticas de laboratorio será del 60%, mientras que el correspondiente a la prueba teórico-práctica será del 40%. Para superar la asignatura es necesario obtener un mínimo de 5 puntos sobre 10 en la evaluación de las prácticas y un mínimo de 4 puntos sobre 10 en la evaluación de la prueba teórico-práctica. En caso de no alcanzar el mínimo establecido en alguna de las partes, la calificación final será el mínimo entre 4 y la media ponderada de las dos partes consideradas, sobre 10.
4. Metodología, actividades de aprendizaje, programa y recursos
4.1. Presentación metodológica general
El proceso de aprendizaje que se ha diseñado para esta asignatura se basa en lo siguiente:
- La presentación de los contenidos de la asignatura en clases magistrales por parte del profesor.
- El estudio personal de la asignatura por parte de los alumnos.
- La resolución de supuestos teórico-prácticos para casos específicos, en sesiones de problemas.
- El desarrollo de prácticas específicas por parte de los alumnos, guiadas por el profesor, que amplían los conocimientos teóricos y conducentes al desarrollo de un traductor como caso de aplicación real de la asignatura.
4.2. Actividades de aprendizaje
El programa que se ofrece al estudiante para ayudarle a lograr los resultados previstos comprende las siguientes actividades...
- Desarrollo del programa de la asignatura en las clases impartidas en el aula.
- Aplicación de los conceptos y técnicas específicas presentadas en el programa de la asignatura en las sesiones de problemas y prácticas.
- Aplicación de los conceptos y técnicas desarrollados durante el curso a través de sesiones tutorizadas.
4.3. Programa
Programa de la asignatura
Sesiones magistrales
Las actividades de aprendizaje presenciales en el aula, organizadas en clases magistrales y de problemas, se centrarán en el estudio de los siguientes temas:
- Tema 1: Introducción. Traducción y procesamiento de lenguajes.
- Tema 2: Análisis léxico. Autómatas y expresiones regulares. Implementación de un analizador léxico.
- Tema 3: Análisis sintáctico. Gramáticas libres de contexto. Transformaciones. Implementación de un analizador sintáctico.
- Tema 4: Análisis semántico. Tabla de símbolos. Implementación de un analizador semántico.
- Tema 5: Entornos de ejecución.
- Tema 6: Generación y optimización de código.
Sesiones de prácticas de laboratorio y sesiones de problemas
Se realizarán sesiones de prácticas a través de las que se abordará la construcción de un compilador para un lenguaje sencillo desde su inicio, completando las fases de análisis léxico, sintáctico, semántico y generación de código.
4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave
Calendario de sesiones presenciales y presentación de trabajos
El calendario de la asignatura será definido por el centro en el calendario académico del curso correspondiente.
Trabajo del estudiante
- Actividad de tipo 1 (clases magistrales): 30 horas
- Actividad de tipo 3 (clases de prácticas): 24 horas
- Actividad de evaluación teórico/práctica: 3 horas
- Actividad de evaluación práctica: 3 horas
- Trabajo del estudiante: 90 horas (aprox.)
El calendario detallado de actividades se establecerá a partir del aprobado por la Universidad para el curso académico correspondiente. Las fechas de exámenes y de entrega de trabajos se anunciarán con suficiente antelación durante las clases y en la página del curso (Moodle).