私はこの問題を抱えています。私はインタプリタを書いてから、FortranをJavascriptに変換するTranspilerを書いた。しかし、たびに、私は変数の参照渡しの問題に立ち往生した。FortranをJavascriptに変換する
Fortranで知っているように、参照渡しと値渡しの構文は異なりますが、すべて同じように見えます。しかし、Javascriptでの参照渡しは、変数がObjectで渡された場合にのみ機能します。
Fortranのコード例:
REAL FUNCTION PYTHAGORAS (A,B,K)
REAL A,B,K
K = 12 // E <=> K in GEOMETRIE()
PYTHAGORAS = SQRT(A**2+B**2)
END FUNCTION PYTHAGORAS
LOGICAL FUNCTION GEOMETRIE (H,B,D)
REAL H,B,D,E
B = 12
H = 7
// E is pass by reference, it's gonna be changed in PYTHAGORAS()
D = PYTHAGORAS(B, H, E)
GEOMETRIE = .TRUE.
END FUNCTION GEOMETRIE
私は多くの研究をしましたが、今までは、私は、任意の有用な結果を見つけることができませんでした。
ジョブ(クライアント側/ NodeJS)を実行するライブラリがあれば、私は不思議に思っていました。私は今まで、誰もこの問題を以前に失うことを試みたことは想像できません。
怠惰なハックを体系的にJSオブジェクトに関数に渡された変数を埋め込むことであろう
あり、現代のFortranに値渡しですが、それはここでは重要ではありません。変数をリストに渡すことはできませんか? Emscriptenを見たことがありますか?ここでは図書館のことを話題にしています。 –
もちろんFortranには値渡しがあります。この例ではPYTHAGORAS(B、H、E)_ // BとHの呼び出しは値渡しですが、Eは参照渡しです。 Emscriptenは知っていますが、まだ試していません。 FortranをC++に変換してからJavascriptに変換する方がより複雑になると思います。 – Kamal
いいえ、そうではありません。すべて参照渡しです。値渡しするには、Fortran 2003で導入された 'VALUE'キーワードを使用する必要があります。 –