From stack traces to lazy rewriting sequences

IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages(2011)

引用 1|浏览0
暂无评分
摘要
Reasoning about misbehaving lazy functional programs can be confusing, particularly for novice programmers. Unfortunately, the complicated nature of laziness also renders most debugging tools ineffective at clarifying this confusion. In this paper, we introduce a new lazy debugging tool for novice programmers, an algebraic stepper that presents computation as a sequence of parallel rewriting steps. Parallel program rewriting represents sharing accurately and enables debugging at the level of source syntax, minimizing the presentation of low-level details or the effects of distorting transformations that are typical for other lazy debuggers. Semantically, our rewriting system represents a compromise between Launchbury's store-based semantics and an axiomatic description of lazy computation as sharing-via-parameters. Finally, we prove the correctness of our tool by showing that the stepper's run-time machinery reconstructs the expected lazy rewriting sequence.
更多
查看译文
关键词
axiomatic description,lazy functional program,new lazy debugging tool,algebraic stepper,debugging tool,complicated nature,lazy computation,lazy debuggers,parallel program,novice programmer,debugging
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要