Topic outline

  • Procesadores de Lenguaje (2012)

    procesadores_lenguaje.jpg

         

    Profesores

    Domingo Gómez Pérez

    Cristina Tirnauca

    Departamento de Matemáticas, Estadística y Computación

     

     

     

     

     

     

     

    Los procesadores de lenguajes o compiladores son programas que transforman programas escritos en un lenguaje a otro. Para ello, es necesario conocer "cómo se ha generado" la palabra.

    Las herramientas informáticas que se utilizarán serán Bison y Flex (Fast LEXical Analyzer) con el objetivo de generar un compilador rudimentario.

     

    Palabras Clave de la Asignatura

     Interpretación de Funciones, Sintaxis Concreta, Sintaxis Abstracta, Análisis Sintáctico, Análisis Semántico, Lenguajes de Programación, Programación Orientada a Objetos, Análisis Léxico, Interpretador.

  • Programa

    programa

     

     

    Datos identificativos de la Asignatura

    • Asignatura: Procesadores de Lenguaje

    • Código: 5415

    • Departamento / Área: Departamento de Matemáticas, Estadística y Computación

    • Título: Grado en Ingeniería Informática

    • Centro: Facultad de Ciencias

    • Créditos ECTS: 6

    • Idioma de impartición: Español

    • Profesores responsables: Domingo Gómez Pérez y Cristina Tirnauca

     

     

     

        Programa de la asignatura    

     

    Semana 1

    • Presentación.

    • Repaso TALF.

     

    Semana 2

    • Lenguaje natural: introducción.

    • Lenguaje natural: algoritmo de Earley.

     

    Semana 3

    • Analizadores sintácticos descendentes LL (1).

    • Analizadores sintácticos descendentes recursivos.

     

    Semana 4

    • Analizadores sintácticos ascendentes.

    • Prefijos viables.

     

    Semana 5

    • Analizador LR (0).

     

    Semana 6

    • Analizador SLR y LR canónico.

     

    Semana 7

    • Analizadores LALR.

     

    Semana 8

    • Generación de código intermedio.

     

    Semana 9

    • Ejemplos de código de 3 direcciones.

     

    Semana 10

    • Bootstrapping de 3 direcciones y Diagramas en T.

  • Bibliografía

    bibliografia

      

     

        Básica    

     

    • A.V. Aho, M.S. Lam, R. Sethi & J.D. Ullman (2007): «Compilers. Principles, techniques and tools». 2ª Ed. Addison-Wesley. (O la traducción al castellano de la edición de 1985).

    • A.W. Appel & J. Palsberg (2002): «Modern compiler implementation in Java». 2ª Ed. Cambridge University Press.

    • A.W. Appel: «Modern compiler implementation in C». Cambridge University Press.

    • J.R. Levine, T. Mason & D. Brown (1992): «Lex & Yacc». O'Reilly.

     

     

     

        Complementaria    

     

    • D. Grune, H. Bal, C. Jacobs & K. Langendoen (2000): «Modern compiler design». John Wiley & Sons.

    • Torben Ægidius Mogensen: «Basics of compiler design». Edición electrónica.

    • R. Wilhelm & D. Maurer (1995): «Compiler design». Addison-Wesley.

    • A.W. Appel: «Modern compiler implementation in ML». Cambridge University Press.

    • C.A. Jones & F.L. Drake (2001:) «Python and XML». O’Reilly.

  • Materiales de Clase

    materiales

     

     

    Semana 1

        

    Semana 2

    • MC-F-003. Lenguaje natural: introducción.

    • MC-F-004. Lenguaje natural: algoritmo de Earley.

        

    Semana 3

    • MC-F-005. Analizadores sintácticos descendentes LL(1).

    • MC-F-006. Analizadores sintácticos descendentes recursivos.

        

    Semana 4

        

    Semana 5

        

    Semana 6

    • MC-F-010. Analizador SLR y LR canónico.

        

    Semana 7

        

    Semana 8

    • MC-F-012. Generación de código intermedio.

        

    Semana 9

    • MC-F-013. Ejemplos de código de 3 direcciones.

        

    Semana 10

    • MC-F-014. Bootstrapping de compiladores y diagramas en T (1).

    • MC-F-015. Bootstrapping de compiladores y diagramas en T (2).

  • Prácticas

    practicas

     

     

  • Pruebas de Evaluación

    evaluacion

      

     

        Ejemplos de exámenes    

      

      

      

      

        Métodos de evaluación    

     

    Establecer en cada caso el peso en porcentaje que tiene en la evaluación de la asignatura la parte de la Evaluación Continua, y la correspondiente a la prueba del Examen Final:

    Descripción de la Evaluación Continua: actividades que debe desarrollar el alumno/a y su valoración

    • La Nota Final es la suma de dos calificaciones: la Nota de Comprensión Básica, que contribuye entre 0 y 6 puntos, y la Nota de Comprensión Profunda, que contribuye entre 0 y 4 puntos.

    • A su vez, la Nota de Comprensión Básica es la suma de dos notas: la obtenida a lo largo del desarrollo de la asignatura a través de la Evaluación Continua, que contribuye entre 0 y 6 puntos, y la nota de la parte básica del Examen Final, que contribuye asimismo entre 0 y 6 puntos: estas dos notas se suman y, en caso de superar el 6, el resultado se trunca a 6.

    • La Nota de Comprensión Profunda se obtiene en la parte avanzada del Examen Final.

    • La Evaluación Continua se desarrolla como sigue: con una periodicidad a determinar (posiblemente quincenal), se habrán de entregar y defender desarrollos de aplicaciones de los conceptos tratados, que podrán tomar la forma de resolución de problemas o de implementación mediante el uso de las herramientas adecuadas; asimismo, antes de la fecha de entrega que se acuerde a final de curso, se habrá de completar un Proyecto de Implementación relacionado con los compiladores.

    • Cada una de estas actividades recibirá una nota que se irá acumulando a las anteriores, permitiendo alcanzar a final de curso un máximo de 6 puntos sobre 10.

       

    Descripción del Examen Final (duración, se pueden llevar apuntes o no, tiene partes diferenciadas o no, se promedian teoría y problemas o no, etc.)

    • La duración no superará las tres horas, sólo constará de problemas, y se podrá llevar apuntes. Estará estructurado en dos partes: la parte básica contribuye a la Nota de Comprensión Básica, y la parte avanzada proporciona la Nota de Comprensión Profunda.

    • La parte básica permitirá obtener hasta 6 puntos, que se sumarán a los obtenidos en la evaluación continuada; la suma obtenida se truncará a 6 puntos. De este modo, cada alumno/a puede obtener mediante evaluación continuada la parte de la calificación de Comprensión Básica que más convenga a su propia situación, entre dos extremos: quien haya superado a la perfección la evaluación continuada se presenta al Examen Final sabiendo que tiene la asignatura aprobada y a fin de subir nota, y quien no haya podido esforzarse suficientemente a lo largo del curso tiene aún la opción de alcanzar los 6 puntos de esta parte en el Examen Final.

    • La parte avanzada es la única oportunidad de obtener notas superiores al 6, constituye la nota de Comprensión Profunda, y su calificación se suma a la nota de Comprensión Básica, proporcionando así la nota final.

  • Guía de Aprendizaje

    guia

     

     

  • Sobre el Profesor

    profesor

     

     

    domingo.jpg    

    Domingo Gómez Pérez

     

    Departamento de Matemáticas, Estadística y Computación

    UNIVERSIDAD DE CANTABRIA
     
    Más información

     

    tirnauca.jpg    

    Cristina Tirnauca

     

    Departamento de Matemáticas, Estadística y Computación

    UNIVERSIDAD DE CANTABRIA
     
    Más información