Daily Thought - 2024-11-18
Hey, I'm Hanno! These are my daily thoughts on Crosscut, the programming language I'm creating. If you have any questions, comments, or feedback, please get in touch!
This thought was published before Crosscut was called Crosscut! If it refers to "Caterpillar", that is the old name, just so you know.
Quite a while ago, I talked about rewinding your running program. More recently, I expanded on that, by looking at coarse-grained, event-based rewinding again. Today, I'd like to take revisit fine-grained, expression-based rewinding.
First, let's talk about the difference in nomenclature, because I was calling this "instruction-based" rewinding before. Back then, it didn't make much of a difference, since expressions in the compiler and instructions in the runtime were pretty much the same thing. But as the compiler is getting smarter, and the runtime is getting simpler, those concepts have started to diverge.
Expressions are what the developer is concerned with and (hopefully) understands, while instructions are an implementation detail. So it makes more sense to base fine-grained rewinding on expressions rather than instructions. Next, I'd like to talk about how to implement that.
Hey, you! Want to subscribe to my daily thoughts? Just let me know (maybe include a nice message, if you're up for it), and I'll send you an email whenever I post a new one.