10

fromスタックレス言語はどのように機能しますか?

Haskell (as commonly implemented) does not have a call stack; 
evaluation is based on graph reduction.

本当に?興味深いことに、私自身は経験したことがありませんが、フォールド関数の厳密なバージョンを使用せずに無限フォールドの評価を強制すると、スタック オーバーフローが発生することを読んだことがあります。確かに、それはスタックの存在を示しています。誰でも明確にできますか?

4

2 に答える 2

1

Haskell は「スタックレス」などではありません。Haskell ソースから生成されたコードにはまだ何らかのシンボルがあり、実行するといくつかのスタック トレースが表示されますが、それらはソース コードと非常に緩やかに関連しています。デバッグ/トレース/プロファイリングを簡素化する試みに関する情報を次に示します。

http://www.haskell.org/wikiupload/9/9f/HIW2011-Talk-Marlow.pdf

于 2011-11-17T14:16:11.257 に答える