IMPLEMENTACIÓN DE LENGUAJES NO IMPERATIVOS     

Curso 2003-2004



        Titulaciones:   Ingeniería en Informática
                            
        Asignatura Optativa 6 créditos (4 teóricos + 2 prácticos)
                            
        Segundo Ciclo - Curso Indiferente - Primer Cuatrimestre

        TEMARIO
	Tema 1.- Introducción (en Postscript : click aquí | en PDF: click aquí)
	Tema 2.- l-Cálculo (en Postscript : click aquí | en PDF: click aquí)
	Tema 3.- La técnica de reducción de grafos (en Postscript : click aquí | en PDF: click aquí)
	Tema 4.- Supercombinadores (en Postscript : click aquí | en PDF: click aquí)
		  	Click aquí para descargar un  lambda-lifter (para usarlo lee README.txt)
	Tema 5.- El lenguaje núcleo (en Postscript : click aquí | en PDF: click aquí)
	Tema 6.- La máquina G (en Postscript : click aquí | en PDF: click aquí)
	Tema 7.- Otros aspectos: traducción, chequeo de tipos, optimización por  transformación, etc


        LABORATORIO:
 
Construir un compilador, basado en la Máquina G,  capaz de generar código para             
programas  núcleo  (= conjuntos de definiciones de supercombinadores donde uno es llamado “main”) 
junto un interprete de dicho código que muestre la secuencia de estados de la máquina.
 
Como lenguaje de programación se utilizará Haskell (Sistema Hugs)

        Fecha comienzo: 27 de Noviembre de 2003                

        Ultimo laboratorio: 15 de Enero de 2004

        Lugar: Laboratorio E08 

 

        Descripción detallada del trabajo:  (en Postscript : click aquí | en PDF: click aquí)

          Material para el laboratorio: 

                                Material básico: click aquí    (16-12-2003: corregidos los ficheros GMFase3.hs y GMFase4.hs)

                         Programas para probar la fase 3: click aquí

                               Programas para probar la fase 4: click aquí

                      

           Entrega del trabajo:   

Fecha tope: El día del examen (que está previsto para el 04/02/2004)

                Material a entregar: Dejar en la cuenta individual de la sisd00

  • un fichero con una breve explicación del trabajo realizado
  • un breve manual de usuario
  • todos los ficheros necesarios para la ejecución
  • una buena colección de ejemplos de uso (clasificados por fases)