La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL"— Transcripción de la presentación:

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 http://www.cise.ufl.edu Año Sabático en ULA, Mérida, Venezuela

2 CIESC, La Paz, 30 de setiembre, 20032 Resumen s La declinación del curso tradicional de compiladores. s ¿Por qué reformar el curso ? s El nuevo diseño del curso: –Objetivos. –Reorganización del material. –Contraste con el diseño antiguo. s Aplicaciones.

3 CIESC, La Paz, 30 de setiembre, 20033 Objetivos del curso tradicional de compiladores s 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. s Implementar (parte de) un compilador.

4 CIESC, La Paz, 30 de setiembre, 20034 El curso tradicional de Compiladores s Hasta hace algunos años, se consideraba “indispensable”. s En declinación hoy día, en muchos programas. –Se ofrece menos a menudo. –Hay menos instructores. –Hay menos estudiantes.

5 CIESC, La Paz, 30 de setiembre, 20035 Razones para la declinación s Madurez del área. s Proliferación de lenguajes y paradigmas, cursos en estos temas son más frecuentes. s Curriculum ACM 2001: Profesora Mary Shaw (CMU): termodinámica vs. diseño de calderas, principios vs. artefactos. Compiladores y Sistemas Operativos son artefactos dinosaurios. s Muy pocos graduados diseñan o mantienen compiladores. s Cada día hay menos profesores en el área (fuga a Microsoft ).

6 CIESC, La Paz, 30 de setiembre, 20036 Problemas con el curso tradicional de compiladores s El curso se considera obsoleto. El material ya no se considera indispensable. s El material se considera “especializado”, “opcional” en el curriculum. s El objetivo de construir un compilador “de verdad” se considera obsoleto.

7 CIESC, La Paz, 30 de setiembre, 20037 Problemas con el curso tradicional de compiladores (cont.) s El proyecto no compagina con el material del curso. s Trabajo en equipo en el proyecto es frustrante: para implementar una fase, se necesita saber de las demás fases. s Curso “novela de misterio”. s Un curso “esotérico” y “difícil”. Poco popular.

8 CIESC, La Paz, 30 de setiembre, 20038 Problemas con el curso tradicional de compiladores (cont.) s El libro de texto: Construcción de Compiladores: Principios, Técnicas y Herramientas, Addison-Wesley, 1986, segunda (última) edición, Aho, Sethi, Ullman. s Todos están de acuerdo (incluyendo los tres autores): el libro es demasiado grande, y carece de pedagogía. No habrá tercera edición.

9 CIESC, La Paz, 30 de setiembre, 20039 Problemas con el curso tradicional de compiladores (cont.) s Todos los demas libros (SÍ, TODOS) son la versión resumida favorita del autor, del material en el Dragón Rojo. s Los mismos temas, en el mismo orden. s Profesores (des)enfatizan sus temas favoritos (o los que conocen). s Mala pedagogía.

10 CIESC, La Paz, 30 de setiembre, 200310 ¿Por qué reformar el curso de compiladores ? s El curso agoniza, pero no muere. s 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.

11 CIESC, La Paz, 30 de setiembre, 200311 Por que reformar el curso de compiladores ? s El curso necesita la transición filosófica de “artefacto” (compilador) a “mecanismo” (traductor). s HAY QUE HACER ALGO CON EL CURSO, y abolirlo no es una opción.

12 CIESC, La Paz, 30 de setiembre, 200312 El Nuevo Diseño s Se llamará TRADUCCIÓN DE LENGUAJES. s Orientado hacia el proyecto. s Sólo el material teórico relevante. s NO se implementa un compilador desde cero. s Se EXTIENDE un compilador dado, para un lenguaje imperativo mínimo: variables enteras, ‘+’, ‘-’ unario, ‘<=‘, asignación, secuencia, ‘if’, ‘while’.

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

14 CIESC, La Paz, 30 de setiembre, 200314 El Nuevo Diseño DISEÑO VIEJODISEÑ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).

15 CIESC, La Paz, 30 de setiembre, 200315 El Diseño Tradicional Aná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 (???)

16 CIESC, La Paz, 30 de setiembre, 200316 El Diseño Nuevo Aná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.

17 CIESC, La Paz, 30 de setiembre, 200317 El Diseño Nuevo s 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: u Análisis sintáctico (regular y libre de contexto) u Experiencia con un programa GRANDE: abstracción, mantenimiento. –El objetivo NO es enseñar diseño de compiladores de producción.

18 CIESC, La Paz, 30 de setiembre, 200318 El Diseño Nuevo s Se elimina generación de código final. s Se elimina optimización de código. s Se elimina el problema de asignación de registros. s Se eliminan valores de punto flotante. s Se utiliza una máquina virtual (JVM ?)

19 CIESC, La Paz, 30 de setiembre, 200319 Objetivos Diseño viejoDiseño nuevo 1.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. 

20 CIESC, La Paz, 30 de setiembre, 200320 El Sistema Actual s Escrito en C, traducido de Pascal . s Corre bajo UNIX y Linux. s Utiliza lex y yacc (con un pre-procesador). s 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).

21 CIESC, La Paz, 30 de setiembre, 200321 El Sistema Actual

22 CIESC, La Paz, 30 de setiembre, 200322 Investigación Previa s 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...

23 CIESC, La Paz, 30 de setiembre, 200323 Investigación Previa (cont.) s 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.

24 CIESC, La Paz, 30 de setiembre, 200324 Actividades Recientes s Tema retomado en 2001: curso de compiladores en peligro de extinción ! s Proyecto financiado por SUCCEED en verano 2001: nuevas ideas en torno a recomendaciones ACM 2001. s 2002-2003: Estudiantes (2 M.Sc., 1 Ph.D.) implementando el sistema en: –Java, C++, C#. (Windows,.NET) s Fulbright, para ULA, Mérida, Venezuela, 2003-2004.

25 CIESC, La Paz, 30 de setiembre, 200325 Planes para 2003-2004 s Concluir implementaciones en Java, C++, C#. Apoyo financiero de Microsoft. s Artículo presentado 1/2003: SSGRR. s Escribir propuesta de libro de texto, y capítulos muestra. s Diseñar contenido del libro en detalle. s Negociar con casa editoriales

26 CIESC, La Paz, 30 de setiembre, 200326 Planes para 2003-04 en la ULA s Primer semestre: un seminario de pos- grado: buscar y describir aplicaciones fuera del área de compilación. s Segundo semestre: impartir el nuevo curso, para estudiantes de pre-grado. s A traves del año, escribir el libro de texto. s Hora de cerrar 20 años de estudio de compiladores. 

27 CIESC, La Paz, 30 de setiembre, 200327 ¿ Preguntas ?


Descargar ppt "Modernización de la Enseñanza de la Traducción Manuel E. Bermúdez, Ph.D. University of Florida Gainesville, FL"

Presentaciones similares


Anuncios Google