1

コンパイラの実装で制御コンテナの反転を実際に使用した人はいますか? 設計上、コンパイラは非常に高速である必要があることはわかっていますが、IoC/DI がプログラミング言語の構築にどのように影響するかについて常に興味を持っていました。ホットスワップ可能な構文です。

4

3 に答える 3

1

Lisp スタイルの言語はしばしばこれを行います。リーダー マクロは、言語のリーダー (したがって構文) を拡張するユーザー作成コードの断片です。従来のマクロは、言語を拡張するユーザー作成コードの断片です。

構文全体はホットスワップ可能ではありませんが、特定の部分はさまざまな方法で拡張できます。

これはすべて新しいアイデアではありません。3 文字の頭字語に値すると見なされる前は、IoC は「遅延バインディング」として知られており、良いアイデアとしてかなり同意されていました。

于 2009-02-10T16:13:24.447 に答える
0

LR(k) 文法は通常、テーブル (action-goto/shift-reduce テーブル) によって駆動される汎用パーサー システムを使用するため、これらのテーブルを生成し、入力を解析できる汎用パーサー システムに供給するテーブル ジェネレーター ツールを使用します。テーブルを使用して。一般に、これらのパーサー システムは、非終端記号が削減されたことを通知します。たとえば、無料の GoldParser システムを参照してください。

于 2008-12-18T08:11:56.807 に答える
-3

コンパイラにとっては自然なことなので、これを制御の反転とは呼びません。これらは通常、入力言語のコードを出力言語のコードに変換する一連のパスです。もちろん、別のパスでスワップすることもできます (たとえば、gcc は別のフロントエンドを使用して複数の言語をコンパイルします)。

于 2008-12-18T08:34:46.293 に答える