記憶装置

パステルステッチのインタープリターは「記憶装置」を持ちます。記憶装置はコンピューターのメインメモリーを抽象化したものです。記憶装置はアドレスを指定して値を読み書きすることができます。記憶装置のアドレスはベクトルを使用します。記憶装置にはパステルステッチの任意の値を書き込むことができます。

記憶装置に書き込むにはプリミティブ演算 write を使用します。プリミティブ演算 write は引数 to と value をとります。引数 to にはベクトルを与える必要があります。引数 value には任意の値を指定できます。また、プリミティブ演算 write で書き込んだ値はプリミティブ演算 erase で消去することができます。プリミティブ演算 erase の引数にベクトルを与えると、記憶装置の指定されたアドレスの値を消去します。

読み出し演算で、他に優先順位の高い引数解決の要因がなければ、記憶装置からの読み出しが行われます。読み出し演算の述語が記憶装置のアドレスとして使われ、読み出し演算の引数は無視されます。

引数解決の影響を受けずに記憶装置から読み出すにはプリミティブ演算 read storage を使用します。プリミティブ演算 read storage の引数にベクトルを与えると、記憶装置の指定されたアドレスの値を読み出します。記憶装置の指定されたアドレスに値が記憶されていない場合には、プリミティブ演算 read storage の戻り値は論理型の false になります。

記憶装置の指定されたアドレスに値が記憶されているか調べるにはプリミティブ演算 full を使用します。プリミティブ演算 full の引数にベクトルを与えると、記憶装置の指定されたアドレスに値が記憶されているか調べます。その結果、何らかの値が記憶されていれば論理型の true、そうでなければ false が戻り値になります。また、プリミティブ演算 full の引数は main の他に volume も使用できます。引数 volume に有名ベクトル proceduremain または primitivemain を与えると、それぞれ、引数 main で指定されたベクトルに対応するサブルーチンまたはプリミティブ演算が存在するかどうか調べます。引数 volume に有名ベクトル storagemain を指定した場合は、引数 volume を省略した場合と同じく、記憶装置の指定されたアドレスに値が記憶されているか調べます。