I am trying to document the overall design of my code. My first attempt is to create flow charts of broad steps performed and related static and dynamic data structures.
However, I now noticed that once one looks into backtracking – this can become quite tricky.
For example, one flow chart step could be a generator – generating examples to test – while in another location quite further down of multiple recursive calls, there could be a fail, to initiate a backtracking.
The fail causes backtracking across many calls, untraveling various computations until the generator gets to redo and call to test another example.
are there any good visual techniques to visualize that …
If you have Visio or other similar application that helps.
Another way to make them presentable on paper is to use graphvizdot
Visio is faster, but proprietary, however you can save in many formats including SVG.
Dot is widely known an used and is what I used here. The dot output was saved as SVG which is nice because Internet browsers can read them and they scale nicely.
Both have a learning curve, but once you do it for a while it becomes old hat
You might want to search the SWI-Prolog packages, several of them make use of GraphViz, e.g.
A nice alternative to using a Thank You response with discourse is to just click on the heart
This not only saves the time of saying thank you, it also helps those you thank get a higher trust level and reflects in the users profile, e.g. EricGT.
Additionally it saves on the amount of reading others have to do and notifies others that this is a reply worth reading or noting for future use.
However if it is a Thank You and some added info, then by all means use a response, and give the heart a click.
The way the accounts are set up by default is that if a response is created with a quote or @<user tag> then they get an instant messages on their computer.
If a heart is clicked on a topic they made then it doesn’t disturb the OP of the response; instead it shows up in their notification queue.
That does not sound correct. Can you give an example image that has a few boxes working together and the corresponding Prolog source code so that we can check it. You don’t want to pick up a bad or invalid habit at first then have to re-learn which is harder than just learning.
Curious how far is a predicate cross-reference diagram (e.g. html_basics_module) from what you want for documenting your code. These diagrams can show recursive calls (a calls edge linking a predicate to itself), predicates updating (i.e. asserting or retracting) dynamic predicates (updates edges), and links to your source code (as in that example). They will no show the exact sequence of calls, however (only edges to called predicates). Still, it should be possible to automatically generate a diagram with at least some of the extra information you mention. Doing it manually means that diagrams and code can easily get out of sync, diminishing the diagrams values as documentation. Can you share one of those diagrams that you’re making for comparison and clarification?