Procesadores de lenguajes

Código Asignatura:
1397
Nº Créditos ECTS:
6
Duración:
Semestral
Fecha de exámenes: calendario
Plan de estudios:

Descripción

Procesadores de Lenguajes (en lo sucesivo PL) es una asignatura obligatoria que consta de 6 créditos y que introducirá al estudiante en las áreas fundamentales de esta materia, que explora los problemas y técnicas que se plantean en la construcción de procesadores, compiladores, traductores e intérpretes de los diferentes lenguajes de programación. El estudio de dichas técnicas ofrecerá al estudiante una visión más amplia de los lenguajes de programación, previamente estudiados desde el punto de vista del programador y no del constructor de intérpretes o compiladores. Otras aplicaciones informáticas que utilizan las técnicas de los Procesadores de Lenguaje son los conversores de formatos, generadores de código, editores sensibles al contexto, verificadores estáticos de programas, etc.

Las actividades formativas de carácter práctico de la asignatura incluirán la construcción de partes de un procesador para un lenguaje simple y restringido. Ello permitirá evaluar los conocimientos y capacidades para cada una de las fases del análisis, llegando a casos simples de generación de código para estructuras básicas.

Son dos los prerrequisitos básicos que debería cumplir todo estudiante antes de abordar la asignatura PL:

  • Por un lado se debe tener una buena base de programación, que permita desenvolverse en un entorno de Programación Orientada a Objetos, así como manipular estructuras de datos básicas. Por lo tanto se recomienda cursar previamente las asignaturas “Metodología de la Programación” y “Estructuras de Datos”.
  • También es necesario contar con conocimientos básicos de gramáticas y autómatas, por lo que se recomienda cursar previamente la asignatura “Estructuras Discretas”.

Objetivos generales

Los contenidos cubrirán la teoría y la práctica de la construcción de procesadores de lenguajes (compiladores o intérpretes).

Objetivos específicos o competenciales

Competencias que se adquirirán:

  • Reconocer los modelos formales que sostienen la teoría del procesamiento de lenguajes, tales como las expresiones regulares, teoría de autómatas, y gramáticas.
  • Describir las distintas fases y algoritmos utilizados en la traducción y generación de código desde el programa fuente al ejecutable, incluidas las consideraciones en la traducción de código dependiente e independiente de la máquina.
  • Introducir los conceptos de optimización de código, incluyendo las distintas posibilidades en la elección de código intermedio y fases de optimización.
  • Introducir los conceptos de tipos, ámbito y su comprobación (compatibilidad), en el procesamiento de lenguajes de programación.

Los objetivos basados en los contenidos de la asignatura son los siguientes:

  • Conceptos de teoría de autómatas y lenguajes formales.
  • Tipos de procesadores de lenguajes y sus componentes principales.
  • Análisis léxico.
  • Análisis sintáctico.
  • Comprobación de tipos.
  • Generación y optimización de código.

Metodología

La metodología adoptada en esta asignatura para el aprendizaje y evaluación de sus contenidos, se encuentra adecuada a la modalidad de enseñanza a distancia. Junto con el estudio del manual de la asignatura, se encuentran programadas una serie de actividades didácticas evaluables para cada una de las unidades didácticas. Estas actividades consistirán, básicamente, en la búsqueda y análisis de información de fuentes diversas, participación en foros de discusión temáticos, así como la resolución de casos concretos de creación y edición de bases de datos.

La asignatura se basa en un proceso de aprendizaje continuo mediante la realización de una serie de actividades de evaluación y aprendizaje, en su mayoría vinculadas y relacionadas entre sí. Por ello, es preciso que los estudiantes realicen las actividades de evaluación continua y aprendizaje planificadas en el "Cronograma de Actividades Didácticas", y definidas en el "sistema de evaluación", apartados ambos que figuran más abajo en esta guía docente.

Dedicación requerida

Se estima que la lectura y comprensión de los contenidos teóricos abarcados en las diversas unidades didácticas ocupará aproximadamente unas 60 horas, mientras la realización de las Actividades de Evaluación Continua (AECs), las Actividades de Aprendizaje y la realización de los Controles, llevará unas 75 horas aproximadamente. También podemos considerar que con el empleo de unas 15 horas por parte del alumno, de cara a preparar el examen final presencial, será suficiente para consolidar los conocimientos y habilidades adquiridas durante el trascurso de la asignatura.

Tutorías

Las dudas conceptuales que surjan tras el estudio razonado de las unidades del manual y/o del material complementario deben plantearse en los Foros de Tutorías disponibles en el Aula Virtual.

No obstante, está a disposición de los estudiantes un horario de tutorías telefónicas o consultas mediante correo electrónico.

Se quiere destacar la importancia de los foros como principal canal de comunicación con el profesor y con los compañeros del aula, además de ser una herramienta primordial para el intercambio de conocimientos, facilitando así el aprendizaje de los conceptos asociados a la asignatura.

La participación en las tutorías, que serán adaptadas en función de las características y necesidades de cada estudiante, también es muy recomendable. Estas sesiones de tutorización se realizarán prioritariamente utilizando los foros virtuales o el teléfono.

A continuación se recogen diferentes recursos de apoyo para la metodología de la asignatura:

Aula Virtual: Por medio del aula el estudiante se puede comunicar a cualquier hora con su profesor y con sus compañeros.

Secondlife: UDIMA, en su ánimo de dar una formación de calidad y actualizada a las nuevas tecnologías, dispone de una isla en Secondlife para realizar distintas actividades on-line.

Materiales didácticos

Para el desarrollo del aprendizaje teórico, sobre el que versará el examen final, se proporcionará al estudiante un manual constituido por unidades didácticas, que se corresponden con la descripción de contenidos de la asignatura. Este manual podrá tener diferentes formatos dependiendo de la asignatura.

La bibliografía recomendada y los materiales complementarios asociados al desarrollo de cada asignatura serán facilitados en el Aula Virtual al hilo del desarrollo de las unidades didácticas.

La UDIMA también cuenta con múltiples recursos para el aprendizaje de sus estudiantes, como pueden ser:

Librería Virtual e-brary: Nuestros alumnos tienen a su disposición una librería virtual con más de 65.000 títulos.

Youtube: UDIMA dispone de su propio canal donde los profesores pueden colgar vídeos interesantes para la formación de los estudiantes.
(www.youtube.com/universidadudima)

Manual enviado en el curso 2011/2012:
Louden, Kenneth C. (2004). "Construcción de compiladores: principios y práctica", México: THOMSON PARANINFO.

Contenidos del Manual:
Unidad 1. Introducción
Unidad 2. Rastreo o Análisis Léxico
Unidad 3. Gramáticas Libres de Contexto y Análisis Sintáctico
Unidad 4. Análisis Sintáctico Descendente
Unidad 5. Análisis Sintáctico Ascendente
Unidad 6. Análisis Semántico
Unidad 7. Ambientes de Ejecución
Unidad 8. Generación de Código

Sistema de evaluación

El sistema de evaluación del aprendizaje de la UDIMA contempla la realización de diferentes tipos de actividades de evaluación y aprendizaje. El criterio de valoración establecido se detalla a continuación:

Actividades de aprendizaje
10%
Controles
10%
Actividades de Evaluación Continua (AEC)
25%
Examen final presencial
55%
TOTAL 100%