研究課題/領域番号 |
13780201
|
研究種目 |
若手研究(B)
|
配分区分 | 補助金 |
研究分野 |
計算機科学
|
研究機関 | お茶の水女子大学 |
研究代表者 |
淺井 健一 お茶の水女子大学, 理学部, 助教授 (10262156)
|
研究期間 (年度) |
2001 – 2002
|
研究課題ステータス |
完了 (2002年度)
|
配分額 *注記 |
2,400千円 (直接経費: 2,400千円)
2002年度: 700千円 (直接経費: 700千円)
2001年度: 1,700千円 (直接経費: 1,700千円)
|
キーワード | 自己反映言語 / 型 / 部分評価 / インタプリタ / コンパイラ / 関数型言語 |
研究概要 |
前年度には、型のある言語(OCam1)で実装されてはいるが、その型はユーザには見えていないような自己反映言語を作成した。本年度は、このシステムをユーザから型が見えており、かつ変更ができるようにするべく研究を進めた。しかし、結論から書くと、変更可能とするには本質的な問題があり、難しいことがわかった。以下、その概要を述べる。 インタプリタ中の関数に(型も含めて)アクセスするためには、まずインタプリタを構成する関数の型をユーザから見えるデータ型で表現する必要がある。これには普通通り、OCam1のデータ型を使用することで対応できる。次に、このように表現された型を持つインタプリタ中の関数にアクセスしようと思うと、ユーザから見えるデータ型をインタプリタ中で実際に使われている型に変換してやる必要がある。しかし、この変換は現在の関数型言語では不可能である。というのは、この変換の型は、ユーザから見えるデータ型を受け取ってきて、それが表す型を返すことになり、返り値の型が定まらないからである。この問題は、依存型などのより複雑な型を使えば可能と予想されるが、依存型はまだまだ研究段階である。 一般的な解は現在のところ難しいことがわかったが、このインタプリタに現れる関数のみを扱えるような限定的なシステムなら構築できそうな感触を得た。一般的に、ユーザから見えるデータ型をインタプリタ中で使われている型に変換するのではなく、このインタプリタに現れる関数全てについてのみ、あらかじめその対応する型を登録しておけば、型変換の困難は回避できる。しかし、これでは関数やその型を見ることはできても変更することはできず、当初の目的であった型システムの変更には結び付きそうにはなく、実用性は疑問である。
|