Skip to main content
QUICK REVIEW

[논문 리뷰] A Knowledge-based Automated Debugger in Learning System

Abdullah Mohd Zın, Syed Ahmad Aljunid|arXiv (Cornell University)|2001. 01. 12.
Software Testing and Debugging Techniques참고 문헌 14인용 수 5
한 줄 요약

이 논문은 문법적으로 올바른 C 프로그램에서 논리적 오류를 검출하고 국소화하며 설명하기 위해 패턴 매칭과 제약 만족 기법을 사용하는 지식 기반 자동 디버거인 Adil을 제안한다. Conceiver 프로그램 이해 프레임워크 기반으로 구축된 Adil은 프로그래밍 언어에 종속되지 않으며, 사용자 친화적이며, 지도교사의 부담을 줄이고 디버깅 기술을 가르치는 지능형 디버깅 보조자로 기능한다.

ABSTRACT

Currently, programming instructors continually face the problem of helping to debug students' programs. Although there currently exist a number of debuggers and debugging tools in various platforms, most of these projects or products are crafted through the needs of software maintenance, and not through the perspective of teaching of programming. Moreover, most debuggers are too general, meant for experts as well as not user-friendly. We propose a new knowledge-based automated debugger to be used as a user-friendly tool by the students to self-debug their own programs. Stereotyped code (cliche) and bugs cliche will be stored as library of plans in the knowledge-base. Recognition of correct code or bugs is based on pattern matching and constraint satisfaction. Given a syntax error-free program and its specification, this debugger called Adil (Automated Debugger in Learning system) will be able locate, pinpoint and explain logical errors of programs. If there are no errors, it will be able to explain the meaning of the program. Adil is based on the design of the Conceiver, an automated program understanding system developed at Universiti Kebangsaan Malaysia.

연구 동기 및 목표

  • 초보 프로그래머가 문법적으로 올바른 코드를 작성함에도 불구하고 논리적 오류로 어려움을 겪는 문제를 해결하기 위해.
  • 현재 수업에서 수업 기간 동안 수동으로 학생 프로그램을 디버깅하는 데 소요되는 시간을 줄이기 위해.
  • 학생들이 유도된 상호작용을 통해 디버깅 기술을 배울 수 있도록 사용자 친화적이고 지능적인 디버깅 보조자 개발하기 위해.
  • 초보 수업에서 자기 디버깅과 프로그램 이해를 지원하는 프로그래밍 언어에 종속되지 않는 시스템 구축하기 위해.

제안 방법

  • 시스템은 C 소스 코드를 분석하여 데이터 흐름과 제어 흐름 정보를 포함하는 주석이 달린 플로우 그래프로 변환한다.
  • 공통적인 코드 패턴(클리셰)과 일반적인 논리적 오류에 대한 '버그 클리셰'를 포함한 지식 기반을 사용한다.
  • 추론 엔진은 제약 만족 기법을 사용하여 주석이 달린 플로우 그래프와 저장된 계획 간의 통합을 수행한다.
  • 디버깅 엔진은 프로그램의 구조를 알려진 올바른 패턴과 잘못된 패턴과 비교하여 논리적 오류를 국소화하고 정확히 지목한다.
  • 문서 생성기에서는 자연어로 검출된 버그를 설명하여 학생의 이해를 돕는다.
  • 시스템은 계획 기반 관리 및 자동 지식 기반 구축 도구를 통해 반자동적으로 확장 가능하도록 설계되어 있다.

실험 결과

연구 질문

  • RQ1지식 기반 시스템은 문법적으로 올바른 학생 프로그램에서 논리적 오류를 효과적으로 검출하고 설명할 수 있는가?
  • RQ2어떤 표현 방식이 프로그래밍 언어에 종속되지 않는 프로그램 이해와 디버깅을 가능하게 하는가?
  • RQ3패턴 매칭과 제약 만족 기법을 사용하여 학습을 지원하는 방식으로 오류를 국소화하고 설명할 수 있는가?
  • RQ4이러한 시스템은 초보 수업에서 지도교사의 부담을 어느 정도 줄일 수 있는가?
  • RQ5자동 수정을 피하는 디버깅 도구는 여전히 디버깅 기술을 가르치는 데 효과적인가?

주요 결과

  • Adil은 패턴 매칭과 제약 만족 기법을 사용하여 문법 오류가 없는 C 프로그램에서 논리적 오류를 성공적으로 국소화하고 설명한다.
  • 시스템은 고장 검출 외에도 정상적인 프로그램를 이해하고 그 동작을 설명할 수 있다.
  • 주석이 달린 플로우 그래프의 사용은 통일된 내부 표현 방식을 통해 언어에 종속되지 않는 분석을 가능하게 한다.
  • 학생들이 스스로 디버깅할 수 있도록 지원하고 지능형 보조자로 기능하여 지도교사에 대한 의존도를 낮춘다.
  • 반자동 지식 기반 구축이 가능하여 유지보수성과 확장성 향상이 가능하다.
  • 자동 코드 수정을 방지함으로써 오류의 확산을 막고 설명을 통한 깊이 있는 학습을 촉진한다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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