He utilizado SGML (Standard Generalized Markup Language) por su flexibilidad, este sistema permite dar significado a las distintas partes de un documento de manera que posteriormente se pueden mecanizar muchas de las tareas de elaboración. Ya que el documento no tiene formato sino significado, se pueden asignar distintos estilos de formato según sea el soporte de destino: Papel, Paginas web, PostScript, Portable Document Format, Braille... etc.
Concretamente he elegido el DTD (Document Type Definition) DocBook ya que parece ser el estándar de facto en la documentación de productos software, utilizado por empresas como Hewelt Packart, SUN MicroSystems u O'Reilly.
Por ser un estándar internacional (ISO 8879) es totalmente independiente del software utilizado y totalmente portable, al contrario que otros formatos propietarios como Word, WordPerfect, QuarkXpress...
Como ventaja adicional, es un formato basado en texto, y no en caracteres binarios no imprimibles, lo que permite un control de cambios más fácil, especialmente con herramientas como CVS (Concurrent Version System).
También he utilizado gtk-doc-tools, un sistema de generación de documentación SGML a partir de comentarios estructurados dentro del código fuente del programa. Es el sistema utilizado en GTK+ y GNOME para la creación del manual de referencia del API.
GTK+, una biblioteca de elementos gráficos inicialmente apoyada en Xwindow, que está siendo portada a Win32, fue originalmente desarrollada para satisfacer las necesidades del magnífico programa de tratamiento fotográfico GIMP (GNU Image Manipulation Program) y progresivamente se ha convertido en el estándar de facto para la programación de aplicaciones gráficas en el mundo del software libre, desplazando a la todopoderosa Motif. Posteriormente surgió la iniciativa, de manos de Miguel de Icaza de crear un entorno de programación más cómodo y flexible que denominó GNOME (GNU Network Object Model Environment) que utilizo GTK+ para dibujar ventanas, botones y demás elementos gráficos.
Este entorno, goza de toda la flexibilidad del sistema Xwindow ( ejecución remota, independencia del gestor de ventanas ...) y además está libremente disponible, incluido todo su código fuente y proporciona documentación gratuita en múltiples formatos (la editan en SGML).
Además estas herramientas están hechas para ser portables, por supuesto a través de la mayoría de los sistemas de tipo UN*X y muy pronto Win32 (Microsoft Windows 95/98/NT).
Para la mayor parte del programa he utilizado una versión mejorada del clásico VI (Visual Interactive:) denominada VIM (VI iMproved).
Posteriormente para la edición de la memoria a partir de las notas he utilizado emacs, con un paquete de extensión para documentos SGML.
Es un compilador muy portable, también de libre distribución que es capaz de compilar C, C++, Java, Pascal y Fortran. Está disponible para casi todas las plataformas UN*X, Win32, Beos, DOS, y puede que otras.
Para la depuración he utilizado el programa de consola gdb y a menudo su "front end" gráfico DDD.
Este es el sistema de control de versiones "estándar" en el mundo del software libre. Permite registrar los cambios de colecciones completas de archivos, pudiendo señalar momentos importantes del desarrollo para su posterior examen, y el mantenimiento de distintas ramas de desarrollo. También permite acceso remoto a las colecciones de archivos para facilitar la colaboración a través de Internet.
"Automake" genera de forma semiautomática todo el sistema de compilación (archivos Makefile) ricos en funcionalidad y de acuerdo con los estándares de GNU.
"Autoconf" es capaz de detectar las distintas peculiaridades el entorno de desarrollo permitiendo una compilación fácil a todo tipo de usuarios en todas las plataformas soportadas.