> Writing a complete specification for a program rivals writing an imperative implementation in complexity
> I expect a good compiler will swamp you with the inconsistencies of your hidden, unstated assumptions.
Thank you, this is exactly what I came here to say.
The entire practice of programming is formally defining how everything works, and the devil is always in the details. The effort of going through those details thoroughly and defining exactly what you want to the program to do in all situations is, simply, the act of programming itself.
The best you can do is create languages, libraries, frameworks to help you do it more efficiently.
> I expect a good compiler will swamp you with the inconsistencies of your hidden, unstated assumptions.
Thank you, this is exactly what I came here to say.
The entire practice of programming is formally defining how everything works, and the devil is always in the details. The effort of going through those details thoroughly and defining exactly what you want to the program to do in all situations is, simply, the act of programming itself.
The best you can do is create languages, libraries, frameworks to help you do it more efficiently.