HCl version 1.6 の機能的な制約について
HCl は最終的にはCLのスーパーセットになる予定です。しかし現在のところ、
時間的な制約とマンパワーの限界から一部の関数が不完全です。
  -  make-array,adjust-array
- 
	      element-typeとして意味があるのはstring-char,(integer 0 255),bit,tであり、
	      それ以外のタイプは全てtにまとめられます。また、arrayのrankは6まで
	      に制限されます。
-  open
- 
	    openは:direction引数として:ioをサポートしていません。
-  エラー処理に関して
- 
	    CLではimportなどの関数でcorrectable errorを出すように定められて
	   いますがHCl ではほとんどの場合、fatal errorで処理しています。
 現在、formatの一部が不完全ですが、これらを
ユーザーレベルで再定義するために必要な内部情報、関数は既に組み込まれ
ています。formatは全体がHCl 自身で書かれていて、fmtlib1-6.lspがソース
であり、これを見ると新しいフォーマットの定義のしかたがわかります。
HCl はCLの全データタイプをサポートします。しかし、一部のオブジェクトは
多少制限されたものとなっています。
-  integer
- 
	    fixnumは24bit表現です。
-  float
- 
	    実際にインプリメントされている型は64bitIEEE形式(double)であり、
	    short,single,longは全てこの型にまとめられています(*)。
-  character
- 
	    string-charは8bitASCIIとする。attributeteビットは持たないこと
	    とします(*)。
-  simple-array
- 
	    simple-arrayとして意味があるのは
	
	      -  simple-vector -> (simple-array t (*))- 
	      -  simple-string -> (simple-array string-char (*))- 
	      -  simple-bit-vector -> (simple-array bit (*))- 
	      -  (simple-array (integer 0 255) (*)) 
	
 です。これらは固有の内部表現を持ち、効率的なアクセスが可能です。
-  pathname
- 
	      pathnameを取り扱う関数において実際に意味のあるのは
	      directory,name,typeの3スロットであり、他(host,device,version)は
	      仮にセットしてもファイルアクセス時には無視されます。
(*)
	CLtL
	では一つ以上のfloatの型が実装されていれば良いとされています
(*)
CLtLではcharacterのattribute,controlは持たなくとも良いとされています
- Guy L. Steele Jr.
 Common Lisp the Language
 Digital Press, 1984
- 山本他
 HCLの開発と視角的動作モニタ方式の提案
 情報処理学会記号処理研究会資料 88-SYM-48, 1988
- 山本他
 HCL上のPortable Common Loopsのインプリメントと高速化技法
 電子情報通信学会計算機アーキテクチャ研究会報告 77-8, 1989
- 山本他
 小型Common Lisp処理系のための記憶領域管理法とその実現
 情報処理学会論文誌,Vol.31,No.7,1990
- 山本他
 パーソナル数式処理--Lisp68Kの開発とREDUCEの移植
 bit,共立出版, 1985年3月
- 山本他
 項書換え系を用いたCommon Lispコードの最適化
 平成元年度電気関係学会北海道支部連合大会
- 山本他
 MC88100版HCl の開発と評価
 平成2年度電気関係学会北海道支部連合大会
もくじ