Nikhil Kothari のScript#は、かなり長い間 JavaScript の分野で目にした中で最も驚くべき概念の 1 つです。この質問は JavaScript に関するものではなく、.NET ランタイムでの言語のコンパイルに関するものです。
私は、.NET プラットフォームを使用して、元のコンパイラが出力を生成できるようにしながら、元のコンパイラから別の出力を生成するコンパイラ (C# など) を既に持っている言語用のコンパイラを作成する方法にかなり興味を持っていました。他のコンパイラの出力も参照/使用している間、同じビルド操作中に同じソース。
正しい詳細を質問するのに十分なほどプロセスを理解しているかどうかは完全にはわかりませんが、Script# ドキュメントの図に従って、これが現在のプロセスの見方です。私は、このような概念を利用できる可能性のある複雑な言語設計とコンパイルを含む多くのことについて考えてきました。また、他の人がその概念についてどう考えているかに興味があります。
--
編集:これまでにコメントしていただきありがとうございます。あなたの情報は、それ自体が非常に興味深いものであり、もっと調査したいのですが、私の質問は、実際には、同じソースで同時に実行できる独自のコンパイラをどのように作成できるかについてですCLR を使用して、複数の異なるタイプの (潜在的に) 相互に依存する出力を生成します。Script# は、同じ C# ソースを使用して JavaScript とアセンブリを生成し、コンパイルされたアセンブリを JavaScript と連携させるため、例として役立ちます。この性質のものを設計する際に、さまざまなアプローチと理論的概念がどのようなものであるかに興味があります。