研究概要 |
平成17年度の研究では,Webスクリプティング機能を持つ既存のScheme処理系(Gauche)を用い,マクロを用いてLazyな木構造を扱う構文の設計と実装に関して実験を行った. Lazyな木構造の実現法としては,Schemeの遅延評価機能を用いて木構造の後続部分をLazyに生成する手法2種,および継続を用いて木構造生成スレッドと木構造消費スレッドをコルーチンとして動作させる手法を実装し,予備的な評価を行なった.その結果,遅延評価を用いた手法においてメモリ効率を改善するためには,単純な木構造操作プリミティブに替えて,走査済みの部分を早期に解放するイテレータ的な操作プリミティブを用いる手法が有効であることが分かった.また,継続を用いた実装においては,速度的にやや不利であるとの知見が得られた.この成果は情報処理学会第55回プログラミング研究会において「Scheme言語によるXMLデータ処理の効率化」として発表した. Lazyな木構造を扱う構文としては,繰り返し・選言などの正規木表現のサブセットおよび変数の束縛を含む高水準なパターン記述を木オートマトンに変換し,Lazyな木構造に対してパターンマッチを行なう構文をGauche上で設計・実装し,概念を確認するプロトタイプを作成した.この結果,Lazyな木構造をストリーム的に処理する処理系におけるパターンマッチ構文の問題点に関する初期の知見を得ることができた.
|