Portada de Diseño de Programas de Computadora

Diseño de Programas de Computadora

por Niklaus Wirth · 1976

Ver sugerencias

Sinopsis

Un texto clásico que enfatiza la metodología de diseño de algoritmos y estructuras de datos. Wirth, creador de Pascal, promueve la programación estructurada y la claridad en el diseño, con un enfoque en la construcción de sistemas fiables y mantenibles.

Más de Niklaus Wirth

Ver autor →

Otras obras del mismo autor en el catálogo

Libros similares

Libros relacionados según distintos criterios de búsqueda

La esencia del Software

Charles Simonyi

1989·ensayo

Mientras Wirth se enfoca en la estructura y los algoritmos como base del diseño de programas, Simonyi introduce la idea de la 'programación intencional', una perspectiva menos común que se centra en el significado y la intención detrás del código, yendo más allá de la mera implementación técnica para abordar la legibilidad y la mantenibilidad desde un punto de vista semántico y de diseño abstracto.

Aunque no es un libro directamente de ingeniería de software, Hofstadter explora la recursividad, la formalización de sistemas y la emergencia de significado a partir de reglas simples, conceptos que son fundamentales en el diseño de algoritmos y programas, pero desde una perspectiva filosófica y artística. Conecta la rigidez de los sistemas formales con la creatividad y el diseño, ofreciendo una visión 'no obvia' de cómo el pensamiento recursivo subyace en la construcción del software.

El arte de programar ordenadores

Donald Knuth

1968·ensayo

La obra de Knuth comparte con Wirth la búsqueda de la elegancia, la eficiencia y la corrección matemática en el diseño de programas. Ambos autores abogan por un enfoque disciplinado y fundamentado teóricamente para la construcción de software, no solo desde la perspectiva de la implementación, sino desde la propia concepción del algoritmo y su análisis formal como un principio rector y profundo del arte de programar.

Mientras el libro de Wirth se enfoca en el diseño de programas individuales o módulos bien estructurados, Brooks aborda la complejidad inherente y los desafíos filosóficos de construir sistemas de software mucho más grandes. Ambos comparten la preocupación por la gestión de la complejidad y la búsqueda de principios fundamentales, pero Brooks se centra en la 'falta de plata' inherente al software y las complejidades no técnicas, ofreciendo una mirada profunda a las implicaciones humanas y organizativas del diseño de software.

Al igual que Wirth, el trabajo de Bauer proviene de una tradición europea de la ciencia de la computación que enfatiza la formalidad y la precisión. Su ensayo ofrece una perspectiva similar en los principios subyacentes del diseño de software, pero desde un autor menos conocido en el ámbito anglófono, brindando una mirada a las raíces teóricas profundas fuera del canon habitual.

La Programación Estructurada como Disciplina

O.J. Dahl, E.W. Dijkstra, C.A.R. Hoare

1972·ensayo

Mientras Dijkstra es más conocido, este volumen conjunto de Dahl, Dijkstra y Hoare presenta un desarrollo fundamental de la programación estructurada que es el pilar de la filosofía de diseño de Wirth. La contribución de Dahl, un pionero noruego de la programación orientada a objetos (aunque no en el sentido moderno), es menos prominente en las discusiones generales, lo que lo convierte en una adición más 'oscura' pero muy relevante para el campo, compartiendo la misma búsqueda de claridad y rigor subyacente en el diseño de Wirth.

Wirth aboga por un enfoque metódico para el diseño. Mills lleva esta idea a una estructura metodológica explícita y formal, detallando fases y técnicas que se alinean con la construcción sistemática. Ambos autores comparten la creencia en que los programas deben ser 'construidos' de manera estructurada y verificable, aunque Mills lo formaliza como una metodología completa de desarrollo, mientras Wirth se enfoca en el diseño de la solución en sí.

Aunque el libro de Wirth se centra en la programación estructurada y procedimental, la obra de Booch, aunque posterior y sobre otro paradigma (o.o.), comparte la preocupación por la modularidad, la abstracción y la organización jerárquica del código para gestionar la complejidad. Ambos buscan una 'estructura' subyacente para el diseño de programas, pero Booch lo hace a través de clases, objetos y relaciones, proporcionando un marco diferente pero igualmente enfocado en la modularidad y la claridad estructural para la construcción de software.

Ayúdame a que yoleo sea sostenible