Peter Naur's paper 'Programming as theory building' is perhaps the most lucid, thought provoking and practically usefull single thing I have ever read on the sociological aspects of software engineering. Right there with the Brook's "Mythical man month" ( but the value density of the former is much higher, since it's a paper and the latter is a book).
Briefly looking at the paper, it seems what he calls the "theory of the program" is akin to what Fred Brooks called "conceptual integrity". Am I wrong?
I think that's right. The terms 'design' and 'model' are often used for this nowadays. Naur's point is that a program is a shared mental construct that lives in the minds of the people who build it. The source code is not the program. It's the canonical written representation, but a lossy one.
The programmer is unable to completely and unambiguously articulate the "design" in source code and documentation. Yes, the source code can be improved with with longer names of variables and functions in addition to liberal code comments. And documentation can be expanded to include chapters on "architectural overview" and "technical motivations" to help fill the gaps but it will inevitably be incomplete.
I was thinking "Now that's a name I've not heard in a long time."
It fits. With both Murdock and Naur, both of them were names I was familiar with but hadn't heard anything about for quite a while... until I heard they both died.