第 237 回 PTT のお知らせ


日時: 1998年3月12日 (木) 18:30 から
場所: 津田塾大学 新館3F談話会室
西武国分寺線 鷹の台下車、玉川上水沿いに府中街道方面へ歩いて下さい。府
中街道に出たら大学正門前の信号が見えるので、正門から入って下さい。本館
の奥にある建物の3階です。

話者:Mule上で動く、構文エラー訂正支援システム
題目:阿部恵美子,佐野ちひろ,小川貴英(津田塾大学)
概要:
初心者のエラーログを解析し、エラー訂正がどの程度可能かを調べてみた。そ
の結果をもとに作成した訂正情報を生成するパーザと、このパーザを利用した 
mule上のユーザインターフェイスについて報告する。


第 237 回 PTTメモ


日時: 1998年3月12日 (木) 18:30 から
場所: 津田塾大学 新館3F談話会室
題目: Mule上で動く、構文エラー訂正支援システム
話者: 阿部恵美子,佐野ちひろ,小川貴英(津田塾大学)
出席者: 鈴木貢, 石井清貴, 村山慎也, 角田博保, 前田敦司, 山内斉, 中村嘉志, 山田雄一郎(電通大), 鈴木悦子(津田塾大), 下國治(富士通研), 石畑清(明大), 早川栄一, 並木美太郎(農工大), 寺田実, 丸山一貴, 田中哲朗(東大)
質疑応答: 初心者がC言語プログラミングを行うとき、エラーメッセージを見てもプログ ラムのどこをどう直せば良いのか分からないで戸惑うことが多い。そこで、プ ログラムのエラーに対して訂正方法が提示できるシステムを試作した。

1年生のCプログラミングの授業からコンパイルログをとった結果、parse error と undefined symbol によるエラーが約6割に上ることが分かったので、 とりあえずこの2つのエラーを扱っている。

このシステムは、訂正方法を出力するパーズ部と、ユーザーインターフェース 部から成る。

パーズ部では、LALR(1)を行っているが、LALR(1)ではできない部分とカッコ対 応をカバーするために大まかに構成を把握するための処理も行っている。 undefined symbol に対応するため、名前表の作成も行っている。

エラー訂正の方法としては、構文解析時にエラーが出た時点で終端記号の追加、 置き換え、削除の3つの操作で、コンパイルエラーがなくなる訂正方法を、し らみつぶしで探している。

ユーザーインターフェース部では、Emacs-Lispを用いて実現しており、ユーザー はインタラクティブに作業を進めていくことができる。また、使いやすさを考 えて色を付けて表示するなどの工夫をした。

Q. システムが学習していくようになっているか?
A. なっていません。
Q. 大きいプログラムでカッコ対応の表示をする場合の表示はどうするのか?
A. 今のシステムでは、この問題の対応はしていませんが、バッファ を2つに割ってカッコの始まりと終りが見えるようにしようと思って います。
Q. 例えば ifdef のようなプログラムに対しては、どうしているのか?
A. このシステムは、初心者のためのものなので、そういったたぐい のものは組み込まれていません。 この他にもいくつか改善の提案もいただきました。