SICPを読み進める上での個人的なメモ。
気になった部分の引用
3.モジュール性、オブジェクト、状態
この章では、システムの構造に対する二つのかなり異なった“世界観”から浮かび上がってくる、二つの顕著な組織化戦略について調べていきます。
一つ目の組織化戦略は オブジェクト (object) に集中するもので、はっきり分かれたオブジェクトの集合として大きなシステムを捉え、それらのオブジェクトの ふるまいは時間とともに変化するとします。
もうひとつの組織化戦略は、システムを流れる 情報のストリーム (stream) に集中するというものです。これは、 電子技術者が信号処理システムを見るのと同じやり方です。
3.1 代入と局所状態
オブジェクトのふるまいがその過去に影響されるとき、そのオブジェクトは“状態を持つ”と言います。
オブジェクトの状態は、ひとつ以上の 状態変数(state variable) によって特徴づけることができます。状態変数は、オブジェクトの現在のふるまいを決めるのに十分な履歴情報を保持します。単純な銀行システムでは、口座の取引履歴全体を記憶するのではなく、現在の残高によって特徴づけることができるでしょう。
それぞれの計算オブジェクトは、実際のオブジェクトの状態を表す局所状態変数 (local state variable) を持たなければなりません。モデル化対象のシステムに存在するオブジェクトの状態は時間とともに変化するので、それらに対応する計算オブジェクトの状態変数も同じく変化しなければなりません。もしシステム内での時間の流れをコンピュータ内での経過時間としてモデル化することにするなら、プログラムの実行に伴ってふるまいの変わる計算オブジェクトを構築する方法が必要です。具体的には、もし状態変数をプログラミング言語の通常の記号名によってモデル化したいならば、プログラミング言語は 代入演算子 (assignment operator) を提供し、名前に関連づけられた値を変化させるこ とができなければなりません。