Skip to content

Instantly share code, notes, and snippets.

@npverni
Created March 30, 2012 14:57
Show Gist options
  • Select an option

  • Save npverni/2252106 to your computer and use it in GitHub Desktop.

Select an option

Save npverni/2252106 to your computer and use it in GitHub Desktop.
We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells.
The programs we use to conjure processes are like a sorcerer's spells. They are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform.
A computational process, in a correctly working computer, executes programs precisely and accurately. Thus, like the sorcerer's apprentice, novice programmers must learn to understand and to anticipate the consequences of their conjuring.
—Abelson and Sussman, SICP (1993)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment