In developing literate programming, one of Knuth's goals was to allow the programmer to present parts of a program in "a psychologically correct order" or "an order that makes sense on expository grounds". This order might be top-down, or bottom-up, or any combination of the two, or even "a 'stream of consciousness' order" ([Knuth 1984] section J).
Knuth devised a notation for literate programming, and he optimized it (as a programmer might say) toward achieving this goal. His notation encourages a particular style of programming: one in which programs are made of many small fragments of code, have names (typically, English phrases) and refer to each other by name, and can indeed appear in any order.