末尾再帰の最適化
tail call optimization
この節を読むと、なぜloopにできるのかがなんとなくイメージできる 例
Babelで末尾再帰の最適化を行いWhile loopに変換している例 ref 実際のコンパイラの最適化など
Swift、つまりLLVMでの最適化の話
Swift知らなくても読めるはず
ただ単にgotoに変換できない場合の末尾再帰の最適化の例
いくつかのコーナーケースが紹介されていて良い
関連
JSのproposalの一つ
経緯など
参考
コールスタックの具体例もあってわかりやすい
説明に継続みがある