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年度電気関係学会北海道支部連合大会
もくじ