There is a difference between a program with a specification/documentation outlining what it should do, and one that doesn't have a spec.
AFAIK, hello.c doesn't have a spec, so the code is the spec. If I am using it, I have to read the code to know what it does.