Inicio >> Docencia >> Titulación >> Asignaturas/Cursos >> Presentación
           --

Procesadores de Lenguaje (13003)


Presentación Grupos Recursos Bibliografía Exámenes Avisos

Recomendaciones previas
Haber cursado las asignaturas de Teoría de Autómatas y Lenguajes Formales de la Ingeniería Técnica de Informática de Sistemas o del Primer Ciclo de la Ingeniería en Informática.
Objetivos de la asignatura

OBJETIVOS

En la asignatura se estudian los principios de diseño e implementación de los procesadores de lenguajes: programas que traducen ficheros escritos en un lenguaje de alto nivel a ficheros que contienen código máquina casi-ejecutable. Los objetivos son:

  • Comprender cada parte del proceso de compilación y las diferentes formas de abordarlo, según las características del problema y el tipo de solución requerida.
  • Estudiar la importancia del análisis sintáctico en el proceso de compilación y reconocer y saber aplicar cada tipo de gramática con el analizador sintáctico más adecuado.
  • Relacionar el análisis sintáctico con el semántico, y para ello, estudiar la extensión de las representaciones sintácticas para incorporar atributos que permiten la incorporación de información semántica.
  • Relacionar las representaciones intermedias resultantes del análisis sintáctico y semántico con la gestión de memoria y todos los problemas derivados de la generación de código de un programa.
  • Saber utilizar herramientas representativas para la producción de un procesador de lenguaje.
  • Desarrollar una actitud crítica ante los LP y los problemas relacionados con su implementación, así como la mejor manera de aprovechar su funcionalidad.


COMPETENCIAS

  • Conocer la estructura y fases de un compilador
  • Conocer el funcionamiento de un analizador léxico.
  • Conocer alguna herramienta de generación de analizadores léxicos.
  • Introducir el funcionamiento de un análisis sintáctico y terminología.
  • Ser capaz de detectar las distintas alternativas de tratamiento de la semántica.
  • Examinar las diferentes técnicas de tratamiento y recuperación de los errores.
  • Comprender la importancia del código intermedio y las diferentes propuestas.
  • Ser capaz de usar las diferentes herramientas para ayuda a construir las primeras fases de un pequeño compilador.
Contenidos

TEORÍA

1. Introducción. Generalidades. Historia. Paradigmas de programación. Compiladores.
2. Aspectos formales. Definiciones. BNF. Lenguajes Formales. Gramáticas. Análisis sintáctico.
3. Análisis de léxico. Tablas de símbolos. Herramientas.
4. Análisis sintáctico. Construcción de analizadores. Herramientas.
5. Semántica y análisis de tipos. Traducción dirigida por la sintaxis. Gramáticas Atribuidas.
6. Gestión y manejo de errores de léxico, sintácticos y semánticos.
7. Generación y Optimización de código. Código intermedio. Gestión de memoria.
8. Aspectos de implementación. Enlazadores. Cargadores.

PRÁCTICAS

9.Herramientas: lex, yacc, jlex, lisa, cup…

Metodologías
CLASES MAGISTRALES

En estas clases se presentarán los contenidos básicos de un cierto tema. Las clases comenzarán con una breve introducción de los contenidos que se pretenden transmitir en la clase, así como con un breve comentario a los conceptos vistos en clases anteriores y que sirven de enlace a los que se pretenden desarrollar. El desarrollo de la clase se llevará a cabo con medios audiovisuales, textos, transparencias… que permitan un adecuado nivel de motivación e interés en los alumnos. Es importante intentar terminar la exposición con las conclusiones más relevantes del tema tratado.
Las transparencias que se utilizarán en clase están extraídas de las notas que se facilitan a los alumnos en la página web de la asignatura. Estas notas son una guía para el estudio, pero no son sustitutas de la bibliografía recomendada.

CLASES PRÁCTICAS

Las clases prácticas presenciales estarán dedicadas a la familiarización del alumno en el uso de alguna de las herramientas disponibles para la ayuda al diseño y construcción de compiladores
Los alumnos, en grupos de 2, deberán realizar una práctica obligatoria que consistirá en la implementación de la primera fase (hasta la generación de código intermedio) de un pequeño compilador de un lenguaje cuya especificación se le dará a lo largo del curso. Esta práctica tendrá que entregarse antes de una fecha determinada y defenderse en grupo.

TUTORÍAS

El alumnado tiene a su disposición seis horas de tutorías a la semana en las que puede consultar cualquier duda relacionada con los contenidos, organización y planificación de la asignatura. Las tutorías pueden ser individualizadas, pero se admite tutorías grupales para resolver problemas relacionados con las actividades a realizar en grupo.

PLATAFORMA VIRTUAL DE APRENDIZAJE

Es el vehículo de comunicación y registro de información de la asignatura.
Todo el material de la asignatura está disponible en la plataforma moodle (http://studium.usal.es ).

Evaluación
La parte teórica (65%) se evaluará mediante un examen final el cual consta de dos partes:
  • Una prueba teórica de tipo test.
  • Una prueba práctica, escrita, con algunos problemas relacionados con la teoría de la asignatura.


La parte práctica (35%) se evaluará mediante la valoración de la práctica obligatoria realizada por los alumnos.

Para aprobar la asignatura es necesario aprobar ambas partes. La parte que se haya aprobado se guardará solo durante ese curso académico.

Datos de interés
HORARIO DE TUTORÍAS
Lunes, Miércoles, Jueves de 10 a 12h.
Profesorado
Luis Alonso Romero
Correo electrónico
Vivian López Batista
Correo electrónico
Otros datos

Créditos: 9.0 (6.0 T + 3.0 P) , Segundo cuatrimestre , Troncal , Número de grupos de teoría: 1 , Número de grupos de práctica: 1 , Acceso a la plataforma virtual

Ingeniería Informática (2 Ciclo) Primer curso

Áreas de Conocimiento
Ciencia de la Computación e Inteligencia Artificial
---
Identificarse Accesibilidad
Idioma inglés
Advertencia sobre la información contenida en esta aplicación Web
© 2024 Departamento de Informática y Automática - Universidad de Salamanca
Webmaster: Correo electrónico
Versión Móvil
[Contenido semántico de esta página]
Member of Informatics Europe Acerca de