データ型

他のLispと同様に、型の決まったデータオブジェクトは変数ではない。 どの変数もその値として、どんなオブジェクトも持つことができる。 変数にオブジェクトの型を宣言することが可能であるが、 一般的にコンパイラで高速なコードを生成するための情報としてのみ 使用される。 数値は、ポインタの中で直接値として表現され、 そのほかは、ポインタにより参照されるオブジェクトにより表現される。 Sun4で実行する場合、ポインタおよび数値は図[*]で描かれているように long wordで表現される。 ポインタのLSBの2ビットは、ポインタ・integer・floatを識別するための tagビットとして使用されている。 ポインタはtagビットが全てゼロであり、オブジェクトのアドレスとして32ビット全て 使用できるので、EusLispは4GB以上のアドレス空間を利用することができる。

Figure: ポインタと直接値
\begin{figure}\begin{center}
\epsfile{file=fig/pointer.ps}
\end{center}
\end{figure}



Subsections

2016-04-05