Debugger for Hugs 1.4 
Author Message
 Debugger for Hugs 1.4

Is there any de{*filter*} for Hugs 1.4? Where can I get one?
Any pointers will be very much apprecitated.

Jose' de Siqueira.
--
             Jos de Siqueira
Prof. Depto. de Cincia da Computa??o - UFMG



Fri, 27 Jul 2001 03:00:00 GMT  
 Debugger for Hugs 1.4

Is there any de{*filter*} for Hugs 1.4? Where can I get one?
Any pointers will be very much apprecitated.
--
             Jos de Siqueira
Prof. Depto. de Cincia da Computa??o - UFMG



Fri, 27 Jul 2001 03:00:00 GMT  
 Debugger for Hugs 1.4

Quote:

> Is there any de{*filter*} for Hugs 1.4? Where can I get one?
> Any pointers will be very much apprecitated.

What do you need a deb{*filter*} for?  Syntax is relatively easy compared to
any other language and the only problem typically outside of logic
errors would be type correctness which the compiler takes care of if you
can wade through its vague error message.  If you can get by the type
checker the program will almost always run, and runtime errors virtually
don't exist.


Fri, 27 Jul 2001 03:00:00 GMT  
 Debugger for Hugs 1.4

Quote:

>> Is there any de{*filter*} for Hugs 1.4? Where can I get one?
>> Any pointers will be very much apprecitated.

>What do you need a deb{*filter*} for?  Syntax is relatively easy compared to
>any other language and the only problem typically outside of logic
>errors would be type correctness which the compiler takes care of if you
>can wade through its vague error message.  If you can get by the type
>checker the program will almost always run, and runtime errors virtually
>don't exist.

Nevertheless, the program may simply not do what you wanted it to, in which
case a trace facility or other common features of de{*filter*}s might be useful.

Craig



Fri, 27 Jul 2001 03:00:00 GMT  
 Debugger for Hugs 1.4

Quote:


>> Is there any de{*filter*} for Hugs 1.4? Where can I get one?
>> Any pointers will be very much apprecitated.
>What do you need a deb{*filter*} for?  Syntax is relatively easy compared to
>any other language and the only problem typically outside of logic
>errors would be type correctness which the compiler takes care of if you
>can wade through its vague error message.  If you can get by the type
>checker the program will almost always run, and runtime errors virtually
>don't exist.

That is an advantage of strong static typing - you don't have to worry
about run-time type errors. The fact that type errors are avoided
does not mean you don't need a de{*filter*}.

I would regard logic errors as a very serious issue however - you told the
compiler one thing but intended something else.

Logic errors can often be the most difficult to find: I've certainly sat for
hours in front of hugs/ghc trying to figure out why my (type correct)
program doesn't work as I intended. A de{*filter*} won't prevent you from
making logical errors in the first place, but it might help you to
find them a lot faster than testing each function separately.

I think there is no doubt that you need a de{*filter*} for
haskell/hugs/clean/mercury (or whatever your favourite declarative language
is). The difficult question is at what level should you do the debugging?
This is particularly relevant for lazy functional languages, since the
evaluation of functions is often counter-intuitive, making traditional
trace-style debugging unhelpful.

See previous posts by Fergus and myself about declarative debugging as
one possible solution for debugging lazy functional languages.

Regards,
Bernie Pope.



Sat, 28 Jul 2001 03:00:00 GMT  
 Debugger for Hugs 1.4

Quote:

>What do you need a deb{*filter*} for?  Syntax is relatively easy compared to
>any other language and the only problem typically outside of logic
>errors would be type correctness which the compiler takes care of if you
>can wade through its vague error message.  If you can get by the type
>checker the program will almost always run, and runtime errors virtually
>don't exist.

Someone has their head in the clouds!  True enough, type errors catch a
large chunk of programming errors, but that still leaves all the others.

Sadly, there's no debugging tools for Hugs in the traditional sense, but
most people use IOExts.trace, which just prints out its string argument
immediately.  In Hugs, you also have the luxury of being able to test
functions individually by typing in expressions, this is quite useful for
"bottom-up" debugging.

Cheers,
    Simon



Sun, 29 Jul 2001 03:00:00 GMT  
 
 [ 6 post ] 

 Relevant Pages 

1. Hugs 1.4 available somewhere?

2. unresolved overloading (in Hugs 1.4)

3. Hugs 1.4, Haskell: the Craft of Functional Programming, and GHC

4. Hugs 1.4 Haskell ... sqrt function

5. Reading lines from file in Hugs 1.4

6. Announcing the final version of Hugs 1.4

7. Q on Parser Combinators (in hugs 1.4)

8. hugs 1.4

9. grdb debugger 1.4

10. Expect 5.21, tclsh80 and TCLPro Debugger 1.4 on WIN2K

11. TclPro Debugger 1.4

12. TclPro 1.4: debugger doesn't work

 

 
Powered by phpBB® Forum Software