Example of structure of higher levels of control

[From Bill Powers (931025.1810 MDT)]

Here is a program-level perception, exemplified in C:

for(i=0; 0; i = i + 1)
{
  SeqA();
  SeqB();
  f1(SeqC,x[i]);
  SeqB();
  for(j=i,j >= 0; j = j - 1) f2(SeqD,s[j]);
  SeqA();
  SeqB();
}

The "0" in the middle of the first "for" statement indicates that
the outer loop never terminates.

SeqA() is execution of the sequence "Old MacDonald had a farm."

SeqB() is "EE AYE EE AYE OH"

f1(SeqC,x[i]) is a logical function with the following
components:

    x[i] is an array of animal category names.

    SeqC is "And on this farm he had a/an x"

    The function fills in x with the name of an animal.

The embedded "for" loop starts with its index j set to the
current value of the i index and counts down to 0. Each time, it
executes

f2(SeqD,s[j]), which is a logical function with the following
components:

   s[j] is the name of the sound made by animal x[j].

   SeqD is "with a s[j] s[j] here, an s[j] s[j] there, here an
   s[j], there an s[j], everywhere an s[j] s[j]"

   The function fills in the s[j] with the name of an animal
   sound.

After the inner loop is complete, the outer loop ends with SeqA()
and SeqB() again.

The outer loop can be given a pre-computed list of animal names
and corresponding sounds, or the arrays can be built up as the
program is carried out (by another system not indicated). If a
preset list is used, then the first "for" statement will be
changed to terminate when the list has been exhausted.

Execution of each sequence (done by the sequence level) entails
running through a fixed list of words and at the same time a
fixed set of timings (events) and pitches (sensations), both in a
fixed order. Systems at all lower levels handle the details of
providing the requested perceptions appropriate to each level, to
create the needed perception at the next level.

This program is apprehended as a single familiar thing (in the
appropriate culture): it is referred to as "Old MacDonald."

It is a program and not a sequence because any list of animals
and paired sounds can be filled in in any order and the program
will run in the same way, adjusting the sequences by filling in
the variables. The form of the program is the program perception;
it is independent of which sequences and variable lists are used.
It would be possible to invent any number of different songs with
this same program-level form of organization. Instead of animals
and animal names, you could use the names of atomic particles and
the rest-masses of each one, or athletes and the typical action
each performs, and so on. Of course sequences A, B, C, and D
could be changed to any other sequences of words with completely
different meanings, and the melody and timing could also be
altered freely. The program-level perception would remain exactly
the same.

This exercise brings out many of the details of higher-level
control behaviors that we have to work out in defining levels and
their relationships to each other. It would be interesting to
know at what age children make the transition from singing Old
MacDonald as a single long sequence to being able to execute it
as a program with indefinite and variable input lists (themselves
sequence-level perceptions, of course).

···

----------------------------------------------------------------
Best,

Bill P.