簡體   English   中英

將Fortran f77代碼轉換/翻譯為C或Matlab / Octave

[英]Convert / translate Fortran f77 code to C or Matlab / Octave

我有一段Fortran f77舊代碼,我想對其進行理解和編輯以備將來使用。 為此,我希望將此代碼翻譯為C或Matlab / Octave語言。 我在網上找到了f2c exe實例,但是由於操作系統不正確而無法運行(我的操作系統是Win 7 x64,f2c需要較早的x32)。

我主要關心的是能夠理解代碼。 就執行效率而言,翻譯並不重要。 除了學習Fortran 77外,我也樂於接受任何建議。我本人也知道該選項,但只有在萬不得已時才這樣做。 謝謝。

只需學習Fortran。 機器翻譯的代碼的輸出可能在功能上正確無誤,適合編譯和執行,但實際上很難理解和維護。 (只需看看針對一種語言生成的代碼,如GUI構建器向導的輸出,就可以看到。)特別是,盡管Matlab是基於Fortran構建的,但其在M代碼級別的慣用法卻相差甚遠。相當不可理解。 如果您已經知道C或任何其他類似Algol的語言,那么開始使用Fortran並不難。 Fortran特有的成語和功能(即,您必須學習的新知識)在通過翻譯程序發送時可能會變得特別怪異和難以理解。

一個實際上可能有用的翻譯器是Fortran 77-> Fortran 90翻譯器。 現代的90年代方言更容易學習,也更簡潔,而且由於翻譯是在同一語言家族中進行的,因此輸出可能不會太難看。

由於使用的是Octave,因此可以調用Fortran代碼,因此無需重寫它。 您將需要為其編寫一個非常簡單的C ++包裝器,但是Octave已經提供了宏來完成所有艱苦的工作。 全部記錄在手冊中 實際上,Octave本身會調用許多fortran子例程,因此這完全正常。

如果要修改它,則應該學習Fortran。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM