OCaml での GUI プログラミングに関係するスレッドをいくつか見たことがありますが、GUI インターフェースが必要な場合に明確な解決策につながるとは思えません。
私の質問は、より具体的には次のとおりです: OCaml ソフトウェアの GUI をプログラミングする上で最も効果的な (そして簡単に理解できる) アプローチは何ですか? OCaml自体のシンプルで効果的なGUIモジュールに触れた人はいますか、またはこれを行うことができ、OCamlとうまく通信/再生する効果的な言語またはフリーソフトウェアパッケージを見つけましたか?
私はOCamlでインタープリターを書いたので、レクサー、パーサー、コアインタープリター関数などはOCamlモジュールです。現在、コマンドラインに式を入力し、解析された表現や簡約された式などを示す印刷された端末出力を受け取ることで、ユーザーがインタープリターと対話できるようにするコマンドラインソリューション (「main.ml」) があります。ただし、コマンド ライン ソリューションは、テストのみを目的としています。ユーザーが GUI を介してやり取りできるようにしたいのですが、それは単純である可能性があります (Java フレームは何十年も前から思い浮かびます) が、私がコーディングした OCaml モジュールと何らかの形でインターフェースする必要があります。私がこれまでに見つけた OCaml には、 http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual042.htmlというライブラリが 1 つあります。これが効果的で有用かどうかは誰にもわかりませんか?(私は思う
より最適な言語で GUI をプログラミングすることを選択した場合、ソフトウェアの相互作用は次のようになります: 適切な言語 (おそらく C++、Python など) で GUI を記述し、OCaml で記述されたインタープリターを実行可能ファイルにコンパイルし、GUI を何らかの方法で接続します。実行可能ファイル?私は、パイプ(オペレーティングシステムの設計に関係するものなど、これらのプロセス間通信を考え続けています)またはソケット(ネットワークプログラミングのためにこれらを考える傾向があります)を介した、疎に接続されたまたは奇妙なソリューションには興味がありません。 OCaml自体ではないにしても、OCamlでコード化されたインタープリターを別の言語のGUIコードに「収容」する方法が必要だと想像してください。考え、ガイダンス、または提案はありますか?
編集: Linux ライクなオペレーティング システム (つまり、Linux RedHat) 用の GUI を入手できれば幸いです。GUI を Windows で動作させることができれば素晴らしいことですが、少なくとも Linux を目指しています。
編集 2: これを見つけたところですが、「OCaml-Java」について考えている人はいますか? http://ocamljava.x9c.fr/ 「... ocamlc を使用してコンパイルされた Objective Caml ソースを実行する機能。次に、Objective Caml ソースを実行可能な jar ファイルにコンパイルする機能." 私の懸念は、すばやく便利な GUI を手に入れるには Java が最善の方法であるとは思いもしなかったことです...
現在の解決策: @Jeffrey Scofield が下に置いた解決策の投稿でさまざまなオプションを調べた後、私は現在、LablGtk をより深く調べることにしました (これにより、OCaml 内にとどまることができます)。C と OCaml はすでに関係を持っているため、この投稿を見ている人にとって次の有望なオプションは、C との外国語インターフェイスを調べることです。OCaml 内で C コードを呼び出す方法と、C 内で OCaml を呼び出す方法があるようです (ただし、呼び出し元の関数のタイプにより固有のやや複雑なラッパー関数で OCaml 関数呼び出しをラップすることになるため、これは非常に難しい場合があります)。 OCaml 内-->つまり、C 内で各 OCaml 関数とその引数の「マッピング」を処理する必要があります)。を見てみましょう: http://www.mega-nerd.com/erikd/Blog/CodeHacking/Ocaml/calling_ocaml.html、詳細については。OCaml-Java は当初、私が Java GUI プログラミングに慣れていたので、素晴らしいアイデアのように思えましたが、2 つの言語間の対話は C と OCaml ほど直接的ではなく、さらに、これに関するドキュメントはスリムに見えました (そして OCaml を使用) -Java は、ただ手に取って Java GUI にたどり着くものではありませんでした...)。OCaml-JavaScript は面白そうに見えましたが、この方法を選択した場合、いくつかの JavaScript に加えて、適切な HTML 5 コーディングのセットアップに時間を費やす必要があることに注意してください。または、ここ SO には、GUI バックエンド システムを作成する有効な方法であるパイプとソケットについて説明している投稿がいくつかあります。ただし、プログラムシステム/製品が「疎結合」になることを気にしない場合は、これは良い考えです。