21
Universidad Católica de Cuyo Facultad de Filosofía y Humanidades Carrera: Especialización en la Enseñanza de la Educación Superior Sede: Universidad Católica de Santiago del Estero Trabajo: Final del Módulo IV “La Práctica de la Enseñanza” Enseñanza para la comprensión en Compiladores e Intérpretes Alumno: Salvador Valerio Cavadini – Junio de 2004 –

Enseñanza para la comprensión en Compiladores e …€¦ · Enseñanza para la comprensión en Compiladores e Intérpretes Introducción Este trabajo tiene como finalidad presentar

  • Upload
    doanthu

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Universidad Católica de CuyoFacultad de Filosofía y Humanidades

Carrera: Especialización en la Enseñanza de la Educación SuperiorSede: Universidad Católica de Santiago del EsteroTrabajo: Final del Módulo IV “La Práctica de la Enseñanza”

Enseñanza para la comprensión enCompiladores e Intérpretes

Alumno: Salvador Valerio Cavadini

– Junio de 2004 –

Enseñanza para la comprensión en Compiladores e Intérpretes

Introducción

Este trabajo tiene como finalidad presentar una propuesta didáctica para la enseñanza de “Teoríade Lenguajes Formales”, tópico correspondiente a la Unidad II del programa de la asignaturaCompiladores e Intérpretes1 en la cual ejercemos la docencia. Hemos elegido esta unidad pues elconcepto de lenguaje formal y las nociones asociadas a él –i.e. símbolo, alfabeto, gramática, sintaxis,semántica, etc.– son medulares al contenido de la asignatura. Esta propuesta se realizó teniendo encuenta las orientaciones conceptuales de la Enseñanza para la Comprensión.

En las siguientes secciones de este trabajo expondremos brevemente los cuatro componentes claves dela enseñanza para la comprensión: metas para la comprensión, tópicos generativos, desempeños para lacomprensión y evaluación continua. Seguidamente presentaremos una serie de desempeños para lacomprensión de los contenidos de la unidad “Teoría de Lenguajes Formales”.

Metas para la compresión

Las metas para la compresión son aquellos objetivos, que como docentes, deseamos seanalcanzados por nuestros alumnos. Estos objetivos son un conjunto de conceptos, procesos, habilidades,ideas, etc. que esperamos sean comprendidos por los estudiantes.

Las metas de compresión correspondientes a cada unidad de la asignatura se denominan submetas ydeben estar en sintonía con las metas propuestas para las metas planteadas para la asignatura completa.Estas últimas, denominadas hilos conductores, resumen la esencia de la materia. Es por esto que, antesde presentar las metas para la comprensión de la unidad tratada en este trabajo, detallaremos las metasde comprensión de la asignatura.

Hilos conductores de la obligación académica “Compiladores e Intérpretes” establecidos en laplanificación de la asignatura para el año 2004 son:

1. Comprender los conceptos fundamentales de la teoría de los lenguajes formales, la teoría de

autómatas y las gramáticas generativas, relacionarlos y aplicarlos en la resolución de

problemas.

2. Comprender los procesos de conversión de los lenguajes formales de alto nivel a código de

máquina y el funcionamiento de los compiladores e intérpretes.

3. Identificar, dominar y aplicar las técnicas que guían los procesos de diseño y las herramientas

básicas que se utilizan en la construcción de las partes constitutivas fundamentales de un

traductor.

4. Desarrollar cooperativamente traductores utilizando herramientas de generación automática.

Metas para la comprensión de la unidad “Teoría de Lenguajes Formales”:

1. Los alumnos comprenderán el concepto de “lenguaje”

2. Los alumnos establecerán similitudes y diferencias entre los lenguajes formales (artificiales) ylos naturales.

3. Los alumnos comprenderán los inconvenientes que plantea la ambigüedad de los lenguajesnaturales.

4. Los alumnos comprenderán que para procesar con una computadora las oraciones de unlenguaje es necesaria una representación finita y no ambigua de los mismos.

1 Materia anual perteneciente al cuarto año de las carreras de Analista de Sistemas y de Ingeniero en Computación que seimparten en la Facultad de Matemática Aplicada. El programa de la asignatura se encuentra detallado en el Apéndice A. Elsitio web de la asignatura es www.ucse.edu.ar/fma/compiladores

2

Enseñanza para la comprensión en Compiladores e Intérpretes

5. Los alumnos comprenderán los conceptos básicos de la Teoría de Lenguajes Formales:símbolo, alfabeto, hilera y operaciones relacionadas.

6. Los alumnos comprenderán el concepto de gramáticas generativas y su utilidad para representarlenguajes tanto finitos como infinitos.

7. Los alumnos serán capaces de identificar a qué nivel de la Jerarquía de Chomsky pertenece unagramática/lenguaje.

Tópico generativo

La enseñanza para la comprensión propone la utilización de tópicos generativos comoherramienta para estimular y facilitar el acceso a los nuevos conocimientos por parte de los alumnos.Los tópicos generativos son conceptos, ideas, temas, etc., centrales del dominio de conocimiento de unadisciplina y deben proveer conexiones y variedad de perspectivas en un grado suficiente como paraapoyar el desarrollo de comprensiones profundas de los alumnos. Además, el tópico generativo deberesultar de interés para los alumnos y docentes, debe poder vincularse con facilidad con las experienciasy conocimientos previos de los alumnos y permitir ser abordado a través de una gran variedad demedios.

El tópico generativo elegido para esta unidad es el concepto de lenguaje. Este concepto reúne lascaracterísticas necesarias para ser un tópico generativo ya que permite su abordaje desde las nocionesbásicas que tiene los alumnos sobre él y desde él se puede llegar a los demás conceptos vinculados queconforman la unidad “Teoría de Lenguajes Formales”. En la figura 1 puede observarse un mapaconceptual que vincula la noción de lenguaje con los contenidos de la unidad abordada y de otrasunidades de la asignatura.

Desempeños para la compresión

Una vez elegido el tópico generativo, el docente debe diseñar una serie de actividades que ayudenal alumno a explorar y establecer conexiones entre los nuevos conceptos que se le van presentado y sussaberes precedentes. Estas actividades se denominan desempeños para la comprensión.

Cabe destacar que no cualquier actividad es un desempeño para la comprensión. La actividad debeplantearle un desafío cognitivo –accesible– al estudiante que lo estimule a utilizar sus saberes parapoder culminar la actividad. Esta actividad además debe diseñarse en función de las metas para lacomprensión plateadas para la unidad.

Como dijimos, los desempeños de comprensión se diseñan en serie, es decir, debe ser una sucesióncoordinada de actividades que le brinde al alumno una guía y ejercitación gradual y constanteconsistente en retos cognitivos cada vez más complejos. Los investigadores clasificaron losdesempeños en tres categorías:

• Desempeños preliminares: son actividades relativamente simples que se desarrollan alinicio de la unidad en la etapa de exploración y le permiten a los alumnos tomar contacto conel tópico generativo para comenzar a explorarlo. Además sirven al docente para identificar ydimensionar los conocimientos previos relacionados de los alumnos.

3

Enseñanza para la comprensión en Compiladores e Intérpretes

LENGUAJESFORMALES

GRAMÁTICAS

NOAM CHOMSKY

LINGÜÍSTICA

TRADUCTORES

AUTÓMATAS

JERARQUÍA

TEORÍA DE LACOMPUTABILIDAD

TEORÍA DE LACOMPLEJIDAD

FORMAS NORMALES

SÍMBOLOSCADENAS ALFABETO

LENGUAJESNATURALES

CONJUNTO

TEORÍA DECONJUNTOS

generan

estudia

estudiaestudia

son diferentes a

de

de

define

se d

ed

ica

a la

reconocen

de

se basa en

se basa en

sonutilizadoscomo

de

es un

de

compuestas de de un

es un

COMPILADORESINTÉRPRETES

son

LENGUAJES

Figura 1: Mapa conceptual para el tópico generativo Lenguaje

• Desempeños de investigación guiada: son actividades que se ejecutan al promediar launidad, luego de haber concluido la etapa de exploración y tienen por objeto el desarrollo dela comprensión de problemas o aspectos concretos del tópico generativo.

• Desempeños finales de síntesis: es un conjunto de actividades más complejas tendientes aposibilitar que los estudiantes sinteticen y demuestren la comprensión lograda a través de losdesempeños anteriores. Deben ser actividades que requieran al alumno la síntesis eintegración de los saberes que se han desarrollado en la unidad.

Evaluación para la comprensión

El marco conceptual de la enseñanza para la comprensión hace evidente la necesidad de que laevaluación vaya más allá de un examen sumativo a fin de cada unidad o del curso. Los estudiantesprecisan de oportunidades para reflexionar sobre sus desempeños durante el aprendizaje de nuevosconceptos o habilidades cognitivas y no sólo al final de este aprendizaje. Estas reflexiones debenrealizarse teniendo en cuenta las metas para la comprensión planteadas y siguiendo los criterios einformación brindada por el docente. Esta modalidad de evaluación se denomina evaluación continua yfue pensada como una herramienta que brinda oportunidades para mejorar la enseñanza a través delcontinuo análisis del progreso de los alumnos en pos de las metas de comprensión.

Para que el alumno pueda autoevaluarse es necesario que conozca las metas para la comprensión que eldocente espera que alcance y los criterios con los que evaluará su desempeño. Esto, más unarealimentación y reflexión conjunta regular durante el proceso de aprendizaje permitirá que laevaluación se convierta en una herramienta que proporcione información que permita comprender elproceso de enseñanza y el de aprendizaje y replantear las prácticas docentes a fin de lograr más ymejores aprendizajes.

4

Enseñanza para la comprensión en Compiladores e Intérpretes

Propuesta didáctica para “Teoría de Lenguajes Formales”

En esta sección presentaremos una propuesta didáctica confeccionada a partir de los lineamientosestablecidos por la enseñanza para la comprensión. Como mencionamos, la propuesta comprende unaserie de desempeños orientados a alcanzar las metas para la comprensión establecidas para la unidad“Teoría de Lenguajes Formales”.

Antes de describir los desempeños para la comprensión diseñados, creemos que es importante detallarlas condiciones áulicas en las cuales estas actividades se desarrollarán, para esto hemos resumidoalgunos datos relevantes de la asignatura Compiladores e Intérpretes en el siguiente cuadro.

Cantidad de alumnos por cohorte entre 15 y 25

Cantidad de docentes 3

Cantidad de horas de clase 7 por semana

A continuación detallamos una serie de 8 desempeños para la comprensión diseñados con el objeto dealcanzar las metas para la comprensión de la unidad II de la asignatura.

5

Enseñanza para la comprensión en Compiladores e Intérpretes

DESEMPEÑO N°1

DETALLE

METAS PERSEGUIDAS 1

DESEMPEÑOS DE COMPRENSIÓN 1.a Los alumnos, de manera individual, redactan una definiciónde “lenguaje”

1.b Los alumnos acuerdan, en grupos de 2 ó 3, una definición de“lenguaje”

1.c Se exponen a la clase las definiciones de cada grupo y seidentifican los elementos en común y se negocia una nuevadefinición.

1.d Los docentes proveen una definición de “lenguaje” obtenidaen un diccionario de la lengua castellana. Los alumnos comparanla definición del diccionario con la redactada por el curso.

EVALUACIÓN CONTINUA CRITERIOS: calidad de lasdefiniciones aportadas por losalumnos. Nivel de participacióny compromiso en lasactividades.

RETROALIMENTACIÓN: informalentre los alumnos y losdocentes.

RECURSOS DIDÁCTICOS • Definición de “lenguaje” obtenida en un diccionario de lalengua castellana.

• Pizarra y fibrones.

• Tiempo: 20 minutos.

6

Enseñanza para la comprensión en Compiladores e Intérpretes

DESEMPEÑO N°2

DETALLE

METAS PERSEGUIDAS 1, 2

DESEMPEÑOS DE COMPRENSIÓN 2.a Los alumnos, organizados en grupos de 2 ó 3, confeccionanuna lista de los lenguajes que conocen. Luego se socializan laslistas y se confecciona una única lista en la pizarra.

2.b Los docentes proveen definiciones básicas de “lenguajeformal/artificial” y “lenguaje natural”

2.c Los alumnos clasifican en “formales” y “naturales” loselementos de la lista de la pizarra.

2.d Los alumnos identifican las características comunes de loslenguajes formales y las de los lenguajes naturales.

EVALUACIÓN CONTINUA CRITERIOS: variedad de losejemplos aportados. Correcciónde la clasificación. Calidad ycantidad de las característicascomunes identificadas. Nivel departicipación y compromiso enlas actividades.

RETROALIMENTACIÓN: informalentre los alumnos y losdocentes.

RECURSOS DIDÁCTICOS • Pizarra y fibrones.

• Definiciones básicas de lenguaje formal y natural.

• Tiempo: 30 minutos.

7

Enseñanza para la comprensión en Compiladores e Intérpretes

DESEMPEÑO N°3

DETALLE

METAS PERSEGUIDAS 2,3

DESEMPEÑOS DE COMPRENSIÓN 3.a Se separa a los alumnos en dos grupos. A uno de los gruposse le provee una definición coloquial (en lenguaje natural) de unconjunto de números, al otro grupo se le provee una definiciónformal del “mismo” conjunto y se les pide que elaboren un listade números que pertenecen al conjunto y otra de números que nopertenecen.

3.b Se copian las listas de cada grupo en la pizarra y se discute la“pertenencia” o “no pertenencia” de los números de las listas.Durante esta discusión los docentes destacan las posiblesambigüedades que puede platear la definición coloquial al tiempoque esta situación de ambigüedad no se produce con la definiciónformal.

EVALUACIÓN CONTINUA CRITERIOS: Nivel departicipación y compromiso enlas actividades.

RETROALIMENTACIÓN: informalentre los alumnos y losdocentes.

RECURSOS DIDÁCTICOS • Pizarra y fibrones.

• Definiciones de conjuntos de números.

• Tiempo: 15 minutos.

8

Enseñanza para la comprensión en Compiladores e Intérpretes

DESEMPEÑO N°4

DETALLE

METAS PERSEGUIDAS 4, 5, 6

DESEMPEÑOS DE COMPRENSIÓN 4.a (pre-presencial) Los docentes proveen bibliografía y sesolicita que los alumnos, en grupos de 2 ó 3, confeccionen unabreve monografía en la que se expliquen los conceptos desímbolo, alfabeto e hilera y sus operaciones relacionadas, y quecon esos conceptos elaboren una definición de “lenguaje”.

4.b (presencial) Los docentes repasan con los alumnos losconceptos de símbolo, alfabeto e hilera y socializan lasdefiniciones de “lenguaje” de cada grupo.

4.c Se solicita que los alumnos comparen y relacionen losconceptos y operaciones de la Teoría de Lenguajes Formales conlos conceptos de la Teoría de Conjuntos.

4.d De ser necesario, los docentes introducen la noción delenguaje como “conjunto de hileras”.

4.e Se discuten con los alumnos los retos técnicos que plantea larepresentación de conjuntos en una computadora.

4.f Se les solicita que propongan métodos de representación paraconjuntos infinitos (lenguajes infinitos).

4.g Los docentes introducen el concepto de gramática generativay destacan su utilidad para representar lenguajes finitos einfinitos.

EVALUACIÓN CONTINUA CRITERIOS: calidad de lasmonografías y las definicionesaportadas. Calidad de losmétodos propuestos. Nivel departicipación y compromiso enlas actividades.

RETROALIMENTACIÓN: los docentesharán comentarios por escritode cada una da las monografíaselaboradas por los alumnos.Informal entre los alumnos ylos docentes.

RECURSOS DIDÁCTICOS • Material bibliográfico sobre lenguajes formales (libros,papers, web links, etc)

• Pizarra y fibrones.

• Tiempo: 50 minutos.

9

Enseñanza para la comprensión en Compiladores e Intérpretes

DESEMPEÑO N°5

DETALLE

METAS PERSEGUIDAS 6, 7

DESEMPEÑOS DE COMPRENSIÓN 5.a (pre-presencial) Se solicita que los alumnos, en grupos de 2 ó3, investiguen sobre Noam Chomsky, la “Jerarquía deGramáticas” propuestas por él y elaboren una breve monografía alrespecto.

5.b (presencial) Los docentes repasan con los alumnos lajerarquía de gramáticas propuesta por Chomsky (Jerarquía deChomsky).

5.c Los alumnos participan del juego El Intruso (ver Apéndice B)

EVALUACIÓN CONTINUA CRITERIOS: calidad de lasmonografías. Desempeño en eljuego. Nivel de participación ycompromiso en las actividades.

RETROALIMENTACIÓN: los docentesharán comentarios por escritode cada una da las monografíaselaboradas por los alumnos.Informal entre los alumnos ylos docentes.

RECURSOS DIDÁCTICOS • Tarjetas para el juego El Intruso.

• Pizarra y fibrones.

• Tiempo: 50 minutos.

10

Enseñanza para la comprensión en Compiladores e Intérpretes

DESEMPEÑO N°6

DETALLE

METAS PERSEGUIDAS 6, 7

DESEMPEÑOS DE COMPRENSIÓN 6.a Los participan del juego Encontrando el Compañero (verApéndice B)

6.b Los alumnos conforman grupos de 3 ó 4 integrantes. La mitadde los grupos debe dar ejemplos de lenguajes que no pueden sergenerados por gramáticas regulares (nivel 3 de la Jerarquía deChomsky). La otra mitad debe elaborar y fundamentar ejemplosde lenguajes que sí pueden ser generados por dichas gramáticas.

6.c Los alumnos identifican –con la ayuda necesaria por parte delos docentes– los aspectos que hacen imposible la generación conuna gramática regular de los lenguajes aportados por la primeramitad de grupos.

6.d Los alumnos infieren desde los ejemplos de la actividad 6.b ylos aspectos identificados en la actividad 6.c las limitaciones delas gramáticas regulares.

Se repiten las actividades 6.b, 6.c y 6.d para las gramáticas libresde contexto (nivel 2 de la Jerarquía de Chomsky).

EVALUACIÓN CONTINUA CRITERIOS: Desempeño en eljuego. Capacidad deidentificación de laslimitaciones de las gramáticas.Nivel de participación ycompromiso en las actividades.

RETROALIMENTACIÓN: Informalentre los alumnos y losdocentes.

RECURSOS DIDÁCTICOS • Tarjetas para el juego Encontrando el Compañero.

• Pizarra y fibrones.

• Tiempo: 50 minutos.

11

Enseñanza para la comprensión en Compiladores e Intérpretes

DESEMPEÑO N°7

DETALLE

METAS PERSEGUIDAS 1,2,3,4,5,6,7

DESEMPEÑOS DE COMPRENSIÓN 7.a A cada alumno se le asigna un par de lenguajes para loscuales deberá:

• Dar 5 ejemplos de hileras que pertenezcan al lenguaje y5 de hileras que no pertenezcan.

• Indicar y justificar el nivel de la Jerarquía de Chomsky ala que pertenece el lenguaje.

• Diseñar la gramática de menor potencia que lo genere.

EVALUACIÓN CONTINUA CRITERIOS: calidad y variedad delos ejemplos aportados. Calidadde las justificaciones. Calidadde las gramáticas diseñadas

RETROALIMENTACIÓN: los alumnoscoevalúan los ejemplos, lasjustificaciones y las gramáticas.

RECURSOS DIDÁCTICOS • Lenguajes

• Pizarra y fibrones.

• Tiempo: 50 minutos.

12

Enseñanza para la comprensión en Compiladores e Intérpretes

DESEMPEÑO N°8

DETALLE

METAS PERSEGUIDAS 1,2,3,4,5,6,7

DESEMPEÑOS DE COMPRENSIÓN 8.a (extraáulico) Cada alumno deberá elaborar una monografía endonde se comparen y analicen las diferencias entre la jerarquíapropuesta originalmente por Noam Chomsky en 1958 y lasjerarquías “de Chomsky” descriptas en la bibliografíarecomendada por la cátedra.

EVALUACIÓN CONTINUA CRITERIOS: calidad yprofundidad del análisisdescripto en la monografía.

RETROALIMENTACIÓN: los docentesharán comentarios por escritode cada una da las monografíaselaboradas por los alumnos.Informal entre los alumnos ylos docentes.

RECURSOS DIDÁCTICOS • Material bibliográfico.

• Tiempo:

• 1 semana para la realización de la monografía.

• 30 minutos para la discusión (retroalimentación) en el aula.

13

Enseñanza para la comprensión en Compiladores e Intérpretes

Bibliografía

* Blythe, Tina y cols. 1999. “La enseñanza para la comprensión. Guía para el docente”. EditorialPaidós. Buenos Aires.

∗ Camilloni, Alicia W. de; Celman, Susana; Litwin, Edith; Palou de Maté, María del Carmen. 1998. “Laevaluación de los aprendizajes en el debate didáctico contemporáneo”. Editorial Paidós. Buenos Aires.

∗ Camilloni, Alicia W. de; Davini, María Cristina; Edelstein, Gloria; Litwin, Edith; Souto, Marta y Barco,Susana. 1998. “Corrientes didácticas contemporáneas”. Cuestiones de Educación. Editorial Paidós. BuenosAires.

∗ Doyle, Walter. 1997. “Trabajo Académico”. Mimeo. Buenos Aires.

∗ Nieto Gil, Jesús M. 1996. “La autoevaluación del profesor. Cómo evaluar y mejorar su práctica docente.”Editorial Praxis. Segunda Edición. Barcelona.

∗ Ontoria, A. y otros. 1995. “Mapas conceptuales. Una técnica para aprender”. Editorial Narcea, S. A. deEdiciones. Madrid.

∗ Perkins, David. 1998. “Enseñanza para la comprensión. Introducción a la teoría y su práctica”. Mimeo. HarvardUniversity.

∗ Santos Guerra, Miguel Angel. 1998. “Evaluar es comprender”. Editorial Magisterio del Río de la Plata. BuenosAires.

∗ Sitio web en Internet del grupo de Investigación Proyecto Zero. http://www.pz.harvard.edu

∗ Stone Wiske, Martha (compiladora). 1999. “La enseñanza para la comprensión. Vinculación entre lainvestigación y la práctica”. Editorial Paidós. Buenos Aires.

14

Enseñanza para la comprensión en Compiladores e Intérpretes

Apéndice A

15

Enseñanza para la comprensión en Compiladores e Intérpretes

Universidad Católica de Santiago del Estero

Facultada de Matemática Aplicada

Compiladores e Intérpretes

Programa de la asignaturaAño 2004

UNIDAD I: TRADUCTORES, COMPILADORES E INTÉRPRETES.

Traductores. Historia de los Traductores. El compilador Fortran.Estructura de un traductor. Front-End oAnálisis y Back-End o Síntesis. Definición sintética de las fases de un compilador: análisislexicográfico, análisis sintáctico, análisis semántico, generación de código intermedio, optimización decódigo, generación de código final. Tabla de símbolos y manejo de errores. El agrupamiento de lasfases. Pasadas. Arquitectura de los traductores: su evolución. Clasificación de Traductores.Compiladores e Intérpretes. Emuladores. Máquinas Virtuales. Diseño de compiladores, lenguajes ycomputadoras. Compiladores de Compiladores. Bootstrapping (Arranque). Cross-Compilers(Compiladores Cruzados). Compiladores Just-in-time. Compiladores on-the-fly. Decompiladores.

UNIDAD II: TEORÍA DE LENGUAJES FORMALES.

Lenguajes Naturales y Lenguajes Formales. Sintaxis y Semántica de los lenguajes. Teoría deConjuntos. Teoría de lenguajes formales. Conceptos elementales: símbolo, alfabeto, hilera o cadena.Operaciones sobre hileras. Lenguajes: definición y operaciones sobre lenguajes. Metalenguajes.Gramáticas. Gramáticas formales. Notación. No terminales y Producciones. Derivaciones.Derivaciones canónicas: derivaciones leftmost (por izquierda) y rightmost (por derecha). Sentencias yformas sentenciales. Representación de las derivaciones. Grafos, árboles de derivación -parse tree- yárboles sintácticos -sintax tree-. Clasificación de gramáticas: la Jerarquía de Chomsky. GramáticasRegulares y Lenguajes Regulares. Propiedades de los Lenguajes Regulares. Pumping Lema (Lema debombeo). Gramáticas Libres de Contexto y Lenguajes Libres de Contexto. Propiedades de losLenguajes Libres de Contexto. Gramáticas Sensibles al Contexto. Gramáticas no Restringidas.Higienización de Gramáticas Libres de Contexto. Gramáticas propias. Forma Normal de NoamChomsky. Forma Normal de Sheila Greibach. Propiedades. Ambigüedad. Tipos. Eliminación deAmbigüedad. Precedencia y asociatividad. Representaciones formales de la sintaxis de los lenguajeslibres de contexto. Forma de Backus-Naur. Diagramas sintácticos. Ventajas del uso de gramáticas.

UNIDAD III: TEORÍA DE AUTÓMATAS.

Autómatas. Definición. Componentes. Operación. Diagramas de transición. Su relación con lasgramáticas. Autómatas finitos. Definición formal. Representación Matricial. Condición dedeterminismo. Autómatas finitos determinísticos, no determinísticos y de estados mínimos.Definiciones formales. Algoritmos de conversión: Construcción de subconjuntos. Diseño de AutómatasFinitos. Autómatas de pila. Definición formal. Determinismo en Autómatas de Pila. Autómataslimitados linealmente. Máquinas de Turing. Decidibilidad. Los autómatas y su relación con la Jerarquíade Chomsky. Los compiladores como autómatas.

UNIDAD IV: ANÁLISIS LEXICOGRÁFICO.

El rol del analizador lexicográfico. Tokens, patrones y lexemes. Atributos de los tokens. ExpresionesRegulares, gramáticas regulares y autómatas finitos. Equivalencia entre los modelos. Derivadas deExpresiones Regulares. Algoritmo de McNaughton-Yamada-Thompson. Diseño de analizadores

16

Enseñanza para la comprensión en Compiladores e Intérpretes

lexicográficos. Diagramas de transición. Operaciones asociadas: bypass, getchar, concat e install.Lookahead y Pushback. Espacios en blanco: políticas y tratamiento. Criterios de diseño.Implementación de analizadores lexicográficos. Algoritmos greedy (glotón) y no greedy. Palabrasreservadas. Comentarios. El subsistema de entrada. Buffers. Lookahead multicaracter. Fin de la entrada.El analizador léxico de Fortran. Recuperación de errores léxicos. Token de error. Herramientas para lageneración de analizadores lexicográficos. Lex. Flex. TP Lex.

UNIDAD V: ANÁLISIS SINTÁCTICO.

Análisis sintáctico y gramáticas libres de contexto. Técnicas de parsing: generales, ascendentes ydescendentes. Parsing determinístico y no determinístico. Parsing Top-Down. Gramáticas LL(k) y suslimitaciones. Modificación de gramáticas. Recursividad izquierda directa e indirecta. Factorización.Ciclos. Tablas del parser top-down: Conjuntos First, Follows y Selection. El problema If-Then-Else enel parsing LL(k). Parsers predictivos y recursivos descendentes. Parsers top-down y autómatas de pila.Propiedades del parsing LL(1). Análisis sintáctico Bottom-Up. Parsers shift-reduce. Técnicas deprecedencia: Precedencia de Operadores y Precedencia Simple. Técnica LR(0). Tablas LR(0).Conflictos shift-reduce y reduce-reduce. Técnica SLR(k). Técnica LR(k). Técnica LALR(k). Elproblema If-Then-Else en el parsing LR(k). Propiedades del parsing LR(1). Parsing bottom-up versusparsing top-down. Análisis comparativo. Técnicas Generales. Método de Unger. Método CYK.Algoritmo de Jay Earley. Herramientas para la generación de analizadores sintácticos ascendentes.Generadores LALR(1). Yacc. TP Yacc. Generadores LALR(k). Control de ambigüedad en parsersdeterminísticos. Análisis de conflictos en parsing LR(k). Tratamiento de dependencias de contexto enparsers libres de contexto. Recuperación de errores sintácticos. Modo Pánico. Producciones de error.

UNIDAD VI: ANÁLISIS SEMÁNTICO Y CÓDIGO INTERMEDIO.

Traducción dirigida por la sintaxis. Definiciones dirigidas por la sintaxis. Atributos heredados ysintetizados. Cálculo y flujo de los valores de los atributos. Definiciones S-atribuídas y L-atribuídas.Acciones semánticas. Esquemas de traducción dirigidos por la sintaxis. Gramáticas Aumentadas.Limitaciones de las gramáticas libres de contexto. Tabla de símbolos. Función. Primitivas.Consideraciones de diseño. Técnicas de implementación: estática y dinámica. Listas encadenadas,árboles binarios, tablas hash. Función de hashing. La tabla de símbolos y los lenguajes de bloques. Elespacio string. Representación de campos y registros. Representación de tipos predefinidos y abstractos.Errores semánticos. Recuperación de errores semánticos. Rutinas Semánticas en parsers LL y enparsers shift-reduce. Pila semántica controlada por el parser. Código intermedio. Máquinas abstractas.Representación de operaciones, flujo de datos y flujo de control. Formas de Representacionesintermedias: Árboles, grafos, notación postfijo y código de tres direcciones. Triplas y cuádruplas.Tuplas. Lenguajes de programación como Representaciones intermedias. Análisis comparativo de lasdiferentes representaciones. Portabilidad. Representación intermedia versus generación directa.Alternativas de organización de un compilador. Compiladores de una pasada. Compiladores multi-pasada. Familias de compiladores. Compiladores multilenguajes y multi-target.

UNIDAD VII: TRADUCCIÓN Y GENERACIÓN DE CÓDIGO.

Procesamiento de declaraciones. Atributos. Procesamiento de expresiones y asignaciones. Left-value yRight-value. Chequeo de tipos. Identificadores simples, constantes, registros, arrays, cadenas.Precedencia y asociatividad de operadores. Traducción de las estructuras de control. Su traducción encompiladores de una o más pasadas. El problema "Forward Branch" (salto hacia adelante). El problema"Backward Branch" (salto hacia atrás). Labels. Backpatching. Estructuras de loop: sentencias while,repeat-until, for, loop. Estructuras de ejecución condicional: sentencias if-then, if-then-else, case.Expresiones Boolenas y Operaciones Relacionales. Métodos de traducción. Evaluación "Short-circuit".Estructuras de transferencia directa de control: exit, goto. Traducción de Rutinas y Funciones. Stack yHeap. Ámbitos. Paso de parámetros. Stack Frames. Registros de Activación. Encadenamiento estático ydinámico. Displays. Valores de retorno.

UNIDAD VIII: OPTIMIZACIÓN Y GENERACIÓN DE CÓDIGO FINAL.

17

Enseñanza para la comprensión en Compiladores e Intérpretes

Compiladores Optimizadores. Tipos de Optimización. Ámbitos de optimización: local, interprocedural,global. Optimización de código intermedio. Principales fuentes de optimización. Bloques Básicos.Bloques Básicos Extendidos. Grafo de Flujo de Control (CFG). Grafo de Dependencias de Control(PDG). Algoritmos para su construcción. Constant folding y Propagación de constantes. Variablesmuertas. Eliminación de código muerto. Eliminación de subexpresiones comunes. Grafos acíclicosdirigidos. Algoritmo número-valor. Optimizaciones del flujo de control. Análisis de flujo de datos.Ecuaciones. Generación de código final. Consideraciones sobre la máquina objeto: pipeline, caches,arquitectura superescalar, arquitecturas RISC. Scheduling de instrucciones. Algoritmo de Sethi-Ullman.Asignación de registros. Técnicas de coloreado de grafos. Gestión de variables temporales. Máquina depila. Selección de instrucciones y modos de direccionamiento. Optimización del código objeto.Técnicas Peep-hole. Reducción de potencia. Simplificaciones algebraicas.

18

Enseñanza para la comprensión en Compiladores e Intérpretes

Apéndice B

19

Enseñanza para la comprensión en Compiladores e Intérpretes

EL INTRUSO

El juego consiste en descubrir qué elemento está incorrectamente agrupado con otros. El docentedetermina desde el principio cuántas rondas se jugarán, en cada ronda se entrega a los participantes unaficha con un conjunto de elementos (gramáticas, def. de lenguajes) y se pide que indique qué elementono pertenece al conjunto y justifique por qué. El docente define un tiempo límite para resolver cadaproblema, cumplido el plazo, cada participante entrega solución al docente quien explica en la pizarracuál era la solución correcta. Aquellos que hayan contestado acertadamente obtienen un punto. Luegode la última ronda, se suman los puntos de cada participante y se designan los ganadores.

Ejemplo 1

S a AS aA a BA a AB b

S 1 CS 0 AA 0 BA 0B 0 AC 1 CC 1

S A aA A bA A aB B bB C bC c

S b BS a AA a BA a AB b AB b BB c

A B C D

Solución: El intruso es la gramática C porque es lineal a izquierda a diferencia de las demás que son lineales aderecha.

Ejemplo 2

E E + TE TT T * FT FT id

E E + EE E * EE id

E E + EE E * EE ( id )E id

E E + EE E * EE ( E )

A B C D

Solución: El intruso es la gramática D porque genera un lenguaje libre de contexto a diferencia de las demás quesiendo gramáticas libres de contexto, generan lenguajes regulares.

Ejemplo 3

P ( P )P ( )

P ( CC P )C )

P ( P ) PP λ

P ( C )C ( ) CC ( )

A B C D

Solución: El intruso es la gramática D porque genera un lenguaje regular a diferencia de las demás que generanlenguajes libres de contexto.

20

Enseñanza para la comprensión en Compiladores e Intérpretes

ENCONTRANDO EL COMPAÑERO

El juego consiste en determinar pares de elementos relacionados. El docente define desde elprincipio cuántas rondas se jugarán, en cada una se entrega a los participantes una ficha con elementosrelacionados de a pares. Aquel que encuentre los pares relacionados se hace acreedor a un punto (si lasolución aportada es incorrecta, se le resta un punto). Luego de la última ronda, se suman los puntos decada participante y se designan los ganadores.

Ejemplo

L={ai bi con i>0} • •S a A bS a A S bA a

S a S b SS a b

• • S a S bS a b

L={ai b2i con i>0} • •S A S b BS A b BA a aB b

L={a2i bi con i>0} • •S a AS a bS S BB b S

L={a2i b2i con i>0} • •S a A BS a BB b b

Solución

L={ai bi con i>0} • •S a A bS a A S bA a

S a S b SS a b

• • S a S bS a b

L={ai b2i con i>0} • •S A S b BS A b BA a aB b

L={a2i bi con i>0} • •S a AS a bS S BB b S

L={a2i b2i con i>0} • •S a A BS a BB b b

21