Diagramming Program Values by Spatial Refinement

Compilers can vectorize loops you never wrote. IDEs can finish functions before you do. Agents can refactor your codebase from a sentence. And yet, when you want to inspect the value your program just produced, you still use the REPL as if nothing has changed in fifty years: type a variable name, get text back, squint. Here is Python showing you a binary decision diagram:

Read more…

LLMs ⭢ Regular Expressions, Responsibly!

Do you use GenAI/LLMs to generate your regular expressions? We certainly do! But we always do it with trepidation, given the many slips that can occur with blindly pasting the output into a program. We may have been unclear in our prose, our prose may have been ambiguous, the domain may lend itself to ambiguity (what is a “date”?), the LLM may have misinterpreted what you said, the domain may have persistent misconceptions, and so on.

Read more…

Sharing is Scaring: Why is Cloud File-Sharing Hard?

Here is an actual situation we were asked to help non-technical computer users with:

Read more…

Practical Static Analysis for Privacy Bugs

Privacy bugs are deeply problematic for software users (“once it’s out there you can’t take it back”), legally significant (due to laws like the GDPR), and difficult for programmers to find and to keep out. Static program analysis would therefore appear to be very helpful here.

Read more…

Lightweight Diagramming for Lightweight Formal Methods

We now also have Spytial, a newer version of this idea for diagramming program values.

Read more…