@phdthesis{oai:tsukuba.repo.nii.ac.jp:00008724, author = {中井, 央 and Nakai, Hisashi}, month = {}, note = {ソフトウエアの生産性を高めるための解決策として、本論文では、2つのことについて述べている。1つは迅速な再解析を行うインクリメンタルな再解析法についてであり、もう1つは、コンパイラによるエラーの適切な処理についてである。 インクリメンタルな再解析は変更された箇所から影響を受ける範囲のみを再解析の対象とする。従来、インクリメンタルな再解析については色々と研究されてきた。しかし、従来の研究では、1)エラーが存在した場合のこと、2)1パスで属性評価を行う場合のこと、の二点についてはほとんど論じられていない。 本論文では、この二点を考慮に入れ、1パス属性文法であるLR属性文法に基づいたインクリメンタルな属性評価法について述べている。インクリメンタルな解析では、再解析のための情報として解析木を用いるが、エラーが存在した場合には、それまでに解析された情報である部分木を再利用することが考えられる。このことは、エラーが存在しない場合にも効率に寄与する。本論文では、このような部分木を再利用するインクリメンタルな解析法を提案し、その方法をもとにインクリメンタルな属性評価器生成系を作成し、それによって生成されたPascal-S言語のインクリメンタルな解析器による評価について述べている。実験の結果は、インクリメンタルな再解析を行うほとんどの場合には、通常の方法による全体の再解析に比べ、その1/10以下の実行時間で再解析を終了する。また、さらに再解析のための情報を解析木で保存することは空間的に効率がよくないため、解析木での情報の保存に比べ、約1/3の記憶容量ですむような方法を提案している。 次にコンパイラによる適切なエラー処理に関して、ユーザと対話的に構文エラーの修正を行うコンパイラ(本論文ではインタラクティブなコンパイラと呼ぶ)の試作について述べている。このコンパイラはできる限り、修正の候補をユーザに示し、ユーザがそれらから正しいものを選ぶ形式をとった。この方式により、エラーによる解析の中断後、修正によって解析を続行し、最後には正しいコードを出力することができる。すなわち、全体の再解析を避けることができる。 多くのエラーはその発見箇所を修正すれば良いが、必ずしもそうでない場合がある。この論文ではこのための機能として、先に述べているインクリメンタルな解析法を利用することができることを示唆している。, 1997}, school = {筑波大学, University of Tsukuba}, title = {コンパイラにおけるインクリメンタルな解析法}, year = {1997} }