Traductores de Lenguajes de Programación PROCESADORES DE LENGUAJES Traductores en el marco de la comunicación hombre-máquina M José Miguel Benedı́ e-mail: jbenedi@dsic.upv.es LN Tutorı́as: lunes y jueves de 9.30 a 12.30 Despacho: 1D13 edificio DSIC LAN Programa Fuente - Traductor - LE LM Programa Objeto Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Procesadores de Lenguajes José Miguel Benedı́ (2012-2013) Traductores de Lenguajes de Programación Lenguajes de Programación y Traductores Origen y evolución de los Traductores de LP 1945 - 1960 - Compilación de código frente a traducción automática. - Compilador de fortran (Formula Translator) costó 18 personas-año. 1960 - 1975 - Impulso formalizador; énfasis en la fase de análisis. 1975 - - Énfasis en la calidad del código objeto. - Compilación de lenguajes para nuevos paradigmas de programación: funcional, lógica y orientado a objetos, distribuidos, paralelos, ... jbenedi@dsic.upv.es Compiladores hoy: justificación de la asignatura â Los Compiladores son una herramienta bien conocida y de toda confianza: â Adecuada estructuración del problema â Uso juicioso de formalismos matemáticos â Uso de herramientas de generación automática de programas â Los conocimientos adquiridos tienen aplicación directa en otros campos: ((Aunque es probable que pocas personas realicen o incluso mantengan un compilador para uno de los principales lenguajes de programación, mucha gente puede obtener provecho del uso de un gran número de ideas y técnicas para el dise~ no general de programas)) Alfred V. Aho y Jeffrey D. Ullman â Permite conocer mejor los lenguajes de programación que se usan â Ayuda a enfrentarse a programas de tamaño medio medio alto. José Miguel Benedı́ (2012-2013) jbenedi@dsic.upv.es José Miguel Benedı́ (2012-2013) jbenedi@dsic.upv.es Procesadores de Lenguajes Procesadores de Lenguajes Temario Bibliografı́a ⇒ A.V.Aho, R.Sethi y J.D.Ullman: Compiladores: Principios, Técnicas y Herra- 1. Introducción a la compilación mientas. Addison-Wesley, 1990. 2. Análisis léxico ⇒ K.D.Cooper y L.Torczon: Engineering a Compiler. Morgan Kaufmann, 2012. 3. Análisis sintáctico: 3.1. Análisis sintáctico descendente â A.W.Appel: Modern Compiler Implementation in C. Cambridge University Press, 1998. 3.2. Análisis sintáctico ascendente 4. Análisis semántico: 4.1. Gramáticas de atributos â S.Muchnick Advanced Compiler Design and Implementation. Morgan Kaufman Publishers, 1997. 4.2. Comprobación de tipos â K.C.Louden: Compiler Construction: Principles and Practice. PWS Publihing, 1997. 5. Representación de las informaciones en memoria â C.N.Ficher and R.J.LeBlanc: Crafting a Compiler with C. Benjamin Cum- 6. Generación de código intermedio mings, 1991. 7. Optimización de código intermedio 8. Generación y optimización de código José Miguel Benedı́ (2012-2013) jbenedi@dsic.upv.es Organización de las prácticas jbenedi@dsic.upv.es Evaluación Evaluación de las prácticas â 1o parcial: Ejercicios de 5 sesiones de trabajo 1o parcial Media de trabajos de las 5 sesiones prácticas: 2o parcial Prueba individual del proyecto: â 2o parcial: Proyecto de un Compilador Seminarios 0 1 2 3 4 5 6 7 8 José Miguel Benedı́ (2012-2013) Lı́mite de entrega del proyecto y prueba individual Seminarios Presentación de las prácticas flex: Análisis Sintáctico Descendente bison: Introducción bison: Errores y conflictos bison: Atributos y ETDS Presentación del proyecto Gestión de utilidades: TDS y GM Gestión de utilidades: GCI José Miguel Benedı́ (2012-2013) Impartición 24-09- 2012 01-10- 2012 22-10- 2012 05-11- 2012 26-11- 2012 10-12- 2012 28-01- 2013 11-02- 2013 04-03- 2013 P1p P2p 07-06-2013 19-07-2013 Evaluación de la teorı́a Entrega −-−- − 22-10-2012 05-11-2012 26-11-2012 10-12-2012 21-12-2012 −-−- − −-−- − 07-06-2013 Teorı́a por parciales T = (T1p + T2p)/2 si Examen de PDL (1-parcial) Examen de PDL (2-parcial y final) Examen de PDL (final septiembre) si AP T O entonces si no T1p ≥ 5 y T2p ≥ 3 15-01-2013 07-06-2013 19-07-2013 nota = (0,65 ∗ T ) + (0,05 ∗ P1p) + (0,30 ∗ P2p) nota = mı́n(0,65 ∗ T, 4) Nota: Para más información, consultad: (Poliformat >Contenidos >Evaluación) jbenedi@dsic.upv.es José Miguel Benedı́ (2012-2013) jbenedi@dsic.upv.es