私はしばらくイテレータを使用しており、気に入っています。
しかし、よく考えてみたものの、「イテレータを認識するコンパイラ」の実装方法がわかりませんでした。私もそれについて調査しましたが、コンパイラ設計のコンテキストで状況を説明するリソースを見つけることができませんでした。
詳しく言うと、イテレータに関する記事のほとんどは、目的の動作を実装するある種の「魔法」があることを暗示しています。彼らは、実行がどこにあるか(最後の「yield return」が見られる場所)に従うために、コンパイラがステートマシンを維持することを示唆しています。私は、遅延評価を可能にする Iterator のこのプロパティに特に興味があります。
ところで、私はステート マシンが何であるかを知っており、既にコンパイラの設計コースを受講しており、Dragon Book を研究しています。しかしどうやら、私が研究したことを csc の「魔法」と関連付けることはできないようです。
知識や差別的な考えは大歓迎です。