next up previous contents
Next: 複数ファイルでの「記号」の処理 Up: 1.4.5 KLICシステムについてさらにもう少し Previous: 1.4.5 KLICシステムについてさらにもう少し

「記号」の扱い

KL1のプログラムでは「アトム」や「ファンクタ」と呼ばれる「記号」が 数多く使われる. 例えば, 図1.4に示す プログラムでは, foo, bar といったアトム, foo/1というファンクタが用いられている.

  
図 1.4: アトムとファンクタ

これらは目で見た所, 明らかに「文字列」である. しかしながら, これらの記号を内部的にも文字列として扱うことは, 利用するメモリの量や, 速度 (たとえば, 文字列``bar''と, ``bal''が違うことを見るためには, 3文字を1つづつ比較しなければなならない) の面で不利になる. そこで, KLICシステムでは, これらの「記号」は内部的には全て 「番号」で持っている. 例えば, ``foo''であれば104番, ``bar''であれば253番 と内部では変換されているのである. この変換はKLICの出力コードを効率化するため, コンパイル時に 全て行なわれる.

さらにトレースやエラー表示のためには述語の印刷イメージを生成する ための表も必要とする.

KLICシステムで作成されたプログラムはKL1の項を読んだり 書いたりすることができるが, その時にもこの記号 番号の変換が行なわれる. つまり, 項が読み込まれる時には 内部的な番号に置き換えられ, 項を出力する時には, 番号を記号に置き換え, 人間に分かりやすく出力することができる.



next up previous contents
Next: 複数ファイルでの「記号」の処理 Up: 1.4.5 KLICシステムについてさらにもう少し Previous: 1.4.5 KLICシステムについてさらにもう少し



KLIC