本年度はリアルタイム型エラーデバッグに必要と考えられる3つの基盤技術のうち、「リアルタイム構文解析」について行った。プログラムの区切りとなるキーワードの少ない言語では既存のリアルタイムな構文解析手法を使用できないため、プログラムの構造を用いてリアルタイム構文解析するという本研究のアイデアは試作段階では上手く動いている。現在、実用化に向けたユーザテストを目指し、実装の拡張を行っている。 現在の試作段階で、幾つかの検討すべき事項が明らかになった。まず一つ目は、プログラムが入力されている時、どのようなタイミングで解析を行うのが妥当かという実用化の面での課題である。実際にリアルタイムで使用されるためには、処理の重さとの費用対効果が重要になるため、今後のユーザテストによって良いバランスを見つけるべきであるという結論に至った。こちらは実装の拡張が終わり次第、幅広くユーザテストを行い、経験則としての構文解析の良いタイミングを検討する。二つ目はスコープの問題をどう扱うかである。具体的には、本研究では部分的な構文解析を行うため、変数の束縛情報をどのように正しく保つかが問題になる。こちらは実装前から検討されていたが、試作の簡易なテストによってより難しい問題だと判明した。最大限に可能な限り構文解析を行うためには、言語それぞれの構文及び構文解析に踏み込んだ実装にする必要がある。これは本研究のコンセプトである「既存のコンパイラの構文解析器を使用した軽量手法」と不両立であるため、現在どちらを取るかの検討を行っている。
|