Académique Documents
Professionnel Documents
Culture Documents
– 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ía
de Lenguajes Formales”, tópico correspondiente a la Unidad II del programa de la asignatura
Compiladores e Intérpretes1 en la cual ejercemos la docencia. Hemos elegido esta unidad pues el
concepto 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 en
cuenta las orientaciones conceptuales de la Enseñanza para la Comprensión.
En las siguientes secciones de este trabajo expondremos brevemente los cuatro componentes claves de
la enseñanza para la comprensión: metas para la comprensión, tópicos generativos, desempeños para la
comprensión y evaluación continua. Seguidamente presentaremos una serie de desempeños para la
comprensión de los contenidos de la unidad “Teoría de Lenguajes Formales”.
Las metas para la compresión son aquellos objetivos, que como docentes, deseamos sean
alcanzados 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 y
deben 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, antes
de presentar las metas para la comprensión de la unidad tratada en este trabajo, detallaremos las metas
de comprensión de la asignatura.
Hilos conductores de la obligación académica “Compiladores e Intérpretes” establecidos en la
planificació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.
2
Enseñanza para la comprensión en Compiladores e Intérpretes
Tópico generativo
Una vez elegido el tópico generativo, el docente debe diseñar una serie de actividades que ayuden
al alumno a explorar y establecer conexiones entre los nuevos conceptos que se le van presentado y sus
saberes 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 debe
plantearle un desafío cognitivo –accesible– al estudiante que lo estimule a utilizar sus saberes para
poder culminar la actividad. Esta actividad además debe diseñarse en función de las metas para la
comprensión plateadas para la unidad.
Como dijimos, los desempeños de comprensión se diseñan en serie, es decir, debe ser una sucesión
coordinada de actividades que le brinde al alumno una guía y ejercitación gradual y constante
consistente en retos cognitivos cada vez más complejos. Los investigadores clasificaron los
desempeños en tres categorías:
• Desempeños preliminares: son actividades relativamente simples que se desarrollan al
inicio de la unidad en la etapa de exploración y le permiten a los alumnos tomar contacto con
el tópico generativo para comenzar a explorarlo. Además sirven al docente para identificar y
dimensionar los conocimientos previos relacionados de los alumnos.
3
Enseñanza para la comprensión en Compiladores e Intérpretes
INTÉRPRETES COMPILADORES
compuestas de de un
son CADENAS SÍMBOLOS ALFABETO
de de es un
TRADUCTORES
CONJUNTO
es un
son
se b utilizados
TEORÍA DE LA asa como LENGUAJES
COMPLEJIDAD e n
TEORÍA DE
CONJUNTOS
LENGUAJES son diferentes a LENGUAJES
reconocen
FORMALES NATURALES
AUTÓMATAS
se basa en estudia
generan estudia
TEORÍA DE LA
COMPUTABILIDAD
GRAMÁTICAS
estudia
LINGÜÍSTICA
de
de
se dedica a la
de
FORMAS NORMALES
define
JERARQUÍA NOAM CHOMSKY
4
Enseñanza para la comprensión en Compiladores e Intérpretes
En esta sección presentaremos una propuesta didáctica confeccionada a partir de los lineamientos
establecidos por la enseñanza para la comprensión. Como mencionamos, la propuesta comprende una
serie 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 detallar
las condiciones áulicas en las cuales estas actividades se desarrollarán, para esto hemos resumido
algunos datos relevantes de la asignatura Compiladores e Intérpretes en el siguiente cuadro.
A continuación detallamos una serie de 8 desempeños para la comprensión diseñados con el objeto de
alcanzar 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ón
de “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 se
identifican los elementos en común y se negocia una nueva
definición.
1.d Los docentes proveen una definición de “lenguaje” obtenida
en un diccionario de la lengua castellana. Los alumnos comparan
la definición del diccionario con la redactada por el curso.
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, confeccionan
una lista de los lenguajes que conocen. Luego se socializan las
listas y se confecciona una única lista en la pizarra.
2.b Los docentes proveen definiciones básicas de “lenguaje
formal/artificial” y “lenguaje natural”
2.c Los alumnos clasifican en “formales” y “naturales” los
elementos de la lista de la pizarra.
2.d Los alumnos identifican las características comunes de los
lenguajes formales y las de los lenguajes naturales.
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 grupos
se le provee una definición coloquial (en lenguaje natural) de un
conjunto de números, al otro grupo se le provee una definición
formal del “mismo” conjunto y se les pide que elaboren un lista
de números que pertenecen al conjunto y otra de números que no
pertenecen.
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 posibles
ambigüedades que puede platear la definición coloquial al tiempo
que esta situación de ambigüedad no se produce con la definición
formal.
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 se
solicita que los alumnos, en grupos de 2 ó 3, confeccionen una
breve monografía en la que se expliquen los conceptos de
símbolo, alfabeto e hilera y sus operaciones relacionadas, y que
con esos conceptos elaboren una definición de “lenguaje”.
4.b (presencial) Los docentes repasan con los alumnos los
conceptos de símbolo, alfabeto e hilera y socializan las
definiciones de “lenguaje” de cada grupo.
4.c Se solicita que los alumnos comparen y relacionen los
conceptos y operaciones de la Teoría de Lenguajes Formales con
los conceptos de la Teoría de Conjuntos.
4.d De ser necesario, los docentes introducen la noción de
lenguaje como “conjunto de hileras”.
4.e Se discuten con los alumnos los retos técnicos que plantea la
representación de conjuntos en una computadora.
4.f Se les solicita que propongan métodos de representación para
conjuntos infinitos (lenguajes infinitos).
4.g Los docentes introducen el concepto de gramática generativa
y destacan su utilidad para representar lenguajes finitos e
infinitos.
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 de
Gramáticas” propuestas por él y elaboren una breve monografía al
respecto.
5.b (presencial) Los docentes repasan con los alumnos la
jerarquía de gramáticas propuesta por Chomsky (Jerarquía de
Chomsky).
5.c Los alumnos participan del juego El Intruso (ver Apéndice B)
EVALUACIÓN CONTINUA CRITERIOS : calidad de las RETROALIMENTACIÓN: los docentes
monografías. Desempeño en el harán comentarios por escrito
juego. Nivel de participación y de cada una da las monografías
compromiso en las actividades. elaboradas por los alumnos.
Informal entre los alumnos y
los docentes.
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 (ver
Apéndice B)
6.b Los alumnos conforman grupos de 3 ó 4 integrantes. La mitad
de los grupos debe dar ejemplos de lenguajes que no pueden ser
generados por gramáticas regulares (nivel 3 de la Jerarquía de
Chomsky). La otra mitad debe elaborar y fundamentar ejemplos
de lenguajes que sí pueden ser generados por dichas gramáticas.
6.c Los alumnos identifican –con la ayuda necesaria por parte de
los docentes– los aspectos que hacen imposible la generación con
una gramática regular de los lenguajes aportados por la primera
mitad de grupos.
6.d Los alumnos infieren desde los ejemplos de la actividad 6.b y
los aspectos identificados en la actividad 6.c las limitaciones de
las gramáticas regulares.
Se repiten las actividades 6.b, 6.c y 6.d para las gramáticas libres
de contexto (nivel 2 de la Jerarquía de Chomsky).
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 los
cuales deberá:
• Dar 5 ejemplos de hileras que pertenezcan al lenguaje y
5 de hileras que no pertenezcan.
• Indicar y justificar el nivel de la Jerarquía de Chomsky a
la que pertenece el lenguaje.
• Diseñar la gramática de menor potencia que lo genere.
EVALUACIÓN CONTINUA CRITERIOS : calidad y variedad de RETROALIMENTACIÓN: los alumnos
los ejemplos aportados. Calidad coevalúan los ejemplos, las
de las justificaciones. Calidad justificaciones y las gramáticas.
de las gramáticas diseñadas
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 en
donde se comparen y analicen las diferencias entre la jerarquía
propuesta originalmente por Noam Chomsky en 1958 y las
jerarquías “de Chomsky” descriptas en la bibliografía
recomendada por la cátedra.
EVALUACIÓN CONTINUA CRITERIOS : calidad y RETROALIMENTACIÓN: los docentes
profundidad del análisis harán comentarios por escrito
descripto en la monografía. de cada una da las monografías
elaboradas por los alumnos.
Informal entre los alumnos y
los docentes.
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”. Editorial
Paidós. Buenos Aires.
∗ Camilloni, Alicia W. de; Celman, Susana; Litwin, Edith; Palou de Maté, María del Carmen. 1998. “La
evaluació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. Buenos
Aires.
∗ 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. de
Ediciones. Madrid.
∗ Perkins, David. 1998. “Enseñanza para la comprensión. Introducción a la teoría y su práctica”. Mimeo. Harvard
University.
∗ Santos Guerra, Miguel Angel. 1998. “Evaluar es comprender”. Editorial Magisterio del Río de la Plata. Buenos
Aires.
∗ 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 la
investigació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
Compiladores e Intérpretes
Programa de la asignatura
Año 2004
El rol del analizador lexicográfico. Tokens, patrones y lexemes. Atributos de los tokens. Expresiones
Regulares, gramáticas regulares y autómatas finitos. Equivalencia entre los modelos. Derivadas de
Expresiones Regulares. Algoritmo de McNaughton-Yamada-Thompson. Diseño de analizadores
16
Enseñanza para la comprensión en Compiladores e Intérpretes
Traducción dirigida por la sintaxis. Definiciones dirigidas por la sintaxis. Atributos heredados y
sintetizados. 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. El
espacio 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 en
parsers 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 Representaciones
intermedias: Á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 las
diferentes 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.
17
Enseñanza para la comprensión en Compiladores e Intérpretes
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 docente
determina desde el principio cuántas rondas se jugarán, en cada ronda se entrega a los participantes una
ficha con un conjunto de elementos (gramáticas, def. de lenguajes) y se pide que indique qué elemento
no pertenece al conjunto y justifique por qué. El docente define un tiempo límite para resolver cada
problema, cumplido el plazo, cada participante entrega solución al docente quien explica en la pizarra
cuál era la solución correcta. Aquellos que hayan contestado acertadamente obtienen un punto. Luego
de la última ronda, se suman los puntos de cada participante y se designan los ganadores.
Ejemplo 1
S a A S 1 C S A a S b B
S a S 0 A A A b S a A
A a B A 0 B A A a A a B
A a A A 0 B B b A a A
B b B 0 A B C b B b A
C 1 C C c B b B
C 1 B 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 a
derecha.
Ejemplo 2
E E + T E E + E E E + E E E + E
E T E E * E E E * E E E * E
T T * F E id E ( id ) E ( E )
T F E id
T id
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 que
siendo gramáticas libres de contexto, generan lenguajes regulares.
Ejemplo 3
P ( P ) P ( C P ( P ) P P ( C )
P ( ) C P ) P λ C ( ) C
C ) C ( )
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 generan
lenguajes 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 el
principio cuántas rondas se jugarán, en cada una se entrega a los participantes una ficha con elementos
relacionados de a pares. Aquel que encuentre los pares relacionados se hace acreedor a un punto (si la
solución aportada es incorrecta, se le resta un punto). Luego de la última ronda, se suman los puntos de
cada participante y se designan los ganadores.
Ejemplo
S a A b
L={ai bi con i>0} • • S a A S b
A a
S a S b S
S a b
• • S a S b
S a b
S A S b B
L={a bi 2i
con i>0} • • S
A
A b B
a a
B b
S a A
L={a 2i i
b con i>0} • • S
S
a
S
b
B
B b S
S a A B
L={a2i b2i con i>0} • • S a B
B b b
Solución
S a A b
L={ai bi con i>0} • • S a A S b
A a
S a S b S
S a b
• • S a S b
S a b
S A S b B
L={a bi 2i
con i>0} • • S
A
A b B
a a
B b
S a A
L={a 2i i
b con i>0} • • S
S
a
S
b
B
B b S
S a A B
L={a2i b2i con i>0} • • S a B
B b b
21