Skip to main content
QUICK REVIEW

[논문 리뷰] Reducing Cascading Parsing Errors Through Fast Error Recovery.

Lukas Diekmann, Laurence Tratt|arXiv (Cornell University)|2018. 04. 19.
Software Engineering Research참고 문헌 21인용 수 1
한 줄 요약

이 논문은 파서의 오류 복구를 빠르고 실용적으로 수행하는 기법을 제안하며, 최소 비용 복구 시퀀스의 전체 집합을 계산하여 연쇄 오류를 줄인다. 최적화된 알고리즘인 MF를 사용하여 파일당 0.5초 이내에 98.74%의 복구율을 달성하고, 20만 개의 실제 Java 프로그램으로 구성된 코퍼스에서 최악의 연쇄 오류를 32.27% 감소시킨다.

ABSTRACT

Syntax errors are generally easy to fix for humans, but not for parsers: the latter often fail to find an effective recovery, leading to a cascading chain of errors that drown out the original. More advanced recovery techniques suffer less from this problem but have seen little practical use because their typical performance was seen as poor and their worst case unbounded. In this paper we show that not only can an advanced approach run in acceptable time -- which we define as spending a maximum of 0.5s in error recovery per file -- but that we can find the complete set of minimum cost repair sequences within acceptable time. We then use the existence of the complete set of minimum cost repair sequences to further reduce the cascading error problem. We first extend Corchuelo et al.'s algorithm, before introducing a new, faster, alternative called MF. We validate our algorithms with a corpus of 200,000 real-world syntactically invalid Java programs: MF is able to repair 98.74% of files within acceptable time. By making use of the complete set of repair sequences, we show that the worst case for cascading errors is reduced by 32.27%.

연구 동기 및 목표

  • 연쇄 오류가 원래의 구문 오류를 가림으로써 프로그램 디버깅을 어렵게 하는 문제를 해결하기 위해.
  • 특히 파일당 0.5초 이내의 시간 제한 내에서 작동하는 실용적인 오류 복구 방법을 개발하기 위해.
  • 복구 정확도를 향상시키고 오류 전파를 줄이기 위해 최소 비용 복구 시퀀스의 전체 집합을 계산하기 위해.
  • 실제로 구문적으로 잘못된 Java 프로그램으로 구성된 대규모 코퍼스에서 접근 방식을 검증하기 위해.

제안 방법

  • 최소 비용 복구 시퀀스의 전체 집합 계산을 지원하도록 Corchuelo 등이 제안한 알고리즘을 확장하기 위해.
  • 성능과 확장성에 최적화된 새로운 빠른 알고리즘인 MF를 도입하기 위해.
  • 유효성을 복원하기 위해 최소한의 구문 변경을 우선시하는 비용 기반 복구 모델을 구현하기 위해.
  • 성능과 복구 효과를 평가하기 위해 20만 개의 실제 구문 오류가 있는 Java 프로그램 코퍼스를 사용하기 위해.
  • 복구 전후의 연쇄 오류 수를 비교하여 복구 시간과 오류 감소 정도를 측정하기 위해.
  • 하류 파싱에서의 오류 전파를 최소화하기 위해 최소 비용 시퀀스의 전체 집합을 적용하기 위해.

실험 결과

연구 질문

  • RQ1파일당 0.5초 이내로 복구 시간을 유지함으로써 고급 오류 복구 기법을 실용적으로 만들 수 있는가?
  • RQ2실제 프로그램에서 수용할 수 있는 시간 내에 최소 비용 복구 시퀀스의 전체 집합을 계산하는 것이 가능한가?
  • RQ3최소 비용 복구 시퀀스의 전체 집합이 연쇄 파싱 오류를 어느 정도 줄일 수 있는가?
  • RQ4제안된 MF 알고리즘이 실제 구문적으로 잘못된 Java 프로그램의 복구에 얼마나 효과적인가?

주요 결과

  • MF 알고리즘은 파일당 0.5초 이내의 시간 제한 내에 20만 개의 실제 구문 오류가 있는 Java 프로그램 중 98.74%를 성공적으로 복구했다.
  • 최소 비용 복구 시퀀스의 전체 집합을 통해 최악의 연쇄 파싱 오류 수가 32.27% 감소했다.
  • 제안된 방법은 전통적인 기법에 비해 복구 정확도를 크게 향상시키면서도 높은 성능를 유지한다.
  • Corchuelo 등이 제안한 알고리즘의 확장으로 최소 비용 복구의 완전한 열거가 수용 가능한 계산 비용으로 가능해졌다.
  • 결과적으로 최적화된 실용적 적용을 통해 고급 오류 복구가 효율적이고 효과적임을 입증한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.