Usted está aquí: Inicio web asignaturas

Fichas de asignaturas 2006-07


  CÓDIGO NOMBRE
Asignatura 1713027 PROCESADORES DE LENGUAJES II
Titulación 1713 INGENIERÍA EN INFORMÁTICA
Departamento C137 LENGUAJES Y SISTEMAS INFORMATICOS
Curso 5  
Créditos ECTS 4  

Créditos Teóricos 1,5 Créditos Prácticos 3 Tipo Troncal

 

Profesorado
José Antonio Jiménez Millán (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 5º curso es continuación de la asignatura llamada
“Procesadores de Lenguajes I” de 4º curso de la Ingeniería en Informática que,
a
su vez, se puede considerar continuación  de la asignatura de "Traductores"
obligatoria de 3º curso de las Ingenierías Técnicas de Gestión y Sistemas.

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
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.

Se recomienda:

a) Poseer los conocimientos proporcionados por la asignatura troncal de 4º
curso
titulada "Procesadores de Lenguajes I".
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 Campas Virtual como herramienta de intercambio de
conocimientos entre los alumnos y con el profesor.
Competencias
Competencias específicas
  • Cognitivas(Saber):

    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
    
  • Procedimentales/Instrumentales(Saber hacer):

    •  Saber impllementar y depurar, sobre un ordenador, un pequeño
    compilador de un lenguaje funcional.
    •  Saber impllementar y depurar, sobre un ordenador, un pequeño
    compilador de un lenguaje lógico.
    •  Saber utilizar un sistema de reescritura para implementar,
    sobre un
    ordenador, un pequeño traductor utilizando la técnica de compilación
    mediante transformación de programas.
    •   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.
    •  Describir, por escrito, 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, sobre un ordenador, pequeños
compiladores utilizando las herramientas y técnicas mostradas en clase.

Programa
Tema 1: Compilación de lenguajes funcionales.
• El cálculo lambda.
• Reducción de grafos. Orden normal y aplicativo.
• Unificación en lenguajes funcionales.
• Recolección de basura (Garbage Collection).
Tema 2: Compilación de Prolog.
• La unificación en Prolog.
• La máquina abstracta de Warren (WAM).
Tema 3: Compilación por transformación de programas.
• Gramáticas de árboles.
• Sistemas de reescritura.
• Compilación por transformación de programas.
Metodología
Parte de las clases de teoría consistirán en la exposición, por parte del
profesor y con ayuda de los medios audiovisuales necesarios, de los contenidos
teóricos. En ellas también se propondrán algunos ejercicios a realizar en casa
por los alumnos y que serán discutidos, por los propios alumnos, en las clases
siguientes.

En las clases de prácticas el profesor mostrará pequeños modelos típicos de
compiladores de lenguajes funcionales, lógicos y programas basados en sistemas
de
reescritura, discutiendo la solución adoptada. Por último, se pedirá que los
alumnos implementen y depuren sobre el ordenador pequeños módulos de
compiladores
propuestos por el profesor.

Tanto los ejemplos típicos como los enunciados de los ejercicios propuestos se
publicarán con la suficiente antelación en la página web de la asignatura.

Así mismo, los alumnos tendrán que preparar dos trabajos a exponer en público.
Distribución de horas de trabajo del alumno/a

Nº de Horas (indicar total): 100

  • Clases Teóricas: 10  
  • Clases Prácticas: 19  
  • Exposiciones y Seminarios: 10  
  • Tutorías Especializadas (presenciales o virtuales):
    • Colectivas: 3  
    • Individules:  
  • Realización de Actividades Académicas Dirigidas:
    • Con presencia del profesorado: 3  
    • Sin presencia del profesorado:  
  • Otro Trabajo Personal Autónomo:
    • Horas de estudio: 30  
    • Preparación de Trabajo Personal: 18  
    • ...
        
  • Realización de Exámenes:
    • Examen escrito: 6  
    • Exámenes orales (control del Trabajo Personal):  
Técnicas Docentes
Sesiones académicas teóricas:   Exposición y debate:   Tutorías especializadas:  
Sesiones académicas Prácticas:   Visitas y excursiones:No   Controles de lecturas obligatorias:No  
Criterios y Sistemas de Evaluación
Se realizarán un examen teórico y otro práctico. El examen práctico se realizará
sobre un ordenador y necesitará la implementación de un programa.
Los trabajos de los alumnos deben ser entregados dentro de las fechas indicadas
por el profesor.
Tanto los trabajos realizados y expuestos por los alumnos como cada uno de los
exámenes se valorarán sobre 10.
Para aprobar la asignatura habrá que tener aprobado todos y cada uno de ellos
(es
decir, un mínimo de 5 en cada trabajo, 5 en el examen de teoría y 5 en el de
prácticas).
Para poder realizar el examen de teoría habrá que haber aprobado el trabajo.
Para aprobar el examen de teoría el alumno debe contestar todos los ejercicios y
preguntas presentadas demostrando dominar, suficientemente, todos los objetivos
básicos de la asignatura.
Para poder pasar a la fase del examen de prácticas habrá que tener aprobado 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
• Simon L. Peyton Jones. “The Implementation of Functional Programming
Languages”. Edita: Prentice Hall. 1987.

• Hassan Aït-Kaci. “Warren's Abstract Machine: A Tutorial Reconstruction”.
Accesible para usos no comerciales en la dirección de Internet:
“http://www.vanx.org/archive/wam/wam.html”

• EelcoDolstra  and EelcoVisser. “Building Interpreters With Rewriting
Strategies”. En MarkVanDenBrand and RalfLaemmel (editors) “Workshop on Language
Descriptions, Tools and Applications (LDTA'02)”. volume 65.3 de las Electronic
Notes in Theoretical Computer Science. Elsevier Science Publishers, April 2002.

• Martí-Oliet and José Meseguer, 2002. “Rewriting Logic: Roadmap and
Bibliography”. Theoretical Computer Science 285(2):121-154.

El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente.