2009-05-19 18 views
5

En el pasado he usado Doxygen para C y C++, pero ahora me han lanzado en el proyecto Fortran y me gustaría echar un rápido vistazo a la arquitectura.¿Funcionalidad del tipo de autodocumentación para Fortran?

En el pasado, he encontrado herramientas de ingeniería inversa para ser útiles donde no existe documentación de la arquitectura.

Entonces, ¿hay alguna herramienta que pueda realizar una ingeniería inversa del código Fortran?

Intenté usar Doxygen, pero no tuve suerte. Trabajaré con dos proyectos diferentes: un Fortran 90 y creo que está en Fortran 77.

Gracias por cualquier idea y comentario.

Respuesta

3

herramientas que pueden ayudar con la ingeniería inversa:
SciTools Understand
Link with some more tools (search "fortran")

Además, tal vez algunos de estos marcos de pruebas unitarias será útil (no los he usado, así que no puedo comentar sobre los pros y los contras de cualquiera de ellos):
FUnit
FRUIT
Ftnunit
(estos enlaces enlazar a fortranwiki, donde se puede encuentre un tidbit en cada uno de ellos, y desde allí hay enlaces a sus sitios de origen).

+0

Bueno, las SciTools parecen prometedoras, pero actualmente estoy buscando una solución OpenSource. Parece que FUnit ha estado obsoleto durante aproximadamente 6 meses más o menos, y el tiempo similar para FRUIT y Ftunit. Supongo que la búsqueda continúa, pero es un poco sorprendente que no exista nada como esto para FORTRAN dado el tiempo que ha pasado. – JustADude

+0

No es que nada exista. Es solo que la ingeniería inversa no es algo cotidiano en la industria de Fortran. No es tan común en cualquier lugar para ese asunto. Personalmente, nunca lo hice, y he estado usando Fortran durante mucho tiempo. Es posible que tengas un poco de suerte preguntando por comp.lang.fortran – Rook

3

Doxygen 1.6.1 generará documentación, gráficos de llamada, etc. para el código fuente de Fortran en formato de formato libre (F90). No tiene suerte para auto-documentar el código de formato fijo (F77) con doxygen.

No todo está perdido, sin embargo. La conversión del formato fijo al libre es sencillo y se puede automatizar en gran medida: cambie los caracteres de comentario a '!', Cambie los caracteres de continuación a '&' y añada '&' a las líneas para continuar. De hecho, si el carácter de continuación agregado se coloca en la columna 73, debe ser ignorado por los compiladores estándar F77 (que aún solo reconocen el código en las columnas 1 a 72) pero será reconocido por los compiladores F9x/F2003/F2008. Esto permite que el mismo código sea reconocido tanto en formato fijo como libre, lo que le permite migrar con gracia de un formato a otro.

Convenientemente, hay alrededor de mil programas pequeños que harán este ajuste de formato en mayor o menor grado. De manera realista, si vas a mantener el código, también puedes alejarlo de la especificación de 1928 para las tarjetas perforadas Hollerith (IBM). :)