</> CodeBooks
    ← Volver a Ciencias de la computación (página 3)
    Portada de Writing A Compiler In Go

    Writing A Compiler In Go

    Thorsten Ball

    Editorial
    Thorsten Ball
    Año
    2018
    Páginas
    ~284
    Nivel
    Intermedio

    De qué trata

    Secuela directa del aclamado libro de Thorsten Ball sobre intérpretes, esta obra enseña a dar el salto hacia la compilación a bajo nivel transformando el lenguaje didáctico Monkey en un compilador de bytecode y una máquina virtual basada en pila (stack-based VM). El texto trabaja con Go (versiones 1.x) y está dirigido a desarrolladores de nivel intermedio que dominen la sintaxis y tipos del lenguaje (structs, interfaces, slices y punteros), siendo indispensable haber completado el libro previo o contar con sólida comprensión de árboles de sintaxis abstracta (AST) y análisis sintáctico.

    El autor guía paso a paso en el diseño de un conjunto de instrucciones personalizadas (opcodes), la generación de bytecode a partir del AST de Monkey y la construcción del motor de ejecución de la máquina virtual. A lo largo del recorrido se implementan conceptos fundamentales como la tabla de símbolos (para resolver identificadores globales, locales, funciones integradas y variables libres), marcos de llamada (stack frames) para gestionar ámbitos de ejecución de funciones, llamadas recursivas y estructuras de datos como enteros, booleanos, cadenas, arreglos y tablas hash. Todo se desarrolla utilizando exclusivamente la biblioteca estándar de Go (paquetes fmt, bytes y testing), prescindiendo deliberadamente de generadores externos o librerías de terceros.

    El libro sigue una rigurosa metodología guiada por pruebas (TDD), donde cada nueva instrucción de bytecode y operación de la máquina virtual se valida antes de integrarse en la consola interactiva REPL. Su mayor valor reside en desmitificar temas que suelen explicarse de forma densa e inescrutable en el entorno académico, demostrando con código limpio cómo un compilador de bytecode logra triplicar la velocidad del evaluador tree-walking. Como advertencia, no genera código máquina nativo para arquitecturas específicas (x86 o ARM) ni aborda optimizaciones complejas de compiladores modernos (como formas SSA), pero constituye una de las mejores y más transparentes puertas de entrada a la ingeniería de lenguajes y máquinas virtuales.

    • Go
    • Compiladores
    • Bytecode
    • Máquinas virtuales
    • Instrucciones y opcodes
    • Tabla de símbolos
    • Stack frames
    • Closures
    • Lenguaje Monkey
    • TDD

    ¿Cómo enseña?

    TeóricoPráctico

    Con proyectos

    • ✗ Sin ejercicios
    • ✓ Incluye proyectos

    Proyectos

    Compilador y máquina virtual para Monkey

    Compilador que transforma el AST del lenguaje Monkey en bytecode propio junto con una máquina virtual basada en pila con soporte para funciones, marcos de llamada, clausuras y un REPL interactivo, desarrollado exclusivamente con la biblioteca estándar de Go.

    Más de Ciencias de la computación con nivel Intermedio