Name: Stavros Macrakis Date: 05/19/04-04:55:20 PM Z
> We need to keep the theory and the code together and have
> each one explain the other. How else can you show that the
> code does what it is intended to do?
That is a very hard problem in general.
Good algorithms (as opposed to naïve ones) are often connected to
theory
in complicated ways – just look at published algorithms. Then the
practical implementation of the algorithm is often connected to the
published algorithm in complicated ways.
“Literate programming” is effective when the algorithm has a nice
hierarchical structure, but there are many tricks that good algorithm
designers and programmers use which don’t fit well into that
structure.
Some years ago, I participated in a conference on transformational
programming where Tarjan talked about this… it was humbling.
Personally, I think this is a fascinating area, but it really is a
research problem in itself. So if your goal is solving physics/math
problems, I would recommend that you be pragmatic about how far you go
in trying to systematize the transition from theory to code.
-s