2024 年 41 巻 3 号 p. 3_41-3_55
オープンソース・ソフトウェアやプログラミング演習における学生のソースコードなどを対象としたプログラム解析を行うときには,構文規則を必ずしも満たさないソースコードの構文解析や構文木の操作が必要となる.その基盤環境として TEBA を開発し,字句列に対するパターン変換を実現するための中心的なモジュールである RewriteTokens をプログラム解析に利用してきた.しかし,素朴に解析ツールを作ると,爆発的に発生するバックトラックの抑制やモジュールの設計時の見通しの甘さにより書換え規則が複雑化し,可読性や保守性の低下といった問題を招いていた.そこで,これまでの経験に基づき,字句列のパターンに対する新しい適合エンジンを実装し,パターンの記述方法を改善した.その結果,パターンの記述しやすさが大幅に改善され,自然とバックトラックを抑制できるようになった.本論文では,その設計方法を紹介するとともに,最初の設計における失敗原因を議論する.