Debugging Lazy Functional Programs by Asking the Oracle

نویسندگان

  • Bernd Brassel
  • Holger Siegel
چکیده

The complexity of lazy evaluation forbids classic debugging techniques like a simple step-by-step representation of the buggy program run. Therefore, most sophisticated tools for searching bugs in lazy functional programs try to display the run as if the program’s underlying semantics was strict. In order to provide such a strict representation current approaches gather much information about the executed program. We utilized a new technique to drastically reduce the amount of gathered data and show how to use the reduced information to implement a debugging tool which supports declarative debugging as well as a strict step-by-step tracer.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Declarative Debugging of Lazy Functional Programs

We show how declarative (or algorithmic) debugging can be applied to lazy functional programming and describe a prototype implementation. We rst present a declarative debugger for logic programs which relies on three primitives that determine if an atom is valid in the intended interpretation, return the successful clause instance used by a call and return single atoms from a conjunction of ato...

متن کامل

A Slicing Tool for Lazy Functional Logic Programs

Program slicing is a well-known technique that has been widely used for debugging in the context of imperative programming. Debugging is a particularly difficult task within lazy declarative programming. In particular, there exist very few approaches to program slicing in this context. In this paper, we describe a slicing tool for firstorder lazy functional logic languages. We also illustrate i...

متن کامل

A Logical Framework for the Algorithmic Debugging of Lazy Functional-Logic Program

Traditional debugging techniques are not well suited for lazy functional programming, because of the diicult-to-predict evaluation order. Therefore, declarative debugging techniques have been proposed, which allow to focus on the intended meaning of programs, abstracting away operational concerns. Similar techniques are known also for logic programming and for combined functional logic language...

متن کامل

Towards a Portable Lazy Functional Declarative Debugger

Declarative (or algorithmic) debugging is a promising technique for debugging lazy functional programs. This paper addresses two important reasons why it is not more widespread: the diiculty of writing a declarative debugger for a lazy functional language in the language itself and the eeciency of the debugger. Using the source language to implement the debugger is desirable for portability and...

متن کامل

Freja, Hat and Hood - A Comparative Evaluation of Three Systems for Tracing and Debugging Lazy Functional Programs

In this paper we compare three systems for tracing and debugging Haskell programs: Freja, Hat and Hood. We evaluate their usefulness in practice by applying them to a number of moderately complex programs in which errors had deliberately been introduced. We identify the strengths and weaknesses of each system and then form ideas on how the systems can be improved further.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007