</> CodeBooks
    ← Volver a Ciencias de la computación (página 1)
    Portada de Compiladores Principios, Tecnicas y Herramientas

    Compiladores Principios, Tecnicas y Herramientas

    Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman

    Editorial
    Addison Wesley
    Año
    2007
    Páginas
    ~1037
    Nivel
    Básico

    De qué trata

    Segunda edición ampliamente renovada y actualizada de la obra canónica de las ciencias de la computación (conocida como el «Libro del Dragón»), elaborada por Alfred V. Aho, Monica S. Lam, Ravi Sethi y Jeffrey D. Ullman. Está concebida para estudiantes avanzados de ingeniería informática, ciencias de la computación y desarrolladores de herramientas de desarrollo o máquinas virtuales. Para aprovecharlo se requieren bases sólidas en estructuras de datos, matemáticas discretas (grafos y teoría de conjuntos) y soltura en programación orientada a objetos o de sistemas con Java o C.

    El manual disecciona paso a paso la arquitectura de un compilador a través de sus fases canónicas: análisis léxico mediante expresiones regulares y autómatas finitos (AFN/AFD), análisis sintáctico con gramáticas independientes del contexto (técnicas LL, LR, SLR, LALR), traducción dirigida por la sintaxis y generación de código intermedio (código de tres direcciones). Para su implementación práctica se apoya en herramientas estándar de la industria como Lex/Flex y Yacc/Bison, además de proveer una implementación de referencia en Java. Esta edición destaca por su extenso tratamiento de temas modernos: entornos de ejecución y gestión de memoria con recolectores de basura (*mark-and-sweep*, copiado y generacionales), optimizaciones independientes de la máquina (análisis de flujo de datos y eliminación de redundancia), paralelismo a nivel de instrucción (ILP, planificación de bucles y *software pipelining*), transformaciones de bucles para optimización de localidad en jerarquías de memoria caché y análisis interprocedimental con alias y punteros.

    A nivel práctico, el libro guía la construcción de un traductor dirigido por la sintaxis completo en Java que genera código intermedio para un lenguaje básico, complementado con una copiosa batería de ejercicios teóricos y de modelado al final de cada sección. Su gran mérito es aportar una base matemática y conceptual inigualable sobre cómo el software de alto nivel cobra vida y se optimiza eficientemente en hardware moderno; no obstante, no aborda las infraestructuras de compilación modulares contemporáneas como LLVM o backends de compilación JIT modernos, por lo que debe entenderse como el cimiento teórico fundamental para comprender cualquier tecnología de lenguajes.

    • Compiladores
    • Análisis léxico
    • Análisis sintáctico
    • Traducción dirigida por sintaxis
    • Código intermedio
    • Optimización de código
    • Lex / Flex
    • Yacc / Bison
    • Java
    • Recolección de basura
    • Paralelismo de instrucciones

    ¿Cómo enseña?

    TeóricoPráctico

    Teoría + práctica

    • ✓ Incluye ejercicios
    • ✓ Incluye proyectos

    Proyectos

    Traductor dirigido por sintaxis en Java

    Construcción completa en Java del front-end de un compilador didáctico que realiza análisis léxico, análisis sintáctico y emisión de código intermedio en formato postfijo de tres direcciones para expresiones aritméticas y estructuras de control.

    Más de Ciencias de la computación con nivel Básico