Hi Thierry,

On 10/4/2014 5:32 PM, Thierry Goubier wrote:
>
>>              I do have specific tools I can use in such circumstances
>>         that you
>>              don't have.
>>
>>
>>         What kind of tools? I would be interested in learning about them
>>         and the
>>         analysis use cases they support.
>>
>>
>>     I have a trace tool for those situations (and also for parser work).
>>
>>
>> What trace tool? Is an example available?
>
> http://lists.gforge.inria.fr/pipermail/pharo-project/2012-July/067679.html
>
>>     My original use case was:
>>     - Finding the bug in an error correction decoding algorithm which
>>     worked without error, but with non-satisfying results: lower than
>>     expected SNR.
>>     - Has then been used very successfully to explain the algorithm.
>>     - Was then used as the basis for a hardware design methodology by
>>     dynamic code traces of multithreaded programs
>>

I am very interested in the "explaining the algorithm" aspect of your tool. 
Could you please talk a little about that?

I think I had a similar use case - improving an algorithm working over a lot of 
data (so stepping through it with a
debugger was unrealistic) - and my approach was to run two versions in parallel 
(the latest (best) available iteration
in the implementation, known to work, versus the bleeding edge), with 
synchronization points for every iteration within
the algorithm execution, so that I would catch (through a halt) any divergence 
as soon as it started, and from them on
using the debugger.
This worked quite well, but it did not help with explaining the working of the 
algorithm and I kept wishing I had a
visualization that would help me get to an intuitive (and holistic, not just of 
the subparts) understanding of how the
algorithm worked (in the style of Bret Victor's visualizations), but I did not 
know how to get to it. So, if you did
manage to get to such a visualization (one that does not come from an already 
(pre-existing for the creator of the
visualization) understanding of the algorithm), that would be fantastic

Florin

>>     Other use cases I use it for:
>>     - Debugging code in Morphic (rectangles, MorphTreeMorph stuff, text
>>     editor errors) where halt makes the image unusable.
>>     - Debugging code in Parsers when the code of a reduction is not
>>     working properly (somewhere deep in the AST).
>>
>>
>> Is this more than a logger?
>
> Part of it is a logger, to record events.
>
> A second part of it is a code rewriting tool. You give it a method, it adds 
> the code to trace the execution and
> recompiles the method.
>
> A third part is a viewer which links each recorded event with the expression 
> which generated it in the method.
>
> (The second part could be changed to use the Opal facilities instead of code 
> rewriting. There is probably work to be
> done on the logger as well: remote logging via RS232, Jtag probes, etc...).
>
> Thierry
>
>


Reply via email to