• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to previous page

自己反映言語への型の導入

Research Project

Project/Area Number 13780201
Research Category

Grant-in-Aid for Young Scientists (B)

Allocation TypeSingle-year Grants
Research Field 計算機科学
Research InstitutionOchanomizu 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)
  • 2002 Annual Research Report
  • 2001 Annual Research Report
  • Research Products

    (2 results)

All Other

All Publications (2 results)

  • [Publications] Kenichi Asai: "Online Partial Evaluation for Shift and Reset"Partial Evaluation and Semantics-Based Program Manipulation (PEPM'02). 19-30 (2002)

    • Related Report
      2002 Annual Research Report
  • [Publications] Kenichi Asai: "Online Partial Evaluation for Shift and Reset"Partial Evaluation and Semantics-Based Program manipulation (PEPM102). 19-30 (2002)

    • Related Report
      2001 Annual Research Report

URL: 

Published: 2001-04-01   Modified: 2016-04-21  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi