Portada de Principios de Diseño en Ciencias de los Computadores

Principios de Diseño en Ciencias de los Computadores

por Alfred V. Aho, Jeffrey D. Ullman · 1977

Sinopsis

Un texto fundamental que introduce los conceptos y técnicas utilizadas en el diseño de compiladores, como el análisis léxico, el análisis sintáctico y el análisis semántico, revelando la estructura interna de cómo se procesan y traducen los lenguajes de programación.

Sé el primero en valorar este libro.

Más de Alfred V. Aho

Ver autor →

Otras obras del mismo autor en el catálogo

Libros similares

Libros relacionados según distintos criterios de búsqueda

La búsqueda: Google y el futuro de todo

John Battelle

2005·divulgacion

Mientras que "Principios de Diseño en Ciencias de los Computadores" se centra en la teoría fundamental de una disciplina, este libro explora la aplicación práctica y el impacto societal de un principio informático central (la indexación y búsqueda algorítmica) en una escala masiva y casi utópica, revelando las consecuencias no evidentes de lo que en su base son estructuras de datos y algoritmos.

Gödel, Escher, Bach: Un eterno y grácil bucle

Douglas R. Hofstadter

1979·no ficcion

Aunque no es directamente sobre diseño de software, comparte la naturaleza fundamental de "Principios de Diseño..." al explorar los fundamentos conceptuales de la computación, la lógica y los sistemas formales, pero desde una perspectiva mucho más filosófica y artística, revelando las conexiones inesperadas entre la teoría subyacente y la creatividad humana.

Aunque "Principios de Diseño..." se enfoca en la teoría de compiladores y su construcción interna, el libro de Cooper comparte una profunda similitud filosófica en la idea de que el diseño (ya sea de un lenguaje de programación o de una interfaz de usuario) debe ser sistemático, lógico y predecible, buscando optimizar la interacción, en un caso con la máquina y en el otro con el usuario.

Pensar rápido, pensar despacio

Daniel Kahneman

2011·no ficcion

Este libro, aunque sobre psicología cognitiva, se conecta profundamente con la idea subyacente de diseño de sistemas de "Principios de Diseño...". Ambos exploran cómo los sistemas (ya sean mentales o computacionales) procesan información, toman decisiones y pueden ser optimizados o pueden fallar debido a sesgos o limitaciones inherentes. La eficiencia y la lógica subyacen a ambos, aunque uno en la mente humana y el otro en la máquina.

Conceptos de Lenguajes de Programación

Robert W. Sebesta

1996·no ficcion

Mientras Aho y Ullman se centran en el diseño de compiladores (cómo se traducen los lenguajes), Sebesta explora directamente los conceptos de diseño de los propios lenguajes. Es un tema contiguo y fundamental, a menudo tratado en libros de texto universitarios de menor visibilidad fuera del ámbito académico anglosajón comparado con volúmenes más famosos.

El arte de la simulación por computadora

Richard W. Hamming

1987·divulgacion

Hamming, una figura clave en la informática, aborda los principios de diseño de un tipo particular de programa: las simulaciones. Conecta con el libro de referencia en la metodología de pensar cómo construir sistemas complejos que representen la realidad, pero su enfoque es más sobre la validación del modelo y la precisión que sobre la sintaxis. Es un texto fundamental pero menos publicitado que otros clásicos.

Patrones de diseño: Elementos de software reutilizable orientado a objetos

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

1994·divulgacion

Así como "Principios de Diseño en Ciencias de los Computadores" establece una estructura y un conjunto de principios para la construcción de compiladores (un tipo específico de programa), este libro descompone el diseño de software en patrones reutilizables. La similitud estructural radica en la taxonomía, la explicación de componentes y sus interacciones, y la provisión de un marco sistemático para la construcción.

Comparte con el libro de referencia la estructura pedagógica de presentar principios y patrones para la creación de sistemas complejos. Ambos desglosan un problema grande (compilación o diseño de software) en componentes manejables, establecen reglas de interacción y promueven una metodología sistemática. La conexión es sobre cómo se construye un artefacto técnico complejo a partir de componentes bien definidos.

Ver sugerencias

Ayúdame a que yoleo sea sostenible