2

しばらく前に、コードを処理するアルゴリズムに取り組んでおり、リフレクション API が必要でした。複数の言語での実装に関心がありましたが、ある言語のリフレクション API は他の言語では機能しません。すべての言語、またはいくつかの主流言語 (.NET、Java、Ruby、Python) で機能する「ユニバーサル リフレクション API」のようなものはありますか?

ない場合、異なる言語のクラスを処理できるようなものを構築することは可能ですか?

複数の言語からのオブジェクト指向コードを処理するための統一された方法を持つにはどうすればよいですか?

4

4 に答える 4

1

リフレクションAPIは、コード用に生成されたメタデータに依存するため、JVM上のすべての言語、またはCLR上のすべての言語に対応するユニバーサルAPIを使用できますが、Pythonを実行するAPIを作成することは実際には不可能です。 Java、VBなど...

于 2008-09-28T14:04:44.893 に答える
1

.NETにはCodeDOMがあります。これは、ユニバーサル構文ツリーを生成し、それを(C#、VB .NETなど)コードとしてシリアル化および/またはコンパイルする方法を提供します。もちろん、これはReflectionの鏡像ですが、誰かがILから直接ASTを生成するツールを作成した場合、機能が重複し始める可能性があります。

いずれにせよ、私が考えることができる最も近いものです。

于 2008-09-28T09:59:48.557 に答える
1

普遍的な Reflection API があるとは思えません。すべての Reflection API は、コンパイラが言語構造用に生成するメタデータに依存しており、複数の言語に共通のサブセットがある場合でも、これらは言語ごとに大きく異なる可能性があります。

于 2008-09-28T09:38:35.050 に答える
0

ユニバーサル API が必要な場合は、言語の外に出る必要があります。任意の言語を処理するためのDMS メタツールを参照し、リフレクションと思われるものを含め、任意の質問に答えてください。(Op は、さまざまな言語のサポートを求めました。DMS には、C#、VB.net、Java、および Python 用の完全なパーサーがあります。Ruby はまだリストにありません。現在取り組んでいます)。

于 2011-09-08T05:10:27.420 に答える