A number can be
patented. The US Patent and
Trademark Office will claim that this is not true, but has indeed given patents to numbers.
The title, “On
Computable Numbers” (rather than “On Computable Functions”) signaled a
fundamental shift. Before Turing,
things were done to numbers. After Turing numbers began doing things. By showing that a machine could be
encoded as a number, and a number decoded as a machine, “On Computable Numbers”
led to numbers (now called “software”) that were “computable” in a way that was
entirely new.” – Turing’s Cathedral: The
Origins of the Digital Universe by George Dyson, New York: Pantheon, 2012.
Since 1880, the USPTO has not
required an actual working model, but will grant a patent only based on the plans. Therefore, without
actually producing the working program as an array of gates on an integrated
computer circuit (or “chip”), you could get a patent on the Gödelized code for the description: one number would contain all of the necessary information. That is an extreme example. Many more instances, all mundane to computing are easy to find.
The binary number 00100000 = 20 in hexadecimal or base 16 is the same as 32 in base-10. For a computer that is controlled by an Intel 80xxx
processor, that number encoded on an integrated circuit “chip” will terminate
the program process. It is a
“stop” command. The number
could be “burned in” and the logic gates would be permanent. Most often, though, the integrated
circuit chip is programmable and only holds a temporary configuration.
A computer program is just a
number. At the level of human
obviousness, a computer program is a string of numbers. Here is a program.
10110100
00101100 11001101 00100001 10110000 01000110 11111110 11101110 00001010
00100000 00000001 10001001 11000010 10110100 00001001 11001101 00100001
11001101 00100000
That binary representation might
seem esoteric, but to a programmer who knows Intel 80xxx processors and the
MS-DOS (“Windows”) operating system, it is as “clear and open” as Morse code to
an old Navy radioman. Here it is
in hexadecimal as a more human-friendly kind of computer code.
B4 2C
CD 21
B0 46
F6 EE
05 20 01
89 C2
B4 09
CD 21
BA 18 01
CD 21
CD 20
Here is what that means and
what it does:
B4
2C MOV AH,2C Get the
clock
CD
21 INT 21 execute
B0
46 MOV AL,46 Get the
seconds
F6
EE IMUL DH
multiply the DH by the Seconds
05 20 01
ADD AX, 0120 add 120
to that
89
C2 MOV DX,AX put that number in the DX
register
B4
09 MOV AH,09 display to screen
CD
21 INT 21 execute
BA 18 01 MOV
DX, 0118 end of line
CD
21 INT 21 execute
CD
20 INT 20 quit
If this were programmed into
an integrated circuit chip it would be a Fortune Cookie device. (It would need
the list of Fortunes, but those are plain text and easy to insert.)
Again, for the purposes of the USPTO, every computer is
momentarily “hard wired” to be a machine with a specific purpose. Each program
that it runs creates a new “machine.”
Every computer program creates a new mechanism, a new system of logic
gates “burned” (temporarily) into an array of integrated circuits.
That is another fundamental contradiction in patent law. If every program creates a new “machine”
then so must every change order, every update, every bug patch.
Would a bug patch release not invalidate the previous patent? Patent
law has no way to deal with an inventor’s invalidation of his own creation.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.