SICP 1.2
1.2 手続きとその生成するプロセス
1.2.1
再帰的プロセス(recursive process)と反復的プロセス(iterative process)
手続きの定義の中で自分自身を再帰的に呼び出していく。
SICPで勉強を始めた時(=ソフトウェアの仕事を始めたばかりの頃)、最も関心したのがこの部分。
インタプリタが保持すべき情報量のオーダーがO(1)なのかO(n)なのか。
反復プロセスの場合、常に一定の記憶量でループを処理する事が可能。
C,Pascal等では反復的プロセスを行いたくとも、再帰呼び出しの際に
スタックを次々消費していくよう設計されている。
反復プロセスにはfor,while等の特殊なループ構造が必要。
また、Schemeの実装は末尾再帰的(固定記憶領域で再帰呼び出しが可能な性質)である事が
IEEE企画で定められている。
1.2.3
計算量(O(n))の話
1.2.5 / 1.2.6
若干数学寄りの話なので略