Comment by Taikonerd

3 years ago

I love ideas like this. It's "top-down" programming: start with a high-level, formal description of the system. ("There are 4 communicating state machines."). Then you gradually add detail to the model and go "downwards" until you reach the level where you can actually generate code.

Yep agree. It’s a great way to write solid software. You can do something similar even when not using formal methods:

Start by writing the skeleton of the complete application. By “skeleton” I mean all interfaces implemented with placeholder all-in-memory code. And then step-by-step refine the whole application until it is done.

It works great!