Usted está aquí: Inicio web asignaturas

 

Fichas de asignaturas 2014-15


PROCESADORES DE LENGUAJES I

Asignaturas
 

Asignatura
 
Profesorado
 
Situación
 
Competencias
 
Objetivos
 
Programa
 
Actividades
 
Metodología
 
Distribucion
 
Técnicas Docentes
 
Evaluación
 
Recursos Bibliográficos
  Código Nombre    
Asignatura 1713026 PROCESADORES DE LENGUAJES I Créditos Teóricos 3
Descriptor   LANGUAGE PROCESSORS I Créditos Prácticos 1.5
Titulación 1713 INGENIERÍA EN INFORMÁTICA Tipo Troncal
Departamento C137 INGENIERÍA INFORMÁTICA    
Curso 4      
Créditos ECTS 4      

Para el curso Créditos superados frente a presentados Créditos superados frente a matriculados
2007-08 96.2% 86.2%

 

 

Profesorado

Miguel Ángel Bolivar Pérez (Coordinador)

Situación

Prerrequisitos

Los necesarios para acceder al segundo ciclo de la carrera de Ingeniero
en
Informática

Contexto dentro de la titulación

Esta asignatura troncal de 4º curso se puede considerar continuación de
la
asignatura llamada "Traductores" obligatoria de 3º curso de las
Ingenierías
Técnicas de Gestión y Sistemas.

Por otra parte puede considerarse previa a la asignatura troncal de 5º
curso
titulada "Procesadores de Lenguajes II".

A su vez, esta asignatura pone en práctica conocimientos y habilidades
aprendidas en otras asignaturas distintas de las previamente citadas.
En
concreto sobre programación Orientada a objetos, Estructuras de Datos,
y
Metodología de la Programación.

Recomendaciones

Continuando la asignatura previa de "Traductores" (obligatoria de 3º
curso de
las Ingenierías Técnicas de Informática de Gestión y de Sistemas, así
como del
3º curso de la Ingeniería en Informática), se pretende dotar de
conocimientos
teóricos y de habilidades prácticas en el funcionamiento y construcción
de los
compiladores de lenguajes de programación y otros procesadores de
lenguajes.

Debido al escaso número de créditos de esta asignatura, se ha planteado
como una
panorámica de los temas descritos en su temario. En concreto se
tratarán los
temas de: soporte en tiempo de ejecución, representaciones intermedias y
generación de código, así como organización de una tabla de símbolos y
una
introducción al chequeo de tipos.

En esta asignatura se estudian materias que pueden ser del interés de
aquellos
alumnos que deseen conocer el funcionamiento interno de un compilador y
de la
ejecución, a  bajo nivel, de los programas de ordenador.

Se recomienda:

a) Poseer los conocimientos proporcionados por la asignatura
obligatoria de 3º
curso titulada "Traductores", así como conocimientos de programación
Orientada a
objetos y de Estructuras de Datos.
b) La asistencia a clases teóricas y prácticas.
c) El estudio y trabajo continuado realizando los ejercicios propuestos
por el
profesor y entregando los trabajos pedidos a tiempo.
d) La utilización del Campus Virtual como herramienta de intercambio de
conocimientos entre los alumnos y con el profesor.

Competencias

Competencias transversales/genéricas

INSTRUMENTALES
• Capacidad de análisis y síntesis
• Capacidad de organización y planificación
• Comunicación oral y escrita en la lengua nativa
• Manejo de manuales y documentos en inglés
• Conocimientos de informática relativos al ámbito de estudio
• Capacidad de gestión de la información
• Resolución de problemas
• Toma de decisiones

PERSONALES
• Trabajo en equipo
• Habilidades en las relaciones interpersonales
• Razonamiento crítico
• Compromiso ético

SISTÉMICAS
• Aprendizaje autónomo
• Adaptación a nuevas situaciones
• Iniciativa y espíritu emprendedor
• Motivación por la calidad
• Creatividad

Competencias específicas

  • Cognitivas(Saber):

    Los conocimientos específicos relativos a esta materia incluyen los
    descritos en su temario.
  • Procedimentales/Instrumentales(Saber hacer):

    • Diseñar esquemas de traducción que resuelvan problemas concretos
    propuestos por el profesor.
    • Escribir a mano el código ensamblador que resultaría de la
    compilación de programas sencillos en C, sabiendo:
    o Realizar llamadas y retornos de funciones y procedimientos
    devolviendo valores.
    o Manejar datos simples.
    o Control de flujo del programa.
    o Manejar datos estructurados y objetos.
    • Buscar información sobre la asignatura.
    • Programar, compilar y depurar programas que implementen ejercicios
    de la materia en cuestión.
    • Resolver ejercicios y problemas de la materia.
    • Responder, por escrito, a preguntas teóricas.
    

Objetivos

• Presentar al alumno/a la materia.
• Conocer los principios, ventajas y limitaciones de las diversas
tecnologías
implicadas.
• Capacitar a los alumnos/as para implementar un compilador
simplificado con
generación de código.

Programa

Tema 1: Diseño de esquemas de traducción.
• Definiciones dirigidas por sintáxis. Definiciones
S-atribuidas.Utilización de
atributos sintetizados.
• Definiciones L-atribuidas. Esquemas de traducción. Utilización de
atributos
heredados.
• Implementación con FLEX/BISON
• Adaptación de un esquema a un traductor descendente.
• Casos especiales.

Tema 2: Soporte en tiempo de ejecución.
• Conceptos sobre lenguajes de programación
• Estrategias de almacenamiento de datos.
• Estructura de la memoria en tiempo de ejecución.
• Repaso del lenguaje ensamblador  de la arquitectura intel X86 y
manejo del
ensamblador de Linux.
• Un caso concreto: lenguaje C.
• Secuencias de llamada y retorno.
• Diferencias entre el lenguaje C y otros lenguajes con procedimientos
anidados. El Display.
• Representación en tiempo de ejecución de los tipos de datos: simples,
estructurados y objetos.

Tema 3: Representaciones intermedias y generación de código intermedio.
• Árboles sintácticos (de sintaxis abstracta) y grafos.
• Código de tres direcciones.
• Notación polaca postfija.
• Máquinas virtuales.
• Esquemas de traducción para la generación de código intermedio.

Tema 4: Generación de código a partir del código intermedio.
• Para estructuras de control.
• Para estructuras de datos.
• Para expresiones aritméticas y lógicas.
• Generadores automáticos de código.

Tema 5: Organización de una tabla de símbolos.
• Introducción. Información almacenada en una tabla de símbolos.
• Implementación de una tabla de símbolos
• Organización de una tabla para reflejar problemas de ámbito y
persistencia.
Ambitos anidados.
• Un ejemplo concreto.

Tema 6: Chequeo de tipos y unificación.
• Sistemas de tipos. Elementos.
• Implementación de un sistema de tipos. Esquemas de traducción para el
chequeo
de tipos.
• Chequeo de tipos y algoritmo de unificación.
• La unificación en Prolog y otros lenguajes.

Metodología

Al dejar de impartirse la asignatura en el curso 2012/2013 dispone de 4
convocatorias de examen que puede distribuir durante los cursos
2012/2013 y
2013/2014.

Criterios y Sistemas de Evaluación

Al dejar de impartirse la asignatura en el curso 2012/2013 dispone de 4
convocatorias de examen que puede distribuir durante los cursos
2012/2013 y
2013/2014.

Para la evaluación de la asignatura se realizarán dos pruebas en el
examen:
* Prueba escrita sobre el programa de la asignatura, que constará de:
ejercicios
de programación, preguntas de respuesta breve, preguntas de respuesta
múltiple o
alternativa (test) y/o preguntas de desarrollo corto en las que se
evaluará el
conocimiento básico de los alumnos sobre la asignatura.
* Prueba práctica sobre los conocimientos prácticos adquiridos donde el
alumno
deberá resolver determinadas cuestiones prácticas establecidas.
Para aprobar la asignatura habrá que tener aprobado todos y cada uno de
ellos (es
decir, un mínimo de 5 en el examen de prácticas y 5 en el examen de
teoría).
La calificación final, para aquellos alumnos que tengan aprobadas todas
las
partes, será la suma ponderada de cada parte.

Recursos Bibliográficos

•José Antonio Jiménez Millán. "Compiladores y Procesadores de
Lenguajes. 2ªed.".
Edita: Servicio de Publñicaciones de la Universidad de Cádiz, 2010.
•Aho, Sethi y Ullman. "Compiladores: Principios, técnicas y
herramientas".
Edita Addison-Wesley Publishing Company, 1990.
• Steven S. Muchnick. "Advanced Compiler Design Implementation". Edita
Morgan
Kaufmann Publishers, 1997.
• Michael L. Scott. "Programming Language Pragmatics". Edita Morgan
Kaufmann, 2000

 

El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente. En aplicación de la Ley 3/2007, de 22 de marzo, para la igualdad efectiva de mujeres y hombres, así como la Ley 12/2007, de 26 de noviembre, para la promoción de la igualdad de género en Andalucía, toda alusión a personas o colectivos incluida en este documento estará haciendo referencia al género gramatical neutro, incluyendo por lo tanto la posibilidad de referirse tanto a mujeres como a hombres.