Software and Hardware
Last Update: Wednesday, 3 July 2024 |
Note 1: Many of these items are online; links are given where they are known. Other items may also be online; an internet search should help you find them.
Note 2: In general, works are listed in chronological order. (This makes it easier to follow the historical development of ideas.)
§12.1: The Nature of Computer Programs:
§12.2: Programs and Algorithms:
§12.3.2: Software, Music, and Art:
§12.3.4: Copyright vs. Patent:
§ 12.4.1: Levels of Understanding:
disagrees:
See also p. 59, where he talks about "realizations or embodiments of a Turing machine".
§12.4.4: "Following Instructions":
A simpler example of center embedding is the sentence
where the sentence 'Cats chase' is embedded in the center of the sentence 'Mice eat cheese', qualifying the kind of mice that eat cheese, namely, the ones that cats chase.
If we replace these words with others, we get a center-embedding sentence that is harder to understand:
Here, the sentence 'Dogs dog' (meaning "Dogs follow closely") is embedded in the similar sentence 'Dogs dog dogs' (meaning "Dogs follow other dogs closely").
Finally, if we replace these words with still others, we get the following perfectly grammatical and meaningful sentence of English:
Instead of cats chasing and dogs dogging, we have buffalo buffaloing (that is, bison intimidating; note that the plural of 'buffalo' is also 'buffalo', just as the plural of 'sheep' is also 'sheep'). Embedding 'Buffalo buffalo' into 'Buffalo buffalo buffalo' (meaning "Some bison intimidate other bison"), we get the sentence above, which means "Bison that other bison intimidate intimidate in turn still other bison").
A distinction is sometimes made between a "basic action" (think of a primitive operation of a programming language) and a "non-basic action" (think of a new operation defined by procedural abstraction, as discussed in §16.10.3). Non-basic actions are done "by doing" certain basic actions.
(This is also related to the distinction made in §16.5 between an algorithm (A) and its purpose or goal (G), as in the formulation: In order to accomplish G, do A. Here, A is like a basic action, and G is like a non-basic action.)
For more on the basic/non-basic distinction, see:
§12.5: Suber: Software is Pattern:
§12.6: Software Is a Concrete Abstraction:
For physiological examples of multiple implementations (or realizations), see: