A Debugger based on Selective Redex Trail

선택적 레덱스 트레일 기반의 디버거

  • Park, Hee-Wan ( Dept. of Electronic Computer Science, Korea Advanced Institute of Science and Technology) ;
  • Han, Tai-Sook ( Dept. of Electronic Computer Science, Korea Advanced Institute of Science and Technology)
  • 박희완 (한국과학기술원 전자전산학과) ;
  • 한태숙 (한국과학기술원 전자전산학과)
  • Published : 2000.09.01

Abstract

함수형 프로그래밍 언어는 전통적인 프로시저형 언어에 비하여 많은 장점이 있다. 그러나 함수 언어 프로그래머를 위한 실용적인 디버깅 환경은 상대적으로 빈약하다. 그동안 유용한 디버거 구현을 위해서 많은 시도가 있었고, 그 결과로 하향식 기법으로 이용한 알고리즈믹 디버거와 상향식 기법을 이용한 레덱스 트레일 디버거가 연구되었다. 두가지 기법은 모두 실제 프로그래밍에 적용하기에는 유지해야 하는 디버깅 정보의 양이 많다는 단점이 있다. 이 논문에서는 선택적 레덱스 트레일 디버깅 방법을 제안한다. 이 방법을 이용하면 디버거 사용자는 프로그램에서 오류가 예상되는 부분에 포커스를 설정할 수 있고 단지 선택된 부분에 한하여 트레일을 생성하게 된다. 이 방법은 프로그램의 오류에 대한 디버거 사용자의 예측을 반영하고 디버깅에 필요한 정보의 양을 줄이는 장점이 있다. 구현된 디버깅 시스템은 선택적 레덱스 트레일을 생성하는 추상기계와 실제 디버깅이 이루어지는 레덱스 트레일 탐색기로 구성된다.

Keywords

References

  1. John Hughes.Why Functional Programming Matters. Computer Journal, 32(2), 1989 https://doi.org/10.1093/comjnl/32.2.98
  2. Jonathan E.Hazan and Richard G.Morgan. The Location of Errors in Functional Program. In Peter Fritzson, editor, Automated and Algorithmic Debugging, volume 749 of Lecture Notes in Computer Science, Linkoping, Sweden, Alay 1993 https://doi.org/10.1007/BFb0019396
  3. Henrik Nilsson. A Declarative Approach to Debugging for Lazy Functional Languages. Linkoping Studies in Science and Technology Thesis No 450, 1994
  4. Jan Sparud and Colin Runciman. Tracing Lazy Functional Computations Using Redex Trails. In Proc. 9th International Symposium on Program-ming Languages, Implementations, Logics and Programs, 1997
  5. Cordelia V.Hall and John T.O'Donnell. Debugging in Applicative Languages. In Lisp and Symbolic Computation, 1988 https://doi.org/10.1007/BF01806168
  6. I.Toyn and C.Runciman. Adapting combinator and SECD machines to display snapshots of functional computations. New Generation Computing. 4(4):339-363, 1986
  7. Jan Sparud. Transformational Approach to Debugging Lazy Functional Programs. Licentiate Thesis, Department of Computer Science, Chalmers University of Technology, S-412 96, Goteborg, Sweden, February 1996
  8. E.Y. Shapiro. Algorithmic Program Debugging, MIT Press, May 1982
  9. Jan Sparud and Colin Runciman. Partial Redex Trails of Large Functional Computations. Implementation of Functional Languages, 8th International Workshop, 1997
  10. Henrik Nilsson and Peter Fritzson. Algorithmic Debugging for lazy functional languages. Journal of Functional Programming, 4(3),1994
  11. Hickard Westman and Peter Fritzson. Graphical User Interfaces for Algorithmic Debugging. In Peter Fritzson, editor, Automated and Algorithmic Debugging, volume 749 of Lecture Notes in Computer Science, Linkoping, Sweden, May 1993 https://doi.org/10.1007/BFb0019414
  12. Henrik Nilsson and Peter Fritzson. Lazy Algorithmic Debugging: Ideas for Practical Implementation. Automated and Algorithmic Debugging, volume 749 of Lecture Notes in Computer Science, pages 117-134, Linkoping, Sweden, May 1993 https://doi.org/10.1007/BFb0019405
  13. Henrik Nilsson, Jan Sparud. The evaluation dependence tree as a basis for lazy functional debugging. Journal of Automated Software Engineering, 4(2):152-205, April 1997 https://doi.org/10.1023/A:1008681016679
  14. 최광훈, 한태숙, 지연계산 기반 추상기계 유도 : 지연계산 기반 언어의 의미에 Wand-Clinger 방법의 적용. '98 추계 학술발표논문집, 제10회 정보과학회 충청지부 학술발표회, 1998년 11월
  15. 지연계산 기반 언어의 가상기계 http://pllab.kaist.ac.krFkhchoi/haskell/absmachine/
  16. Anthony J.Field, Peter G.Harrison. Functional Programming, Addison- Wesley 1988
  17. The Glasgow Haskell compiler. http://www.dcs.gla.ac.uk/fp/software/ghe/
  18. Lee Naish and Tim Barbour. Towards a portable lazy functional declarative debugger. Tehcnical Report 95/27, Department of Computer Science, Univercity of Melbourne, Australia, 1995
  19. Jan Sparud. Towards a Haskell debugger. In Functional Programming Languages and Computer Architecture, 1995
  20. Andrew Tolmach and Andrew W.Appel. A Debugger for Standard ML. Journal of Functional Language, 1(1):1-000, January 1993