27
Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL [email protected] http://www.cise.ufl.edu Año Sabático en ULA, Mérida, Venezuela

Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL [email protected]

Embed Size (px)

Citation preview

Page 1: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

Modernización de la Enseñanza de la Traducción

Manuel E. Bermúdez, Ph.D.

University of Florida

Gainesville, FL

[email protected]

http://www.cise.ufl.edu

Año Sabático en ULA, Mérida, Venezuela

Page 2: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

2

Resumen La declinación del curso tradicional de

compiladores. ¿Por qué reformar el curso ? El nuevo diseño del curso:

– Objetivos.– Reorganización del material.– Contraste con el diseño antiguo.

Aplicaciones.

Page 3: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

3

Objetivos del curso tradicional de compiladores

Discutir las fases de un compilador, los modelos matemáticos relevantes,y los paquetes disponibles:– Análisis léxico (lenguajes regulares, lex)– Análisis sintáctico (lenguajes libres de contexto, yacc).– Análisis de semántica estática.– Generación de código.– Optimización de código.

Implementar (parte de) un compilador.

Page 4: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

4

El curso tradicional de Compiladores

Hasta hace algunos años, se consideraba “indispensable”.

En declinación hoy día, en muchos programas.– Se ofrece menos a menudo.– Hay menos instructores.– Hay menos estudiantes.

Page 5: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

5

Razones para la declinación

Madurez del área. Proliferación de lenguajes y paradigmas, cursos en

estos temas son más frecuentes. Curriculum ACM 2001: Profesora Mary Shaw (CMU):

termodinámica vs. diseño de calderas, principios vs. artefactos. Compiladores y Sistemas Operativos son artefactos dinosaurios.

Muy pocos graduados diseñan o mantienen compiladores.

Cada día hay menos profesores en el área (fuga a Microsoft ).

Page 6: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

6

Problemas con el curso tradicional de compiladores

El curso se considera obsoleto. El material ya no se considera indispensable.

El material se considera “especializado”, “opcional” en el curriculum.

El objetivo de construir un compilador “de verdad” se considera obsoleto.

Page 7: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

7

Problemas con el curso tradicional de compiladores

(cont.) El proyecto no compagina con el material

del curso. Trabajo en equipo en el proyecto es

frustrante: para implementar una fase, se necesita saber de las demás fases.

Curso “novela de misterio”. Un curso “esotérico” y “difícil”. Poco

popular.

Page 8: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

8

Problemas con el curso tradicional de compiladores

(cont.) El libro de texto: Construcción de

Compiladores: Principios, Técnicas y Herramientas, Addison-Wesley, 1986, segunda (última) edición, Aho, Sethi, Ullman.

Todos están de acuerdo (incluyendo los tres autores): el libro es demasiado grande, y carece de pedagogía. No habrá tercera edición.

Page 9: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

9

Problemas con el curso tradicional de compiladores

(cont.) Todos los demas libros (SÍ, TODOS) son la

versión resumida favorita del autor, del material en el Dragón Rojo.

Los mismos temas, en el mismo orden. Profesores (des)enfatizan sus temas

favoritos (o los que conocen). Mala pedagogía.

Page 10: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

10

¿Por qué reformar el curso de compiladores ?

El curso agoniza, pero no muere. Tiene contenido importante que

TRANSCIENDE el tema de compiladores:– Reconocimento sintáctico (lenguajes

regulares, libres de contexto, lex, yacc).– Traducción de lenguajes artificiales.– Un proyecto de software de tamaño

significativo.

Page 11: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

11

Por que reformar el curso de compiladores ?

El curso necesita la transición filosófica de “artefacto” (compilador) a “mecanismo” (traductor).

HAY QUE HACER ALGO CON EL CURSO, y abolirlo no es una opción.

Page 12: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

12

El Nuevo Diseño

Se llamará TRADUCCIÓN DE LENGUAJES. Orientado hacia el proyecto. Sólo el material teórico relevante. NO se implementa un compilador desde cero. Se EXTIENDE un compilador dado, para un

lenguaje imperativo mínimo: variables enteras, ‘+’, ‘-’ unario, ‘<=‘, asignación, secuencia, ‘if’, ‘while’.

Page 13: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

13

Gramática de “Tiny” Tiny -> 'program' Name ':' Dclns Block '.' Dclns -> 'var' (Dcln ';')+ -> Dcln -> Name list ',' ':' Type Type -> 'integer' -> 'boolean‘ Block -> '{' Statement list ';' '}' Statement -> Name '=' Expression -> 'output' '(' Expression ')' -> 'if' '(' Expression ')' Statement 'else' Statement -> 'while' '(' Expression ')' Statement -> Block Expression -> Term -> Term '<=' Term Term -> Term '+' Primary -> Term Primary -> '-' Primary -> 'read' -> Name -> '<integer>' -> '(' Expression ')' Name -> '<identifier>'

Page 14: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

14

El Nuevo DiseñoDISEÑO VIEJO DISEÑO NUEVO

1.Introducción. 1. Introducción.

2.Descripción del lenguaje. 2. Descripción del traductor.

3. Análisis léxico. 3.Traducción de operadores.

4. Análisis sintáctico. 4. Traducción de instrucciones.

5. Análisis de semántica estática. 5. Traducción de tipos de datos.

6. Generación de código. 6. Traducción de subrutinas.

7. Optimización de código. 7. Traducción de estructuras. estáticas (vectores).

8. Estructuras de ejecución, 8. Traducción de estructuras

generación de código final. dinámicas (punteros).

Page 15: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

15

El Diseño TradicionalAnálisis léxico

Análisis sintáctico

Semántica estática

Generación de código

Operadores

Instrucciones

Tipos de datos

Subrutinas

Estructuras estáticas

Estructuras dinámicas

DISEÑO TRADICIONAL: POR COLUMNA , en el orden dictado por el compilador (???)

Page 16: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

16

El Diseño NuevoAnálisis léxico

Análisis sintáctico

Semántica estática

Generación de código

Operadores

Instrucciones

Tipos de datos

Subrutinas

Estructuras estáticas

Estructuras dinámicas

DISEÑO NUEVO: POR FILA, en espiral, en orden ascendente de complejidad.

Page 17: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

17

El Diseño Nuevo

Principios filosóficos fundamentales:– Orden de eventos pedagógico

Orden de eventos en el compilador.

– Conservar los tópicos fundamentales en el tema de traducción, que TRANSCIENDEN el tema:

Análisis sintáctico (regular y libre de contexto) Experiencia con un programa GRANDE:

abstracción, mantenimiento.

– El objetivo NO es enseñar diseño de compiladores de producción.

Page 18: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

18

El Diseño Nuevo

Se elimina generación de código final. Se elimina optimización de código. Se elimina el problema de asignación de

registros. Se eliminan valores de punto flotante. Se utiliza una máquina virtual (JVM ?)

Page 19: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

19

Objetivos

Diseño viejo Diseño nuevo1.Fases del compilador. 1. 2.Modelos matemáticos. 2. (simplificados, luego ...)3. Herramientas. 3.

4. Análisis léxico. 4.5. Análisis sintáctico. 5. 6. Semántica estática. 6. 7. Generación de código. 7. (sólo código

intermedio)8. Optimización de código. 8.9. Implementar un compilador. 9. (extendiéndolo)10. Compilador de producción. 8.

Page 20: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

20

El Sistema Actual

Escrito en C, traducido de Pascal . Corre bajo UNIX y Linux. Utiliza lex y yacc (con un pre-procesador). El estudiante trabaja con 4 archivos:

– Especificación léxica (1 página).– Especificación sintáctica (1 página).– Analizador de semántica estática (400 líneas).– Generador de código (400 líneas).

Page 21: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

21

El Sistema Actual

Page 22: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

22

Investigación Previa Resultados de investigación 1982-1996:

– Versión sencilla y didáctica de análisis sintáctico LL(1) y descenso recursivo.

– Versión sencilla y didáctica de análisis sintáctico LR(0), SLR(1), y LALR(1).

– Publicaciones ...– Un juego de apuntes para el curso de

compiladores en UF (ofrecido anualmente)– Los misteriosos algoritmos LR ...

Page 23: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

23

Investigación Previa (cont.) Resultados de investigación 1996-1998:

– Intento de reforma al curso de compiladores.– Reforma hacia C++ y el paradigma de la

orientación a objetos.– Licencia sabática y Fulbright, Universidad de

Costa Rica.– Período Fulbright corto (6 meses), programa

de Master joven en la UCR.– Una tesis de M.Sc. en UFL, Youli Kanev,

1997.

Page 24: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

24

Actividades Recientes Tema retomado en 2001: curso de

compiladores en peligro de extinción ! Proyecto financiado por SUCCEED en

verano 2001: nuevas ideas en torno a recomendaciones ACM 2001.

2002-2003: Estudiantes (2 M.Sc., 1 Ph.D.) implementando el sistema en:– Java, C++, C#. (Windows, .NET)

Fulbright, para ULA, Mérida, Venezuela, 2003-2004.

Page 25: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

25

Planes para 2003-2004

Concluir implementaciones en Java, C++, C#. Apoyo financiero de Microsoft.

Artículo presentado 1/2003: SSGRR. Escribir propuesta de libro de texto, y

capítulos muestra. Diseñar contenido del libro en detalle. Negociar con casa editoriales

Page 26: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

26

Planes para 2003-04 en la ULA

Primer semestre: un seminario de pos-grado: buscar y describir aplicaciones fuera del área de compilación.

Segundo semestre: impartir el nuevo curso, para estudiantes de pre-grado.

A traves del año, escribir el libro de texto. Hora de cerrar 20 años de estudio de

compiladores.

Page 27: Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL manuel@cise.ufl.edu

CIESC, La Paz, 30 de setiembre, 2003

27

¿ Preguntas ?