FREE HISTORICAL FIGURES OF COMPUTING PROFILE

Basile Bouchon

Life dates uncertain; active in 1725 · Textile mechanic

Basile Bouchon

Perforated control media · Active in Lyon in 1725

Bouchon is associated with an early use of perforated paper to control pattern selection in weaving. The important technical idea is that a replaceable physical description can guide a mechanism. It does not follow that the mechanism is a general-purpose computer, or that every later storage medium descends directly from this one device.

What can be said about the person

Reliable life dates are not established here. In particular, 1725 is a date associated with the mechanism, not a birth year. Lyon's municipal library discusses possible confusion between people named Bouchon or Boachon, including records of activity separated by many decades. An apparent match of names is insufficient to assemble a biography. Dates, occupations, relatives, and places must fit a single person's documentary history. Bibliothèque municipale de Lyon, archival identification discussion

The Digital Computer Museum's 1981 catalog describes Bouchon's perforated-tape selection mechanism and an assistant pressing it against sensing needles. This supports a limited statement about mechanized selection, not a claim of fully unattended weaving. The surviving online document includes a later note about its publication history; it is a retrospective museum account, not a contemporary patent or workshop record. Its incidental family claim is not used to resolve the identity problem. Museum catalog, section on card-controlled looms

Worked mechanism: selection and sequencing are separate

Consider an original teaching model with four independently selectable groups of warp threads. Number the groups 1 through 4 from left to right. A control row has four binary entries; 1 means lift that group and 0 means leave it. This convention is defined for our model, not asserted as Bouchon's exact historical encoding.

Let the three-row pattern be:

row 0: 1001
row 1: 0110
row 2: 1100

A complete controller state needs more than the currently visible row. Let i be the row index and phase be either SELECT or ADVANCE. In SELECT, read row i, set the selectors, and perform one weaving step. Then change to ADVANCE. In ADVANCE, increment i modulo 3 and return to SELECT. Assume the material and mechanism are ready before each step.

The first four outputs are therefore 1001, 0110, 1100, 1001. If the mechanism advances twice between selections, the sequence becomes 1001, 1100, 0110, 1001. Each row may be read perfectly while the pattern is still wrong. Selection correctness and sequence correctness are independent obligations.

An operator can supply some state transitions. That does not make the control medium useless, but it changes what has been automated. A precise historical description should identify the human's remaining tasks instead of treating the word "automatic" as an all-or-nothing property.

What testing can reveal

Suppose a reader accidentally reverses the four positions. The symmetric rows 1001 and 0110 will still appear correct. A test consisting only of those rows cannot detect the defect. The asymmetric row 1000 should select group 1; under reversal it selects group 4.

Now consider four separate stuck-at-zero defects, one per selector. The four tests 1000, 0100, 0010, 0001 detect all four: each requests exactly the group under test. They also help locate the failure. A single 1111 detects that at least one group failed if every output can be observed, but it does not distinguish a reader that permutes the groups, since any permutation leaves 1111 unchanged.

The test suite must follow the fault model. Detecting one specified failure does not prove the system correct against every possible failure. This reasoning is directly useful in software testing and hardware diagnostics, although the tests here are original constructions, not historical procedures.

Storage, control, and physical limits

A four-position row admits 16 possible selections. Three independent rows admit 16³=4096 sequences of length three. That count describes the encoding space. It does not establish that every encoded pattern makes usable cloth: thread grouping, tension, materials, and loom setup constrain the output.

A fixed cyclic sequence also lacks input-dependent choice. To add such a choice, specify a sensor input s and a transition rule, for example next(i,s)=0 when s reports a fault and (i+1) mod 3 otherwise. That is a new controller, with behavior absent from the original fixed-cycle model. Increasing the number of predetermined rows does not create a conditional branch.

The valuable computer science distinction is between an encoding, an interpreter, and the interpreter's available operations. Changing the encoding can select new behavior within those operations. It does not automatically enlarge the operations themselves.

Exercises

  1. Encode selections of group 1, then group 3, then groups 1 and 3 together. Give the first five outputs when the sequence repeats. Design one test that distinguishes reversed indexing from correct indexing.
  2. A reader is known to have exactly one of these behaviors: correct, reversed order, every bit complemented, or selector 2 stuck at zero. Give a short test suite whose observed outputs identify which behavior it has. State the full expected observations.
  3. A controller with three rows advances twice after every weaving step. Prove that it still visits all three rows, but in the wrong order. Would the same argument work for a four-row pattern? Explain the difference.
Compare your reasoning with the worked solutions
  1. The rows are 1000,0010,1010. The first five outputs are 1000,0010,1010,1000,0010. A single request 1000 separates correct indexing from reversal: the expected outputs are 1000 and 0001. An all-one test would not distinguish them.
  2. Use 1000 followed by 0100. Correct behavior yields 1000,0100; reversal yields 0001,0010; complementation yields 0111,1011; selector 2 stuck at zero yields 1000,0000. These pairs are distinct, so they identify the behavior within the stated four-case model. If multiple faults may coexist, this conclusion no longer follows without extending the model and checking the resulting signatures.
  3. Starting at index 0 and adding 2 modulo 3 gives 0,2,1,0. Because 2 and 3 are relatively prime, repeated addition reaches every residue before returning. With four rows, adding 2 modulo 4 gives 0,2,0,2; rows 1 and 3 are never visited. More generally, a fixed step d visits n/gcd(n,d) positions in a cycle of length n. Here sequencing can corrupt order or omit states, depending on the cycle length.