Project/Area Number |
13780201
|
Research Category |
Grant-in-Aid for Young Scientists (B)
|
Allocation Type | Single-year Grants |
Research Field |
計算機科学
|
Research Institution | Ochanomizu University |
Principal Investigator |
淺井 健一 お茶の水女子大学, 理学部, 助教授 (10262156)
|
Project Period (FY) |
2001 – 2002
|
Project Status |
Completed (Fiscal Year 2002)
|
Budget Amount *help |
¥2,400,000 (Direct Cost: ¥2,400,000)
Fiscal Year 2002: ¥700,000 (Direct Cost: ¥700,000)
Fiscal Year 2001: ¥1,700,000 (Direct Cost: ¥1,700,000)
|
Keywords | 自己反映言語 / 型 / 部分評価 / インタプリタ / コンパイラ / 関数型言語 |
Research Abstract |
前年度には、型のある言語(OCam1)で実装されてはいるが、その型はユーザには見えていないような自己反映言語を作成した。本年度は、このシステムをユーザから型が見えており、かつ変更ができるようにするべく研究を進めた。しかし、結論から書くと、変更可能とするには本質的な問題があり、難しいことがわかった。以下、その概要を述べる。 インタプリタ中の関数に(型も含めて)アクセスするためには、まずインタプリタを構成する関数の型をユーザから見えるデータ型で表現する必要がある。これには普通通り、OCam1のデータ型を使用することで対応できる。次に、このように表現された型を持つインタプリタ中の関数にアクセスしようと思うと、ユーザから見えるデータ型をインタプリタ中で実際に使われている型に変換してやる必要がある。しかし、この変換は現在の関数型言語では不可能である。というのは、この変換の型は、ユーザから見えるデータ型を受け取ってきて、それが表す型を返すことになり、返り値の型が定まらないからである。この問題は、依存型などのより複雑な型を使えば可能と予想されるが、依存型はまだまだ研究段階である。 一般的な解は現在のところ難しいことがわかったが、このインタプリタに現れる関数のみを扱えるような限定的なシステムなら構築できそうな感触を得た。一般的に、ユーザから見えるデータ型をインタプリタ中で使われている型に変換するのではなく、このインタプリタに現れる関数全てについてのみ、あらかじめその対応する型を登録しておけば、型変換の困難は回避できる。しかし、これでは関数やその型を見ることはできても変更することはできず、当初の目的であった型システムの変更には結び付きそうにはなく、実用性は疑問である。
|
Report
(2 results)
Research Products
(2 results)