Hemos leído: Charles Petzolod: Code

 


Code (Dv- Undefined)El subtítulo del libro es: The Hidden Language of Computer Hardware and Software, que traducido al castellano quedaría como El lenguaje oculto del hardware y del software de los ordenadores. Y eso es lo que es la obra.


En apenas trescientas ochenta y pico páginas Charles Petzold recorre la estructura y el funcionamiento de un ordenador moderno. Y no lo hace nada mal. Yo más bien diría que lo hace de forma inmejorable, ya que combina la rigurosidad más absoluta con la magia de las explicaciones coherentes e incrementales. Como él mismo dice, en este libro no va a encontrar el lector grandes y vistosos gráficos mostrando de forma elemental conceptos que de tan sencillos dejan más duda que comprensión.

Se trata de un libro que pudiéramos llamar hardcore, pero no por eso es menos entendible. La profundidad de las explicaciones se pierde en la maravillosa forma en que están hechas. Personalmente me ha vuelto a mis tiempos de estudiante de electrónica digital y de microprocesadores, haciéndome continuos guiños y recordándome aquellas arduas sesiones de estar primero escribiendo el programa en ensamblador, luego traduciéndolo a código máquina y finalmente tecleándolo con una botonera hexadecimal… para que un brazo de robot girara sobre sí mismo o abriera y cerrara la pinza…

El autor comienza con una explicación sobre qué es un código de comunicación (nos habla de Braille, de Morse, de bombillas apagándose y encendiéndose) y nos construye y explica un aparato de Morse. Entre tanto hemos dado un curso básico de electricidad, viendo cómo circula la corriente, cómo funcionan los relés y alguna que otra cosa más.

Luego nos explica cómo funciona el sistema decimal, el binario, el octal, el hexadecimal, y cuando nos damos cuenta estamos construyendo puertas lógicas (AND, OR, etc.) y hemos asistido a un curso sobre lógica formal.

Casi sin darnos cuenta al rato estamos construyendo un oscilador, un sumador y un restador con relés, y de paso aprendemos el complemento a dos y cómo restar sumando.

Un par de capítulos después nos descubrimos inmersos en básculas Flip-Flop y tipo D… Y cuando levantamos la cabeza de libro hemos construido una memoria de 64Kbytes, un contador y otros varios elementos básicos.

Lo bueno del libro es que fluye de forma continua, se desplaza de lo más sencillo a lo más complejo de forma secuencial y sin aparente aumento de dificultad, para descubrir que estamos estudiando un ordenador casi completo. Hemos visto cómo funciona el código máquina, hemos visto las instrucciones aritméticas, de salto condicional para hacer bucles y lo más importante de todo es que lo entendemos. Apenas nos cuesta comprender cómo están cliqueando los relés dentro de nuestro ordenador (es un decir), y comprendemos cómo arranca y empieza a funcionar. Ciertamente es un libro mágico porque pese a lo riguroso y formal de su contenido es perfectamente entendible.

Adelanta y atrasa, recorre un gran trecho hacia adelante y luego recopila y se recrea en conceptos. De repente nuestro ordenador de 8 bits (porque sin darnos cuenta hemos construido tal aparato) pasa de estar hecho de relés a ser de válvulas (y de paso nos damos una vuelta por los primeros ordenadores, el ENIAC, MULTIVAC, etc). Y un poco más tarde está construido con tecnología TTL o CMOS, y de repente se nos presentan los microprocesadores, pero no sin antes haber recorrido la mente del doctor Atanasof y de Hollerich, pasando por lo que antes era IBM…

En ese momento, si nos ponen en la mano un 8080 y un chip de memoria seríamos capaces de construir nuestro ordenador del igual modo que lo hicieron Wozniak y Waine.

Pero el libro no termina ahí, sino que sigue subiendo de nivel hasta explicarnos por qué necesitamos un sistema operativo. De hecho, siguiendo con la tónica del libro, casi sin darnos cuenta estamos viendo la necesidad de un sistema operativo; es decir, tras tener un aparato programable Petzold nos hace evidente lo evidente.

Números en coma flotante, lenguajes de alto y bajo nivel, entornos gráficos. En lugar de explicárnoslo, el libro nos hace sentir la necesidad de ellos… y entonces nos los explica.

Para finalizar: un libro muy bello, interesante y admirablemente construido. Lástima que no esté traducido al castellano, porque no creo que haya otra obra igual. Aunque por un lado tenemos los libros de electrónica digital y por otros los de informática básica, ninguno enlaza y engloba todos los conceptos e ideas de una forma tan coherente, incremental, lógica y bella.

Sólo hay un punto oscuro en toda la obra: el autor no nos explica la unidad de decodificación y de ejecución del ordenador que nos construye. Ciertamente poner en marcha algo así es un tema arduo y complejo en demasía, pero hubiera sido la guinda que corona el pastel… De todos modos, pese a esa falta, la obra no pierde absolutamente nada de su valor.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *