Competencia específicaa <strong>de</strong>sarrollarConocer e I<strong>de</strong>ntificar losdiferentes tipos <strong>de</strong>optimización que permitaeficientar el códigointermedio.Activida<strong>de</strong>s <strong>de</strong> aprendizaje• Aplicar las técnicas para la optimización <strong>de</strong>lcódigo intermedio generado• Tener nociones algebraicas para estimar elnúmero <strong>de</strong> veces que se realiza una instrucción<strong>de</strong>ntro <strong>de</strong> un ciclo o ciclos anidadas.• Conocer que recursos se consumen eninvocación a funciones y expresiones simples.• Estudiar nuevas técnicas para la optimización<strong>de</strong> código, sobre todo para aquellos lenguajesque requieren <strong>de</strong> una máquina virtual para suejecución sobre multiplataformas.• Escribir un ensayo que establezca lasten<strong>de</strong>ncias y técnicas empleadas para estepropósito.• Conocer los criterios <strong>de</strong> tiempo <strong>de</strong> ejecución oextensión <strong>de</strong> código generado.• Integrar equipos, para analizar códigosintermedios existentes y proponer algunasmejorasUnidad 4: Generación <strong>de</strong>l código objeto.Competencia específicaa <strong>de</strong>sarrollarUtilizar un lenguaje <strong>de</strong> bajonivel para traducir el códigoconstruido a lenguajemáquina para su ejecución.Activida<strong>de</strong>s <strong>de</strong> aprendizaje• Conocer la arquitectura <strong>de</strong> losmicroprocesadores intel y compatibles• Conocer la estructura y funcionamiento <strong>de</strong>llenguaje ensamblador.• Conocer las características principales <strong>de</strong>llenguaje maquina a fin <strong>de</strong> llevar un códigointermedio y este pueda ser reconocido por elhardware.• Conocer las técnicas <strong>de</strong> administración <strong>de</strong>memoria para el almacenamiento <strong>de</strong> unprograma en momento <strong>de</strong> ejecución.• Experimentar con simuladores <strong>de</strong> arquitectura<strong>de</strong> microprocesadores.11.- FUENTES DE INFORMACION1. Aho, Sethi, Ullman. Compiladores Principios, técnicas y herramientasEd.Addison Wesley.
2. Lemone Karen A. , Fundamentos <strong>de</strong> compiladores Cómo traducir allenguaje <strong>de</strong> computadora, Ed. Compañía Editorial Continental.3. Kenneth C. Lou<strong>de</strong>n. Construcción <strong>de</strong> compiladores Principios y práctica.Ed.Thomson.4. Martin John, <strong>Lenguajes</strong> formales y teoría <strong>de</strong> la computación, ED. Mc GrawHill5. Hopcroft John E., Introducción a la Teoría <strong>de</strong> Autómatas, <strong>Lenguajes</strong> yComputación, ED. Addison Wesley6. Guerra Crespo. Hector. Compiladores. Ed. Tecnologica didáctica.7. Ronald Mak. Writing compilers and interpreters. Ed. Wiley ComputerPublishing.8. Fischer, LeBlanc. Crafting a compiler with C. Ed. Cummings PublishingCompany, Inc.9. Salas Parrilla, Jesús. Sistemas Operativos y Compiladores. McGraw Hill.10. Beck. Software <strong>de</strong> Sistemas, Introducción a la programación <strong>de</strong> Sistemas.Addison-Wesley Iberoamericana.11. Teufel, Schmidt, Teufel. Compiladores Conceptos Fundamentales.Addison-Wesley Iberoamericana.12. C. Lou<strong>de</strong>n, Kenneth. <strong>Lenguajes</strong> <strong>de</strong> programación Principios y práctica.Thomson.13. Levine Gutiérrez, Guillermo. Computación y programación mo<strong>de</strong>rnaPerspectiva integral <strong>de</strong> la informática. Pearson Educación.14. Abel, Peter. Lenguaje ensamblador y programación para PC IBM ycompatibles. Pearson Educación.15. Mak, Ronald. Writing compilers and interpreters. Wiley ComputerPublishing.16. Pittman, Thomas, Peters, James. The art of compiler <strong>de</strong>sign Theory andpractice. Prentice Hall.17. Temblay & Sorenson. Compilers Writing. Mc Graw Hill.18. R. Levine, John; Mason, Tony, Brown, Doug. Lex y Yacc. O'Reilly &Associates.19. The Lex & Yacc Page, 3-mar-04, 12:45, http://dinosaur.compilertools.net20. A compact gui<strong>de</strong> to lex & Yacc, Thomas Niemann, 3-Mar-04, 12:50,http://epaperpress.com/lexandyacc21. Lex & Yacc HOWTO, Bert Hubert (PowerDNS.COM.BV), 3-Mar-04, 12:55,http://ds9a.nl/lex_yacc22. Flex, 3-mar-04, 13:02, http://www.gnu.org/software/flex/flex.html23. Compiler construction using flex and Bison, Anthony Aaby, 3-mar-04, 13:05,http://cs.wwc.edu/aabyan/464/BooK/24. Flex, version 2.5 A fast scanner generator, Edition 2.5, March 1995, VernPaxson, 3-mar-04, 13:10,http://www.cs.princelon.edu/appel/mo<strong>de</strong>rn/c/software/flex/flex_toc.html25. Bison. The Yacc-compatible Parser Generator, November 1995, BisonVersion 1.5, Charles Donnelly and Richard Stallman, 3-mar-04, 13:10,http://www.cs.princelon.edu/appel/mo<strong>de</strong>rn/c/software/bison/bison_toc.html, 13/dic/200926. Bison. http://3d2f.com/programs/30-170-microprocessor-emulator-andassembler-download.shtml,13/dic/200927. 2/Ago/2005 ,Microprocessor Emulator and Assembler 3.10-k,http://software.intel.com/en-us/articles/all/1/, 24/feb/2010