Asignaturas Grado en ingeniería informática
PROCESADORES DEL LENGUAJE II
Curso 2024/2025 Código Asignatura: 71013118
-
Guía de la Asignatura Curso 2024/2025
- Primeros Pasos
- Presentación y contextualización
- Requisitos y/o recomendaciones para cursar esta asignatura
- Equipo docente
- Horario de atención al estudiante
- Tutorización en centros asociados
- Competencias que adquiere el estudiante
- Resultados de aprendizaje
- Contenidos
- Metodología
- Sistema de evaluación
- Bibliografía básica
- Bibliografía complementaria
- Recursos de apoyo y webgrafía
PROCESADORES DEL LENGUAJE II
Código Asignatura: 71013118
La guía de la asignatura ha sido actualizada con los cambios que aquí se mencionan.
Nombre y apellidos | ANSELMO PEÑAS PADILLA (Coordinador de Asignatura) |
Correo electrónico | anselmo@lsi.uned.es |
Teléfono | 91398-7750 |
Facultad | ESCUELA TÉCN.SUP INGENIERÍA INFORMÁTICA |
Departamento | LENGUAJES Y SISTEMAS INFORMÁTICOS |
Nombre y apellidos | ALVARO RODRIGO YUSTE |
Correo electrónico | alvarory@lsi.uned.es |
Teléfono | 91398-9693 |
Facultad | ESCUELA TÉCN.SUP INGENIERÍA INFORMÁTICA |
Departamento | LENGUAJES Y SISTEMAS INFORMÁTICOS |
Nombre y apellidos | SERGIO MORENO ALVAREZ |
Correo electrónico | smoreno@lsi.uned.es |
Teléfono | 91398-6297 |
Facultad | ESCUELA TÉCN.SUP INGENIERÍA INFORMÁTICA |
Departamento | LENGUAJES Y SISTEMAS INFORMÁTICOS |
NOMBRE DE LA ASIGNATURA | |
---|---|
NOMBRE DE LA ASIGNATURA | PROCESADORES DEL LENGUAJE II |
CÓDIGO | |
CÓDIGO | 71013118 |
CURSO ACADÉMICO | |
CURSO ACADÉMICO | 2024/2025 |
DEPARTAMENTO | |
DEPARTAMENTO | LENGUAJES Y SISTEMAS INFORMÁTICOS |
TÍTULO EN QUE SE IMPARTE | |
TÍTULO EN QUE SE IMPARTE | |
GRADO EN INGENIERÍA INFORMÁTICA | |
CURSO | |
CURSO | TERCER CURSO |
PERIODO | SEMESTRE 2 |
TIPO | OBLIGATORIAS |
Nº ECTS | |
Nº ECTS | 6 |
HORAS | |
HORAS | 150 |
IDIOMAS EN QUE SE IMPARTE | |
IDIOMAS EN QUE SE IMPARTE | CASTELLANO |
La asignatura de Procesadores de Lenguajes II se imparte en el segundo semestre del tercer curso del Grado en Ingeniería Informática. Esta asignatura es continuación de Procesadores de Lenguajes II impartida durante el primer semestre del mismo curso. Es recomendable haber superado la asignatura anterior antes de abordar el estudio de esta.
La asignatura parte de conceptos estudiados por el alumno en cursos anteriores en asignaturas relacionadas con los Lenguajes de Programación, la Teoría de Autómatas, la algoritmia, o la Arquitectura de Computadores. En Procesadores de Lenguajes I, el alumno aprendió a construir y utilizar los analizadores léxicos y sintácticos. En Procesadores de Lenguajes II deberá comprender el análisis semántico que como el proceso final de traducción de un lenguaje formal a la serie de instrucciones manejables por un microprocesador. Al situarse entre los Lenguajes de Programación y la Arquitectura de Computadores, esta asignatura proporciona al alumno una comprensión integral del funcionamiento, uso y programación de un computador.
Procesadores de Lenguajes I es una asignatura obligatoria inscrita en la materia de Lenguajes de Programación. Esta materia consta de las siguientes asignaturas:
NOMBRE |
Curso |
Semestre |
ETCS |
Carácter (FB, Ob,Op) |
Autómatas, Gramáticas y Lenguajes |
1 |
2 |
6 |
Ob |
Teoría de los Lenguajes de Programación |
2 |
2 |
6 |
Ob |
Procesadores de Lenguajes I |
3 |
1 |
6 |
Ob |
Procesadores de Lenguajes II |
3 |
2 |
6 |
Ob |
Procesadores de Lenguajes II es la última asignatura de esta materia y se imparte en el segundo semestre del tercer curso del Grado en Ingeniería Informática.
Para poder cursar la asignatura, el alumno debería haber superado las asignaturas de programación y tener soltura en programación orientada a objetos para poder realizar la práctica. Asimismo, debería haber superado las asignaturas anteriores de la materia de Lenguajes de Programación: Autómatas, Gramáticas y Lenguajes (primer curso) y Teoría de los Lenguajes de Programación (segundo gurso), Procesadores del Lenguaje I (tercer curso primer semestre).
En especial, la práctica obligatoria de Procesadores de Lenguajes II puede basarse en el desarrollo previo que el alumno debe haber realizado para Procesadores de Lenguajes I.
En general, existe una importante interacción entre la estructura de un compilador y el diseño del lenguaje de programación que se está compilando. Por esta razón, el conocimiento previo de algunos lenguajes de programación es conveniente. El alumno debería estar familiarizado con matemáticas discretas y estructuras básicas de datos.
También es esencial que conozca un poco de arquitectura de máquinas y lenguaje ensamblador, en particular para el capítulo sobre la generación de código.
La práctica se programará usando el lenguaje Java, por lo que es importante que el alumno disponga de conocimientos previos del paradigma de orientación a objetos y de la sintaxis de dicho lenguaje.
Las consultas sobre los contenidos o sobre el funcionamiento de la asignatura se plantearán preferentemente en el curso virtual, utilizando los foros públicos.
El alumno podrá ponerse en contacto directo con el equipo docente a través del correo electrónico:
procleng2@lsi.uned.es
Anselmo Peñas
Atención al Estudiante: Jueves de 9:30 a 13:30 h
Tfno.: 91 398 7750
Despacho 2.09; E.T.S.I. Informática, UNED
C/ Juan del Rosal, 16, 28040. Madrid
Laura Plaza
Atención al Estudiante: jueves, de 10 a 14 h
Tfno.: 91 398 8919
Despacho 2.11; E.T.S.I. Informática, UNED
C/ Juan del Rosal, 16, 28040. Madrid
Alvaro Rodrigo
Atención al Estudiante: Jueves de 11:00 a 13:00 horas y de 15:00 a 17:00 horas.
Tfno.: 91 398 9693
Despacho 2.03; E.T.S.I. Informática, UNED
C/ Juan del Rosal, 16, 28040. Madrid
Sergio Moreno
Atención al Estudiante: Martes de 10:00 a 14:00 horas.
Tfno.: 91 398 6297
Despacho 2.16; E.T.S.I. Informática, UNED
C/ Juan del Rosal, 16, 28040. Madrid
Competencias básicas
CB1 - Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio.
CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
Competencias generales
G.1 - Competencias de gestión y planificación: Iniciativa y motivación. Planificación y organización (establecimiento de objetivos y prioridades, secuenciación y organización del tiempo de realización, etc.). Manejo adecuado del tiempo.
G.2 - Competencias cognitivas superiores: selección y manejo adecuado de conocimientos, recursos y estrategias cognitivas de nivel superior apropiados para el afrontamiento y resolución de diversos tipos de tareas/problemas con distinto nivel de complejidad y novedad: Análisis y Síntesis. Aplicación de los conocimientos a la práctica Resolución de problemas en entornos nuevos o poco conocidos. Pensamiento creativo. Razonamiento crítico. Toma de decisiones.
G.5 - Competencias en el uso de las herramientas y recursos de la Sociedad del Conocimiento: Manejo de las TIC. Competencia en la búsqueda de información relevante. Competencia en la gestión y organización de la información. Competencia en la recolección de datos, el manejo de bases de datos y su presentación.
Competencias específicas
FB.04 - Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería.
FB.05 - Conocimiento de la estructura, organización, funcionamiento e interconexión de los sistemas informáticos, así como de los fundamentos de su programación, y su aplicación para la resolución de problemas propios de la ingeniería.
BC.1 - Capacidad para diseñar, desarrollar, seleccionar y evaluar, aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a los principios éticos y a la legislación y normativa vigente.
BC.6 - Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
BC.7 - Conocimiento, diseño y utilización de forma eficiente de los tipos y estructuras de datos más adecuados a la resolución de un problema.
BC.8 - Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
BC.9 - Capacidad para conocer, comprender y evaluar la estructura y arquitectura de los computadores, así como los componentes básicos que los conforman.
BTEc.1 - Capacidad para tener un conocimiento profundo de los principios fundamentales de la computación y saberlos aplicar para interpretar, seleccionar, valorar, modelar, y crear nuevos conceptos, teorías, usos y desarrollos tecnológicos relacionados con la informática.
BTEc2: 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.
RA6. Construir traductores y procesadores de lenguajes. G.1, FB.4, FB.5, BC.6, BC.7, BC.8, BC.9, BTEc2
RA7. Conocer y comprender las distintas etapas en la traducción de lenguajes de programación así como las distintas maneras de implementarlas. G.2, FB.5, BC.8, BC.9, BTEc1, BTEc2
RA8. Utilizar herramientas de apoyo a la construcción de procesadores de lenguajes. G.5, BC.1, BC.6, BC.8, BC.9, BTEc1, BTEc2
Tema 1: Análisis semántico: Traducción dirigida por la sintaxis
Tema 2: Análisis semántico II: Declaración y comprobación de tipos
Tema 3: Generación de código intermedio
Tema 4: Generación de código destino
Tema 5: Entornos en tiempo de ejecución
Tema 6: Intérpretes
La metodología que usaremos en esta asignatura es la propia de una educación a distancia apoyada por el uso de tecnologías de la información. El alumno dispone de la guía en la que se explica el contenido de cada uno de los capítulos y el plan de trabajo que debe seguir durante su aprendizaje.
El estudio de los conceptos teóricos debe plantearse con el objetivo de ser aplicados, es decir, en todo momento el alumno debe ir integrando los conceptos que va adquiriendo a la comprensión de cómo se desarrolla un compilador y las distintas alternativas que se le presentan en su diseño y desarrollo. Por esta razón, la práctica es una herramienta fundamental que acompaña al alumno a lo largo de todo el curso.
El temario ha sido planteado de tal forma que el alumno pueda introducirse en los contenidos de la asignatura de una manera gradual, adquiriendo los conocimientos necesarios para comprender la secuencia de traducción de un lenguaje. Por esta razón, tanto los libros de texto como el temario de la asignatura siguen el orden que preferiblemente debe seguir el alumno para su estudio. Para facilitar este proceso, el texto base de esta asignatura es el mismo que para Procesadores del Lenguaje I.
La asignatura consta de contendios teóricos y del desarrollo de una práctica. El desarrollo de la práctica requiere el estudio previo de la teoría y la profundización en alguno de los conceptos y técnicas concretos. Por esta razón, las horas de práctica no son sólo horas de implementación, sino también de estudio teórico-práctico. Así, para un mayor aprovechamiento de los conocimientos impartidos, se considera conveniente solapar la realización de la práctica con el estudio de la teoría y la realización de ejercicios.
Para solicitar plaza/turno de prácticas de laboratorio/experimentales, el estudiante tendrá que acceder a la aplicación de prácticas desde su escritorio. En estas imágenes puede ver desde dónde se puede realizar el acceso a dicha aplicación: Imágenes. Si al acceder a ella no encuentra ninguna oferta, deberá ponerse en contacto con el centro asociado donde está matriculado.
TIPO DE PRUEBA PRESENCIAL |
|
---|---|
Tipo de examen | |
Tipo de examen | Examen mixto |
Preguntas test | |
Preguntas test | 10 |
Preguntas desarrollo | |
Preguntas desarrollo | 4 |
Duración | |
Duración | 120 (minutos) |
Material permitido en el examen | |
Material permitido en el examen | Ninguno |
Criterios de evaluación | |
Criterios de evaluación | Corrección de las respuestas a las preguntas de test planteadas. |
% del examen sobre la nota final | |
% del examen sobre la nota final | 70 |
Nota mínima del examen para aprobar sin PEC | |
Nota mínima del examen para aprobar sin PEC | |
Nota máxima que aporta el examen a la calificación final sin PEC | |
Nota máxima que aporta el examen a la calificación final sin PEC | |
Nota mínima en el examen para sumar la PEC | |
Nota mínima en el examen para sumar la PEC | |
Comentarios y observaciones | |
Comentarios y observaciones | La parte teórica está compuesta por una prueba presencial. Se considera aprobada si se obtiene una nota igual o superior a 5 puntos. La prueba consistirá en la resolución de varios problemas sobre los cuales habrá que responder unas preguntas de test.
|
PRUEBAS DE EVALUACIÓN CONTINUA (PEC) |
|
---|---|
¿Hay PEC? | |
¿Hay PEC? | No |
Descripción | |
Descripción | No hay Prueba de Evaluación Continua (PEC). Sí hay práctica obligatoria |
Criterios de evaluación | |
Criterios de evaluación | |
Ponderación de la PEC en la nota final | |
Ponderación de la PEC en la nota final | |
Fecha aproximada de entrega | |
Fecha aproximada de entrega | |
Comentarios y observaciones | |
Comentarios y observaciones |
OTRAS ACTIVIDADES EVALUABLES |
|
---|---|
¿Hay otra/s actividad/es evaluable/s? | |
¿Hay otra/s actividad/es evaluable/s? | Si |
Descripción | |
Descripción | Para aprobar la asignatura es obligatorio realizar y superar la parte práctica. La práctica consiste en el diseño y la implementación del analizador semántico y la generación de código intermedio y final de un compilador para un lenguaje sencillo.
|
Criterios de evaluación | |
Criterios de evaluación | Para superar la práctica tienen que funcionar todas las fases que conforman el compilador solicitado, generando código final correcto y completamente funcional. Todas las prácticas pasan por un detector de copias que las compara respecto a las prácticas del mismo curso y de cursos anteriores. En caso de copia, el alumno suspenderá todas las convocatorias del curso. Se recuerda al estudiantado que no está permitido el uso de herramientas de Inteligencia Artificial Generativa para la elaboración de trabajos académicos. En cualquier caso, sobre las posibilidades y límites en el uso de este tipo de herramientas en la UNED, puede consultarse la siguiente Guía de uso. |
Ponderación en la nota final | |
Ponderación en la nota final | 30 |
Fecha aproximada de entrega | |
Fecha aproximada de entrega | |
Comentarios y observaciones | |
Comentarios y observaciones | La fecha concreta de entrega de la práctica se indicará en el enunciado. La entrega se realiza unos días después de terminar los exámenes. La práctica se puede entregar tanto en junio como en septiembre. A los alumnos que aprueben la práctica se les guardará la nota hasta que superen la parte teórica en el curso actual o en el siguiente. Las prácticas aprobadas durante el curso anterior se tendrán que notificar al equipo docente a través de la dirección de correo electrónico de la asignatura. Al inicio del curso se indicará cómo hacerlo en el foro de la asignatura. Todas las prácticas pasan por un detector de copias que las compara respecto a las prácticas del mismo curso y de cursos anteriores. En caso de copia, el alumno suspenderá todas las convocatorias del curso. |
¿Cómo se obtiene la nota final? |
|
---|---|
La asignatura consta de parte teórica y parte práctica. Ambas partes deben aprobarse por separado. La nota final se calcula ponderando un 70% para la parte teórica y un 30% para la parte práctica. Únicamente la calificación de las prácticas aprobadas se conservará para el curso siguiente. |
ISBN(13): 9789702611332
Título: COMPILADORES: PRINCIPIOS, TÉCNICAS Y HERRAMIENTAS 2ª Autor/es: Sethi, Ravi;Lam, Monica S.;Aho, Alfred V.;Ullman, Jeffrey; Editorial: PEARSON ADDISON-WESLEY |
Procesadores del Lenguaje II se corresponde con los temas 5, 6, 7 y 8 del texto base.
El texto comienza con una introducción de las ideas principales que subyacen al proceso de la compilación y posteriormente ilustra esas ideas construyendo un compilador sencillo de una pasada. El resto del libro amplía los conceptos presentados en los dos primeros capítulos y trata temas más avanzados como el análisis sintáctico, la verificación de tipos y la generación y optimización de código, todo ello presentado de forma gradual y ordenada.
Es un compendio exhaustivo y autocontenido de todos los aspectos básicos involucrados en el diseño de un compilador, que hace énfasis en el análisis léxico y en el sintáctico, sin importar cuáles sean las máquinas fuente y destino. Considera cada fase de la construcción de un compilador, con inclusión de aspectos tanto de diseño como de implementación.
Es un texto de referencia para el estudio de procesadores de lenguajes o compiladores
Es un libro que encuentra un equilibrio entre los conceptos a adquirir y la implementación real de un compilador. Ofrece el código completo de un compilador para un lenguaje reducido, siendo de gran ayuda para la comprensión de cómo se pasa de los conceptos teóricos a la implementación. Recorre todos los contenidos esenciales de Procesadores del Lenguaje I y procesadores del Lenguaje II: análisis léxico, análisis sintáctico, análisis semántico, ambientes de ejecución y generación de código.
La enseñanza a distancia posee unas características que la diferencian de la presencial. Sin embargo, esto no impide que el alumno pueda disponer de la ayuda y los recursos necesarios para cursar las asignaturas en las que se matricule. Los mecanismos de los que dispone el alumno para facilitar el aprendizaje requerido en la asignatura son los siguientes:
- Tutores en los centros asociados. Los tutores serán los encargados de desarrollar las sesiones presenciales. Para la realización de las prácticas el alumno debe ponerse en contacto con el tutor correspondiente.
- Tutorías presenciales en el centro asociado correspondiente.
- Entorno Virtual. A través de CiberUNED el equipo docente de la asignatura pondrá a disposición de los alumnos diverso material de apoyo en el estudio, así como el enunciado de la práctica obligatoria. Dispone además de foros donde los alumnos podrán plantear sus dudas para que sean respondidas por los tutores o por el propio equipo docente. Es la parte fundamental de la asignatura, ya que supone la principal herramienta de comunicación entre el equipo docente y los alumnos, así como de los alumnos entre sí.
- Tutorías con el equipo docente en las que el equipo docente atenderá dudas de carácter conceptual vía email, teléfono o presencial.