Maybe Knuth is engaging in a little algorithm propaganda when he says he tends to think of algorithms as “encompassing the whole range of concepts dealing with well-defined processes, including the structure of data that is being acted upon as well as the structure of the sequence of operations being performed.” But I doubt it’s that exciting. I think Knuth is simply searching — à la Don Quixote — for just the right word or words with which to pin down concepts that exist independent of words and seem to be best called one thing in some contexts and something else in others.
This isn’t an uncommon scenario.1 Why should the names we use to refer to concepts be all that different from the names we use to refer to ourselves? In some situations some people might feel comfortable calling me John and in others Mr. Spurgeon or Dad feels more natural. (Just don’t call me late for dinner.)
An analogy involving the classic pair of mechanical engineering textbooks by J.L. Meriam and L.G. Kraige comes to mind. Volume 1 of the set, which I acquired while sampling courses in the School of Mechanical Engineering at Purdue University, is titled Statics. Volume 2 is Dymanics. Data structures and statics are similar, because both deal with objects at rest. Algorithms (exclusive of data structures) and dynamics are similar, because they deal with objects “in motion” (i.e. objects whose state is changing).
Whatever words one prefers to use, I think the important thing is to know what you’re talking about and to try hard to understand what others are talking about when they choose their words, which are likely to be different from the exact set and sequence of ones you would have selected to say the same thing. And if ambiguity is anathema, then say what you have to say using a computer programming language or some similar invention designed precisely for that purpose.
FOOTNOTE
- Read what Knuth says about sorting at the beginning of Chapter 5 of Volume 3 of The Art of Computer Programming.