[논문 리뷰] Systematic Debugging of Attribute Grammars
이 논문은 컴파일러 모듈에서 버그 정책을 5배에서 10배 빠르게 정의할 수 있도록, 상호작용 기반의 질의를 통해 오류가 발생한 할당 규칙을 체계적으로 찾을 수 있도록 해주는 두 가지 AG-인식 디버깅 기법—알고리즘 기반 디버깅과 슬라이스 기반 디버깅—을 제안한다. Aki 시각적 디버거에 통합된 이 접근 방식은 전통적인 방법에 비해 디버깅 시간을 크게 줄였다.
Although attribute grammars are commonly used for compiler construction, little investigation has been conducted on debugging attribute grammars. The paper proposes two types of systematic debugging methods, an algorithmic debugging and slice-based debugging, both tailored for attribute grammars. By means of query-based interaction with the developer, our debugging methods effectively narrow the potential bug space in the attribute grammar description and eventually identify the incorrect attribution rule. We have incorporated this technology in our visual debugging tool called Aki.
연구 동기 및 목표
- 컴파일러 구축 과정에서 속성 문법에 대한 체계적 디버깅 지원의 부족을 해결하기 위해.
- 속성 평가기의 저수준 구현 세부 사항을 추상화시켜 개발자의 인지 부담을 줄이기 위해.
- 오류가 발생한 할당 규칙을 효율적으로 고립시킬 수 있는 고수준의 상호작용 기반 디버깅 환경을 제공하기 위해.
- 실제 컴파일러 개발 워크플로우에서 하이브리드 디버깅 기법의 효과성을 평가하기 위해.
제안 방법
- 속성 평가를 재귀적 Synth 함수 응용으로 모델링하여 알고리즘 기반 디버깅을 속성 문법에 적응시킨다.
- 질의 기반 상호작용을 통해 속성 계산의 정확성을 검증하거나 반증하고 오류가 발생한 규칙을 좁혀나간다.
- 잘못된 값으로부터 역방향으로 속성 의존성을 추적하여 오류가 발생한 규칙을 식별하기 위해 슬라이스 기반 디버깅을 적용한다.
- 속성 슬라이스를 부분 슬라이스로 분할하고 개발자에게 정확성을 질의하여 검색 공간을 반복적으로 축소한다.
- 소스 코드 시각화 및 색상 강조된 속성 연산을 지원하는 시각적 디버거(Aki)로 Squeak Smalltalk에 시스템을 구현한다.
- 두 디버깅 기법을 통합된 환경에 통합하여 완전한 실행과 부분 실행을 모두 지원한다.
실험 결과
연구 질문
- RQ1평가가 본질적으로 재귀적이며 속성에 의존하는 속성 문법 파ragm에서 알고리즘 기반 디버깅이 효과적으로 어떻게 적응될 수 있는가?
- RQ2슬라이스 기반 디버깅이 완전하지 않거나 종료되지 않는 실행에서 오류를 찾는 데 적용될 수 있는가?
- RQ3알고리즘 기반 및 슬라이스 기반 디버깅의 조합이 오류가 발생한 할당 규칙을 찾는 데 있어 개발자의 효율성을 어떻게 향상시키는가?
- RQ4Aki 디버거가 수동 또는 전통적인 디버깅 방법에 비해 디버깅 시간을 얼마나 줄이는가?
주요 결과
- Aki의 알고리즘 기반 디버깅 구성요소는 버그를 찾는 평균 시간을 디버깅 지원 없이 15분에서 3분으로 줄였다.
- 슬라이스 기반 디버깅 구성요소는 평균적으로 버그를 찾기 위해 13회의 질의가 필요했으며, 알고리즘 기반 디버깅의 9회보다 약간 더 높은 상호작용 비용을 보였지만, 더 넓은 적용 범위를 가졌다.
- 세 명의 경험이 풍부한 컴파일러 개발자에게 수행한 사용자 테스트 결과, 두 가지 체계적 디버깅 방법이 수동 디버깅에 비해 시간과 노력 측면에서 뚜렷이 뛰어났다.
- 시각적 디버거 Aki는 소스 코드 강조 표시와 부분 트리 시각화를 통해 복잡한 속성 의존성을 이해하는 데 효과적으로 기여했다.
- 이 시스템은 이진 수 평가 문법에서 잘못된 속성 전파를 포함한 규칙에 의도적으로 삽입된 버그를 성공적으로 식별했다.
- 하이브리드 접근 방식은 기존 알고리즘 기반 디버깅이 전체 계산 트리를 구성할 수 없는 중간 실행 실패 프로그램의 디버깅을 가능하게 했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.