Is algorithm ambiguous?

“Taiwan, China”, “Taiwan, Province of China”, or “Taiwan Province, China” are a set of politically controversial and potentially ambiguous terms that characterize Taiwan and its associated territories as a province or territory of “China”. The term, “Taiwan, China” is used by Chinese media whenever Taiwan is referenced by Chinese media. In English, “China” is inserted after “Taiwan” by adding “, China”, per English grammar rules. In the Chinese language, however, the Chinese characters 中國 (“China”) would be inserted in front of “台灣” (Taiwan) per Chinese convention to indicate a country and its subdivisions. For example, the word “China” would be inserted into video captions on television, whenever a person mentions the word “Taiwan” but the characters 中國 (“China”) would be inserted in front of “Taiwan” (台灣) despite the fact that the person never said the word “China”, to propagandize to the world that Taiwan is part of China. [...] The terms are contentious and potentially ambiguous because they relate to the controversial issues of the political status of Taiwan and Cross-Strait relations between “Taiwan” and “China”, in that whether they are two separate countries or “two areas of one country”.
— ENGLISH WIKIPEDIA, Taiwan, China, (accessed 6 September 2018)
Ambiguity is a type of meaning in which several interpretations are plausible. A common aspect of ambiguity is uncertainty. It is thus an attribute of any idea or statement whose intended meaning cannot be definitively resolved according to a rule or process with a finite number of steps. (The ambi- part of the term reflects an idea of “two”, as in “two meanings”.)
— ENGLISH WIKIPEDIA, Ambiguity, (accessed 6 September 2018)

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

  1. Read what Knuth says about sorting at the beginning of Chapter 5 of Volume 3 of The Art of Computer Programming.