[plt-scheme] ATTN: Neil Van Dyke (and some philosophical musings on debuggers)

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Thu Sep 16 17:28:27 EDT 2004

Please get your hands on Chez Scheme. It's not cheap, so go to a 
university close by and see whether you can find one there. It comes 
with a debugger that you'll love. Play with it. Let me know -- Matthias

On Sep 16, 2004, at 4:51 PM, Paul Schlie wrote:

>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> For the hell of it, my basic thoughts are that a debugger's critical 
> role
> in life to enable the programmer to more easily disambiguate between 
> what
> they meant, vs. actually expressed; as we all know it's often more 
> difficult
> than may appear at first glance/attempt; often because input domains 
> are
> more subtlety complex than originally perceived, resulting in 
> unintended
> result ranges or discontinuities which may or may not OBSERVABLY 
> violate the
> input domain assumptions of dependant expressions of intended behavior.
> I've HIGHLIGHTED "OBSERVABLE" because the critical functionality of a
> debugger must be able to enable the programmer to "OBSERVE", 
> experimentally
> "CONTROL", and ideally alter, any arbitrary expressed behavior within a
> program to aid in the identification and corresponding refinement of 
> desired
> expressed behavior to increasingly comprehensive input domains, without
> having to alter the program itself to do so.
> As data invariably affects conditional control flow, which in turn 
> affects
> dataflow, and therefore state; a debugger must then also ideally 
> enable the
> control flow state and history to also be both observable, and 
> controllable
> to aid in the programmers identification of their insufficient or 
> erroneous
> expression of intent beyond the programs natural points of observably 
> and
> controllability.
> Although contracts assist in the confinement of anticipated data 
> domains
> and ranges; they are themselves expressions subject to programmer 
> errors,
> nor do they attempt to typically quantify the correctness or the value
> discontinuities of transformations that exist between their 
> boundaries, as
> if they did, would be fully redundant to the transform descriptions
> themselves.
> Although I profess to being strongly biased toward the scheme 
> programming
> language/style, most/all scheme programming environments severely lack 
> any
> comprehensive debugging (arbitrary program/data control/observably)
> facilities; as such, they often relegate the task of "debugging" to the
> programmer's own wits, which often limit's the commercial use of 
> scheme to
> relatively simple problems, academic exercises, or the curious; as 
> without
> a reasonably comprehensive means to observe, isolate, and remedy 
> "bugs" in
> reasonably complex programs with correspondingly complex datasets, it's
> difficult to leverage in environments where programmers are use to, 
> and rely
> (for good or bad) on such conveniences. I for one would love to have 
> access
> to a more nimble way to arbitrarily observe, control, and refine the
> behavior of a scheme program, and spend less time (often invasively), 
> making
> due otherwise (as if I knew how to always comprehensively express what 
> I
> meant with sufficient precision, I would, but admit to not being
> omniscient).
> No prejudice, conflict, or disparity intended, just my two cent 
> thoughts,
> -paul-

Posted on the users mailing list.