0.A file is either
(1) empty, or
(2) a line followed by a file.
so, when we need computation, first build a data structure, then write a *recurisive*
procedure to manuiplate.
1. Randell:
do it recursively:
Any idea is better when made recursive.
2. Dijkstra:
An efficient program is an exercise in logical brinksmanship.
3. Lamport:
A distributed system is a system in which I can not get my work done because a computer has failed that I have never even heard of.
4. Peter Norvig:
Programming In a language
The design is constrained by what the language offers
Programming Into a language
The design is done independently of language, then the design is implemented using features at hand
Programming On a language
The design and language meet half way. This is programming into the language you wish you had; a language you build on the base language.
Sometimes called Stratified Design.