Portada de Writing an Interpreter in Go

Writing an Interpreter in Go

por Thorsten Ball · 2017

Ver sugerencias

Sinopsis

Este libro guía al lector a través de la construcción de su propio intérprete de lenguaje de programación desde cero, explicando cada paso del proceso de forma práctica.

Libros similares

Libros relacionados según distintos criterios de búsqueda

A Philosophy of Software Design

John Ousterhout

2018·divulgacion

Mientras 'Writing an Interpreter in Go' se centra en la implementación práctica de un lenguaje, este libro ofrece una perspectiva de alto nivel sobre los desafíos inherentes al diseño de cualquier sistema de software complejo, incluidos los intérpretes. La conexión surge de las lecciones de diseño que subyacen a la construcción de cualquier herramienta de programación, más allá de la mera sintaxis, presentando una conexión lateral sobre la filosofía de cómo pensar el problema.

En lugar de un manual técnico, este libro ofrece una visión humana del proceso de creación de software, similar a cómo un intérprete es una herramienta creada por humanos. La conexión es 'no obvia' porque evita la ruta técnica directa y en su lugar explora las motivaciones, los desafíos y las perspectivas personales que dan forma a la ingeniería de software, lo cual es fundamental para proyectos complejos como construir un intérprete.

La construcción de un intérprete implica la creación de un sistema que puede interpretarse a sí mismo, un bucle auto-referencial fundamental en la computación. Este libro profundiza en las bases filosóficas y matemáticas de la auto-referencia, la recursión y los sistemas formales, ofreciendo una perspectiva profunda sobre los principios subyacentes que hacen posible la computación reflexiva, más allá de la implementación práctica de Go, conectado al núcleo filosófico de un 'intérprete'.

Un intérprete es, en esencia, un programa que entiende y ejecuta la 'sintaxis' y la 'semántica' de otro lenguaje. El trabajo de Chomsky sobre la sintaxis y las estructuras profundas del lenguaje, aunque inicialmente aplicado a los idiomas humanos, ha tenido un impacto profundo en la teoría de los lenguajes de programación y los compiladores. La conexión es que ambos buscan desentrañar las reglas y estructuras que rigen la expresión y la computación. Aunque sea filósófica, el intérprete se basa en estos principios.

Teorías de la Programación: Un Enfoque Formal

Edsger W. Dijkstra

1976·divulgacion

A diferencia de un libro práctico sobre cómo construir algo, Dijkstra se adentra en la teoría y el rigor matemático detrás de la programación misma. La conexión es que, aunque no trata sobre cómo construir un intérprete, si se aborda la programación desde una perspectiva formal, las bases teóricas de la computación que se exploran son esenciales para entender la validez y el diseño correcto de sistemas complejos como los intérpretes. Dijkstra, un autor con un impacto profundo pero menos masivo en listas modernas, añade el toque 'obscure'.

Este libro no es sobre tecnología, pero el trabajo de Lacan profundiza en la estructura subyacente del lenguaje y cómo las reglas y símbolos crean significado, lo que es esencial para entender cómo un intérprete 'da sentido' a un código. La conexión es 'inesperada' ya que explora una faceta completamente diferente, a veces desapercibida, del propósito y la función de los sistemas lingüísticos. Es un autor fundamental, pero poco canonizado en listas de recomendación de tecnología.

Compilers: Principles, Techniques, and Tools

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

1986·divulgacion

Aunque 'Writing an Interpreter in Go' se enfoca en intérpretes, comparte una estructura fundamental con los compiladores: ambos procesan un lenguaje de entrada y lo transforman en alguna forma ejecutable. Este libro es el texto canónico que detalla las etapas estructurales de ese proceso (lexing, parsing, semantic analysis), que son directamente aplicables a la construcción de un intérprete. La conexión es directa en los patrones de diseño y la arquitectura de sistemas de procesamiento de lenguajes.

Design Patterns: Elements of Reusable Object-Oriented Software

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

1994·divulgacion

La construcción de un intérprete implica la aplicación de una serie de patrones de diseño específicos (como el patrón Visitor para el recorrido del AST, el Strategy para la evaluación de expresiones, etc.). Este libro, mientras no es sobre intérpretes, es fundamental para entender la 'estructura' de la creación de software robusto. La conexión es que proporciona el marco de pensamiento sobre cómo estructurar el código y los componentes de un intérprete de manera organizada y eficiente, abordando directamente el lado estructural del proyecto.

Ayúdame a que yoleo sea sostenible