3 ms·
A debugger shows you only one trace through your code at a time. You want to see most, if not all traces and prohibit any illegal state. Since we humans are qui
by edejong 11y ago
A debugger shows you only one trace through your code at a time. You want to see most, if not all traces and prohibit any illegal state. Since we humans are quite limited to comprehend this multi-dimensional arena, we need to use some proof system to help us out. For example, static code analysis, type systems (static typing) or even formal proof assistants. All of these are readily available.
Another thing to realise is: a debugger works fundamentally on the sequential composition operator (putting instructions or statements after each other). We have to realise that the composition operator is very complex, hard to reason about and difficult to abstract (it's why modern build tools use a dependency graph and no shell scripts). As such, we should prefer other compositions in order to have correctness flow from our design, instead of our debugging cycles.