When the compiler encounters an error symbol in an erroneous input, the local error repair method repairs the input by either inserting a repair string before the error symbol or deleting the error symbol. Although the extended FMQ of Fischer et al. and the method of McKenzie et al. report the improved quality of diagnostic messages, they suffer from redundant parse stack configurations. This thesis proposes an efficient LR error recovery method, with validation removing repairs that give the same validation result as a previously considered lower-cost repair. Moreover, its execution speed is proportional to the length of the stack configuration. The algorithm is implemented on a Bison, GNU LALR(1), parser generating system. Experimental results are presented.
컴파일러가 문법 오류를 발견했을 때, 국부적 오류 보정 모델은 심볼앞에 적당한 스트링을 삽입하거나, 심볼을 삭제함으로써 문법 오류 보정을 시도한다. 등의 확장된 FMQ 방법과 McKenzie 등의 방법은 방법들에 비하여 향상된 에러 메시지를 제공해주지만, 구문 분석 스택 배치 상태를 중복하여 발생시킨다는 단점이 있다.
논문은 LR 구문 분석에서의 효율적인 오류 보정과 검증 방법을 제시한다. 방법은 기존의 방법에서는 더 낮은 삽입 비용이라고 간주되었으나 동일한 구문 분석 스택 배치 상태를 발생시키는 오류 보정 삽입 제거함으로써 오류 보정 정확성과 속도를 향상시키고 있다. 방법에서 오류 보정 시간은 문법 오류가 발생한 순간의 구문 분석 스택 심볼들의 길이에 비례한다. 논문이 제시한 방법은 Bison (GNU가 제작한 LALR 구문 분석 생성기) 구현되어 실험되었으며 실험 결과는 본 논문에 제시되어 있다.