Libros sobre Forth

Descripción del contenido de la página

Libros sobre el lenguaje de programación Forth.

Etiquetas:

Uno de mis rituales es ir a la letra "F" de las estanterías de las librerías de informática y rebuscar qué encuentro sobre mi lenguaje de programación favorito. Así encontré hace años, perdidos, solitarios y olvidados, los únicos dos libros en castellano sobre Forth que conozco. No es nada fácil encontrar libros sobre Forth así; la mejor forma es comprarlos directamente de las editoriales o asociaciones de usuarios.

A continuación listo todos los libros sobre Forth que tengo, con todos sus datos y algún comentario.

Introduction to Forth

Este fue mi primer libro sobre Forth. Era el único que tenían en la librería, en la única librería que encontré en que tenían algo sobre Forth. Era de importación y costó mucho dinero: 2300 pesetas del año 1984 (gracias, papá).

El libro está dedicado al MMS-Forth de MIller Micro Services y describe con detalle algunas de las peculiaridades de este sistema, pero el título no engaña: es una introducción al lenguaje, muy completa e interesante.

Abersoft Forth

En realidad no es un libro, sino el manual de Abersoft Forth para la computadora Sinclair ZX Spectrum. Lo incluyo aquí porque para mí fue como un libro. Abersoft Forth fue el segundo sistema Forth con el que trabajé (el primero fue SpecForth, para la misma máquina), y el primero con el que lo hice en serio.

John Jones-Steele es el autor no sólo del manual sino del programa. En aquella época era uno de los responsables de la empresa de programación Abersoft, que en 2005 dejó el sector. En el momento de escribir estas líneas John Jones-Steele sigue programando: es uno de los dos directores de Broadsword.

Actualmente el texto del manual del Abersoft Forth se encuentra en World of Spectrum.

También en World of Spectrum es posible encontrar dos textos relacionados con este sistema Forth:

Mi computer

Esta enciclopedia de diez tomos es la obra más completa y profunda sobre la microinformática de los años 1980. Los primeros ocho tomos son la versión española de Home Computer Course, y los dos últimos de Advanced Home Computer Course, publicadas en Reino Unido por Orbis Publishing.

Mi computer trata todos los aspectos de la microinformática a todos los niveles con un detalle excepcional, desde las cosas más sencillas hasta la programación más compleja en código máquina, por poner un ejemplo. Nunca me cansaría de hojearla y releerla. He aprendido muchísimo entre sus páginas (compraba los fascículos semanales en el recreo del instituto y los devoraba antes de regresar a clase) y, a pesar de que el paso del tiempo ha dejado anticuados muchos de sus contenidos, cada vez que abro uno de sus tomos no puedo evitar sorprenderme: es tan interesante como el primer día y siempre aprendo algo más.

Mi computer merece un artículo aparte en programandala.net. Si la incluyo aquí es porque en sus tomos ocho y nueve hay un curso básico de Forth, en nueve capítulos.

Existe un proyecto en marcha de digitalización de Mi computer, pero hasta el momento de escribir estas líneas sólo están disponibles los dos primeros tomos.

Lenguaje Forth para micros

Este libro no es una maravilla pero tiene algunas peculiaridades interesantes. Tengo pendiente escribir el comentario.

Inside F83

Este libro es fruto de una labor paciente y meticulosa: organizar el código fuente del sistema F83 (uno de los mejores Forth de su tiempo) y presentarlo de forma legible totalmente comentado. El código fuente de F83 está en Forth y en ensamblador del 8086.

Es una joya de libro; con él aprendí mucho sobre las interioridades de Forth, y me sirvió de ayuda para algunas cosas cuando escribí mi propio Forth, Forth 5mx.

FORTH-83 Standard

Compré este libro, creo que hacia 1991, por tener una buena referencia del estándar Forth-83, entonces aún el más extendido. Es una excelente descripción del estándar.

Forth. Anatomía de un lenguaje inteligente

Encontré este libro casualmente y lo compré más por espíritu de coleccionista que por su interés: se han publicado pocos libros sobre Forth en castellano y no todos los días uno se encuentra uno de ellos en una librería.

El libro es una descripción de Forth para el aficionado a la programación. No trata las interioridades del lenguaje, esto es, no describe cómo trabaja Forth interiormente.

Como hablante de esperanto, me hizo gracia leer, en el primer párrafo del prólogo de este librito, una mención algo tópica sobre esta lengua: Cierto es que el BASIC, queramos o no, se está casi convirtiendo en el esperanto de los aficionados a la informática. Sin embargo todo se le perdona al desconocido autor, que no puede ocultar su cariño por el lenguaje Forth, cuando dos párrafos después dice: Lo primero que llama la atención del FORTH es la manera tan original e innovadora en que se trata el problema de la programación.

El primer capítulo está dedicado a una breve historia del lenguaje, los doce restantes a describirlo y el último a las conclusiones. Incluye dos apéndices: uno contiene las palabras Forth obligatorias en los sistemas Forth -79, agrupadas temáticamente y con una breve descripción; otro apéndice, muy recurrido en los libros de informática, muestra todos los caracteres ASCII. El libro lo cierra una pequeña bibliografía; de los cinco libros citados dos son conocidos míos y están en esta página: Starting Forth e Introduction to Forth.

El libro incluye al final una lista de todos los títulos de la colección y en ella se encuentra otro libro titulado Forth con ISBN 84-78432-193-4 del que no tengo más detalles.

Lenguajes

Este libro es un tesoro de esos que uno encuentra tras rebuscar pacientemente en los estantes de las librerías. Veamos qué lenguajes incluye, debí de decirme con escepticismo nada más tomarlo en las manos. Pero para mi sorpresa ahí estaba: Forth ocupaba cuatro capítulos del libro. Casi no podía creerlo, sobre todo tras comparar el número de capítulos dedicados a cada lenguaje: Ada: 1; C: 2; COBOL: 1; Forth: 4; FORTRAN: 1; Lisp: 1; Logo: 5; Modula -2: 1; Pascal: 4; Prolog: 1.

Al parecer se trata de una reedición conjunta de dos obras que habían aparecido por separado, pues está dividido en dos partes, cada una con su propia numeración e índice de contenidos.

No me resisto a comentar una curiosidad: El libro tiene una maquetación austera y la mayoría de las muchas ilustraciones y fotografías que contiene (varias en cada página) son simplemente prescindibles porque no añaden nada al contenido. De hecho hay fotos que tienen tan poco que ver con los contenidos que casi provocan risa. Por ejemplo, en la página 124 de la primera parte una fotografía de un televisor Grundig y un grabador de vídeo Funai tiene el siguiente pie de página: En el ámbito de los ordenadores nacidos bajo la estrella IBM, la implementación de Lisp más famosa es la que recibe el nombre de Golden Common Lisp. Increíble pero cierto. Otro ejemplo: En la página 61 de la segunda parte, en el capítulo de Modula -2, una foto de la película Juegos de guerra está tomada por los pelos para justificar su pie de página relativo a la fiabilidad de los programas utilizados en proyectos importantes, como aeronaútica y astronáutica).

Pero las curiosidades no acaban ahí. Los contenidos del curso de Forth, que es lo que importa, son buenos; permiten aprender la base del lenguaje y familiarizarse con él. Pero, aunque no se dice por ninguna parte, todas las explicaciones se basan en Ace Forth, el Forth de la Jupiter Ace. Esto no es un problema porque Ace Forth es una variante de Forth -79, pero choca mucho que en ningún lugar se explique esto. De hecho las palabras propias de Ace Forth, que no existen on otras versiones de Forth, son explicadas sin ninguna aclaración, como si formaran parte de cualquier Forth: VIS, INVIS, RETYPE, REDEFINE, EDIT, DEFINER, BSAVE, BLOAD, BVERIFY... Aunque en la página 63 (de la primera parte del libro, en el primer capítulo sobre Forth) hay una fotografía de una Jupiter Ace con la carcasa abierta, su pie de página no aclara nada:

La presencia de FORTH en el ámbito de los microordenadores es notable. Hace algún tiempo, incluso podía adquirirse un económico equipo doméstico -denominado Jupiter Ace - cuyo lenguaje residente era precisamente el FORTH, en lugar del tradicional BASIC.

Misterio sin resolver pues.

Forth Programmer's Handbook

Este es el libro sobre Forth que más he usado, releído y consultado. Lo usé mucho especialmente para el desarrollo de mi Forth 5mx, para aprender algunas de las peculiaridades del estándar ANS Forth.

Forth Programmer's Handbook no es un libro para aprender Forth; es un libro de consulta para programadores que trabajan con ANS Forth: Describe con detalle la mayoría de las palabras del estándar ANS Forth y algunas que no forman parte de él pero que son de uso común. Su objetivo es servir de ayuda al desarrollo de aplicaciones en Forth.

Esta primera edición tiene una docena de erratas que pueden despistar a quien no esté muy pendiente. La última edición disponible, revisada, actualizada y ampliada, es la tercera, que salió en diciembre de 2007. Es posible consultar el contenido de Forth Programmer's Handbook en la página del editor.

Starting Forth

Probablemente el mejor libro para aprender Forth que haya existido. La primera edición fue escrita en 1980 y publicada en 1981. Muchas cosas han cambiado en Forth desde entonces, tanto en el lenguaje como en la forma de utilizarlo. Aunque esta segunda edición está corregida, revisada y actualizada por el autor, lógicamente conserva algunos contenidos que han ido quedando desactualizados. Pero a pesar de ello el libro sigue siendo muy valioso para acercarse al Forth por primera vez.

Yo lo compré sólo por el placer de hojearlo y consultarlo, pues hacía muchos años que había dejado de ser un principiante. Sin embargo aprendí cosas útiles, sobre todo de los ejemplos de código y de los ejercicios. Y disfruté del sentido del humor del autor y de sus simpáticos y útiles dibujos, que acompañan la mayoría de la páginas y son parte fundamental de la obra.

Actualmente el libro está digitalizado y puede consultarse en la red en dos lugares al menos:

Se puede leer Starting Forth en la transcripción actualizada que hizo Marcel Hendrix en 2003. Marcel adaptó los ejemplos de código a ANS Forth (el estándar nacido en 1994), actualizó algunos contenidos que habían quedado obsoletos con el paso del tiempo (indicándolo adecuadamente) y acompañó el texto con imágenes sustitutivas de los estupendos dibujos originales de Leo Brodie.

También es posible leer Starting Forth en la página del editor, FORTH, Inc. Al parecer se trata de un transcripción literal de la primera edición, con los dibujos originales, y con notas a pie de página que aclaran ciertos contenidos que han sufrido el paso del tiempo.

Thinking Forth. A Language and Philosophy for Solving Problems

Este ha sido mi libro de cabecera en muchas ocasiones. Es un libro al que siempre regreso, sobre todo cuando estoy cansado de pelearme con los caprichos, las dificultades y las limitaciones de otros lenguajes; entonces lo abro por cualquier página, empiezo a leer y vuelvo a sentir la fascinación de programar.

Forth es desde sus inicios más que un lenguaje de programación: técnicamente es su propio entorno de desarrollo y su propio sistema operativo; pero desde otro punto de vista es una forma de pensar, una forma de acercarse a los problemas y una forma de solucionarlos. El título lo expresa bien: Pensando en Forth. Un lenguaje y una filosofía para solucionar problemas.

No es un libro para aprender a programar en Forth, aunque sin duda se aprende mucho Forth en sus páginas. Es un libro para aprender a pensar en Forth y aplicar la técnica a cualquier lenguaje de programación. Por ello este libro es útil para programadores de otros lenguajes que quieran aprender a enfocar la programación de otra manera, de una manera tan poco convencional como sencilla y eficaz: la manera de Forth.

Actualmente Thinking Forth está disponible en formato digital bajo licencia de Creative Commons: descargar Thinking Forth en Source Forge; leer Thinking Forth en Scribd.

Programming Forth

En 2007, buscando códigos fuente de sistemas Forth escritos para procesadores ARM, encontré Programming Forth, en formato PDF, en la página de MicroProcessor Engineering, Limited. No lo he leído aún pero basta una ojeada para darse cuenta de que es una obra muy completa, apta tanto para principiantes como para usuarios avanzados.

Introducción a Forth

Descubrí esta obra en la red en 2008, con gran sorpresa y satisfacción. Hay muy pocos libros en castellano sobre Forth y este es excelente en todos los aspectos. Se puede encontrar Introducción a Forth en la página del autor, en formato PDF.

El autor incluye un capítulo con la descripción de su propio sistema Forth, denominado Lézar, escrito en C, que pretende recuperar la simplicidad original de Forth.

No me resisto a citar las últimas palabras del libro, que suscribo:

Pero ¿qué importan las modas? Las lecciones de Forth son intemporales, como lo son la admiración que muchas veces produce, el placer que procura el entendimiento, la constatación de que hay otros caminos.

Advanced Spectrum FORTH

Encontré Advanced Spectrum FORTH digitalizado en World of Spectrum el 5 de junio de 2009 y tras la sorpresa inicial lo primero que pensé es lo bien que me habría venido leerlo veinticuatro años atrás, cuando escribía programas en Abersoft Forth para la ZX Spectrum y echaba en falta información detallada sobre el funcionamiento interno del sistema. Porque de eso trata este libro: es un manual avanzado de Abersoft Forth, el fig-Forth para Spectrum publicado en 1983 por la misma editorial del libro. Aparte de incluir una introducción al lenguaje, describe con mucho detalle las interioridades de Abersoft Forth (incluso tiene un apéndice con la descompilación comentada de sus palabras) e incluye ejemplos de código muy interesantes.

Echar un detallado vistazo al libro me hizo sentir una mezcla de rabia y nostalgia: ¿Qué otras cosas hubiera podido programar si en su día hubiera tenido toda esta información?. Hubiera sido muy útil que el contenido de este libro hubiera estado incluido en el escueto manual de Abersoft Forth.

Aunque el libro llega un poco tarde a mis manos aún puede ser útil: nunca sé cuándo reinventaré la rueda una vez más. Para mí siempre es un reto muy gratificante escribir programas para sistemas antiguos que ya nadie usa. Y en cualquier caso Advanced Spectrum FORTH es una excelente lectura; en cualquier libro sobre Forth, sea la versión que sea y para cualquier plataforma, puede aprenderse mucho Forth.