Saltar al contenido

Convertir FORTRAN a C / C++

Hola, hallamos la solución a tu búsqueda, deslízate y la encontrarás aquí.

Solución:

Encontré que hay un pequeño conjunto de herramientas llamado fábula fable – Conversión automática de Fortran a C++ que se dedica a dicha conversión.

También hay una revisión de dicha herramienta. Resumen de los autores de la revisión:

Fondo

En computación científica, Fortran fue el lenguaje de implementación dominante durante la mayor parte de la segunda parte del siglo XX. Las muchas herramientas acumuladas durante este tiempo han sido difíciles de integrar con el software moderno, que ahora está dominado por lenguajes orientados a objetos.

Resultados

Impulsados ​​por los requisitos de un proyecto de software científico a gran escala, hemos desarrollado una herramienta de conversión de fuente a fuente de Fortran a C++ llamada FABLE. Esto permite el desarrollo continuo de nuevos métodos incluso al cambiar de idioma. Informamos sobre la aplicación de FABLE en tres proyectos principales y presentamos comparaciones detalladas del rendimiento en tiempo de ejecución de Fortran y C++.

Conclusiones

Nuestra experiencia sugiere que la mayoría de los códigos Fortran 77 se pueden convertir con un esfuerzo menor (medido en días) en comparación con el tiempo de desarrollo original (a menudo medido en años). Con FABLE es posible reutilizar y evolucionar el trabajo heredado en entornos modernos orientados a objetos, de forma portátil y fácil de mantener. FABLE está disponible bajo una licencia de código abierto no restrictiva. En FABLE, el análisis de las fuentes de Fortran está separado de la generación de las fuentes de C++. Por lo tanto, partes de FABLE podrían reutilizarse para otros idiomas de destino.

f2c es realmente el camino a seguir, siempre que tenga el código F77. Si tiene F90 o posterior, f2c no ayudará. He usado f2c muchas veces con gran éxito, siempre y cuando recuerdes el interruptor -a.

Aparte, calificaría a f2c como uno de los mejores códigos de todos los tiempos.

Tienes que tener claro por qué estás haciendo esto. ¿Es porque la funcionalidad que necesita SOLO está disponible en algunos FORTRAN heredados? Tuve este problema hace muchos años cuando necesitaba un algoritmo de inversión de matriz general, que solo estaba disponible en FORTRAN. No fue fácil de entender: no hubo comentarios ni variables nombradas como G(J). Lo convertí a C usando f2c y funcionó perfectamente. Pero era aún más difícil de entender. Dos puntos fueron que FORTRAN cuenta desde 1 y C desde 0, por lo que había muchos i+1 y j-1. También los argumentos tenían que ser implementados por referencia.

Más tarde tuve que ejecutar esto en Java. Todavía no hay otro algoritmo, así que convertí el C a Java. Esto fue realmente doloroso. Y todavía no entendía lo que estaba pasando.

¡Y después de un año o dos dejó de funcionar!

Pero, por suerte, ahora hay varias implementaciones de Java.

Entonces, si puede explicar sus requisitos reales, tal vez podamos ayudarlo. yo esperar que esto no es una tarea, porque si es así (en mi opinión) es mala. Si hay algún código heredado mágico, le sugerimos que se esfuerce al máximo para encontrar un equivalente moderno.

Si eres capaz, eres capaz de dejar un escrito acerca de qué le añadirías a este post.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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