(One can quibble about the difference between algorithm and program. An algorithm is a component of a program.
...
Or an algorithm is an abstraction (usually mathematical as distinct from some other sort of specification) and the program (or part of it) is a specific realization of that abstraction.
As a discussion detached from utility in the IETF, that view has academic merit, of course.
In terms of practical IETF discussions -- and for the comparative purposes this thread was developing -- I am used to the view that a program typically contains multiple algorithms and therefore performs a larger and integrated /set/ of activities (functions).
Note that Wikipedia nicely correlates algorithm with function, which largely matches the "component of" view that I suggested.
The difference between that distinction and the one you make is that we have a long history of correct algorithms and incorrect or inadequate implementations.
And indeed the tendency to confuse constructs /within/ network architecture with the distinction /between/ network architecture and software implementation is quite common.
For the IETF, we typically do not focus on implementation correctness, except to the extent that a pattern of implementation problems might affect architectural choices to improve simplicity.
I've assumed that this thread on the IETF list ought to focus on uses of the terms that aid IETF work...
d/ -- Dave Crocker Brandenburg InternetWorking bbiw.net _______________________________________________ Ietf mailing list Ietf@xxxxxxxx https://www.ietf.org/mailman/listinfo/ietf