D3.jsのような柔軟なものでリアルタイムに視覚化するために重い数値計算が必要なプロジェクトに取り組んでいます。これを簡単に達成できるフレームワークはありますか?または、Pythonなどで記述された、ある種の「接着」コードを使用する必要がありますか?
あなたが求めているのはC/FortranとJavascriptの間の相互運用です、相互運用は非常に多くの方法で行うことができますが、頭に浮かぶ最も一般的な2つは次のとおりです:
外部機能インターフェース(FFI)バインディングとプロセス間通信(IPC)。
FFIとは、合意された標準プロトコルがコンパイル時にアセンブリに組み込まれ、外国語によるアセンブリ機能へのアクセスを可能にする場所です。さまざまなFFI標準インターフェイスがありますが、インタープリター型言語とコンパイル済み言語とのインターフェイスを可能にするインターフェイスや、その逆のインターフェイスについてはよく知っています。スクリプトはプレーンテキストであり、インターフェイスするアセンブリがないため、この概念はインタープリターの使用に適合しません。
そうは言っても、インタープリターにはFFIアクセスのための機能があるかもしれません。 Node.JSは、おそらくFFIアクセスのための機能を備えたJavaScriptインタープリターとして思い浮かびます。あるいは、Cプログラムを使用して、ChromeのV8エンジンなどのJavaScriptインタープリターをホストし、CがJavaScriptを直接実行できるようにすることもできます。
プロセス間通信(IPC)では、1つの言語でプロセスを実行し、他の言語で他のプロセスを実行し、IPCの形式を使用して2つの言語間で通信します。一般に、これは共有メモリ空間を介して行われ、両方のプロセスがデータをそのメモリ空間に入れ、そこから読み取ってメッセージを送受信できます。 IOのコストのためにオーバーヘッドの高い手法ですが、同じ手法がファイルで使用されることもありますが、どちらかまたは両方のプロセスがクラッシュしたり、マシンが停電したりしても、耐久性があります。
IPCの共有メモリ技術には、いくつかの種類があります。
共有メモリまたはディスク以外に、広く使用されている他のIPC手法は、ネットワーク通信です。ブラウザがWebサイトにアクセスするときはいつでも、別のプロセスと通信しているため、これはIPCであり、このようにしてWebサービスはIPCを達成するための非常に一般的な方法になっています。直接TCPテクニックは、特定のタスクではUDPと同様に引き続き使用されますが、重要なのは、メモリスペースやディスクスペースと同様に、ネットワークがプロセス間の通信層として機能することです。
それで全部です。私はあなたが何かを学んだことを望みます:)
[〜#〜] cgi [〜#〜] と記述して、HTTPサーバーとブラウザに残りの処理を行わせます。
後でさらにパフォーマンスが必要な場合は、 FastCGI に変換できます。
もしあなた(あなたの上司)が、重い運搬を行っているブラウザーがないように見えるようにすることに本当に必死であるなら、WebKitウィジェット(クロスプラットフォーム)を含めるか、MSIEフレームを埋め込む(オールラウンドでより簡単で高速ですが、 Windowsでのみ利用でき、MSIEバージョンで問題が発生する可能性があります)。