将Fortran f77代码转换/转换为C或Matlab / Octave

时间:2014-03-21 18:20:22

标签: matlab fortran octave translate fortran77

我有一段旧的Fortran f77代码,我想了解和编辑以备将来重用。为此,我希望将此代码转换为C或Matlab / Octave语言。我在网上发现了一个f2c exe的实例,但由于操作系统不合适而无法运行(我的操作系统是Win 7 x64,f2c需要较旧的x32)。

我主要担心的是能够理解代码。执行效率方面的翻译并不重要。除了学习Fortran 77之外,我对任何建议持开放态度。我自己也知道这个选项,但只会作为最后的手段。谢谢。

2 个答案:

答案 0 :(得分:3)

学习Fortran。机器翻译代码的输出可能在功能上是正确的,适合编译和执行,但它很难理解和维护。 (看看针对单一语言的生成代码是什么,比如GUI构建器向导的输出,看起来像。)特别是,虽然Matlab是在Fortran上构建的,但它在M代码级别的习语是不同的,它将是相当难以理解。如果您已经了解C或任何其他类似Algol的语言,那么选择Fortran并不是那么难。而Fortran特有的习语和特征 - 也就是你必须学习的新东西 - 在通过翻译发送时可能会特别奇怪和难以理解。

可能实际有用的一个翻译是Fortran 77 - > Fortran 90翻译。现代的90方言更容易学习,更简洁,而且由于翻译属于同一个语系,输出可能不会太难看。

答案 1 :(得分:2)

由于使用Octave,您可以调用Fortran代码,无需重写它。你需要为它编写一个非常简单的C ++包装器,但Octave已经提供了宏来完成所有的艰苦工作。它全部记录在manual上。实际上,Octave本身需要许多fortran子程序,所以这是完全正常的。

如果你想修改它,你应该学习Fortran。