Algorithmic debugging for lazy functional languages

Author:

Nilsson Henrik,Fritzson Peter

Abstract

AbstractLazy functional languages have non-strict semantics and are purely declarative, i.e. they support the notion of referential transparency and are devoid of side-effects. Traditional debugging techniques are, however, not suited for lazy functional languages, since computations generally do not take place in the order one might expect. Sincealgorithmic debuggingallows the user to concentrate on the declarative aspects of program semantics, and will semi-automatically find functions containing bugs, we propose to use this technique for debugging lazy functional programs. Because of the non-strict semantics of lazy functional languages, arguments to functions are in general partially evaluated expressions. The user is, however, usually more concerned with the values that these expressions represent. We address this problem by providing the user with astrictifiedview of the execution trace whenever possible. In this paper, we present an algorithmic debugger for a lazy functional language based on strictification and some experience in using it. A number of problems with the current implementation of the debugger (e.g. too large trace size and too many questions asked) are also discussed and some techniques for overcoming these problems, at least partially, are suggested. The key techniques areimmediate strictificationandpiecemeal tracing.

Publisher

Cambridge University Press (CUP)

Subject

Software

Reference30 articles.

1. Augustsson L. (1984) A compiler for lazy ML. In: Proceedings ACM Conference on LISP and Functional Programming, pp. 218–227, 08.

2. Utilizing fifth generation technology in software development tools

3. Augustsson L. (1987) Compiling Lazy Functional Languages part II. PhD thesis, Department of Computer Science, Chalmers University of Technology, 12.

4. Kishon A. , Hudak P. and Consel C. (1991) Monitoring semantics: A formal framework for specifying, implementing, and reasoning about execution monitors. In: Proceedings ACM SIGPLAN Conference on Programming Language Design and Implementation, Toronto, Canada, June.

5. Drabent W. , Nadjm-Tehrani S. and Maluszynski J. (1988) The use of assertions in algorithmic debugging. In: Proceedings FGCS Conference, Tokyo, Japan, pp. 573–581.

Cited by 37 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Explainable dynamic programming;Journal of Functional Programming;2021

2. Adaptable Traces for Program Explanations;Programming Languages and Systems;2021

3. Provenance-enhanced Algorithmic Debugging;Proceedings of the XXXIII Brazilian Symposium on Software Engineering;2019-09-23

4. A Survey of Algorithmic Debugging;ACM Computing Surveys;2018-07-31

5. Algorithmic debugging generalized;Journal of Logical and Algebraic Methods in Programming;2018-06

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3