[Not] every computer program is a component of a patented invention. But a program that has the same technical effect as an electronic hardware component surely is. In particular, there are two factors that illustrate that executable software or firmware code is in fact a component of a patented invention.
First, executable code is distributed in its final form such that it cannot be changed. The software developer designs the software in the form of source code, and then fixes it in an executable form by compiling it. The act of compiling manufactures the executable code. In order to modify the executable code, it must be decompiled, modified, then recompiled–a process similar to using a sample to manufacture new copies of a gear. Although the software developer may allow the installer to customize certain parameters, the installer is not allowed to modify the executable code. For example, Microsoft requires original equipment manufacturers (“OEMs”) to attach a Certificate of Authenticity to each fully assembled computer system. This
certificate assures customers that they have acquired “genuine Microsoft Windows software.”
Whatever contractual requirements Microsoft may place on its distributors, it seems exceedingly unwise to base any sort of Supreme Court precedent on the notion that “executable code is distributed in its final form such that it cannot be changed.” As I alluded to in my previous post, some software is distributed as source code, and presumably we don’t want to make patent liability contingent on the details of how software is encoded. Moreover, although it’s certainly true that the most convenient way to change object code is to decompile it first, but it’s entirely possible (albeit extremely tedious) for someone to learn to read object code and modify it directly.
It is incorrect for Microsoft and its amici to continually refer to software code as mere “design information,” similar to a mold, blueprint, or specification. The executable code of Windows, for example, is not just an abstract idea or design information, it is functioning software that actually operates the computer–that is why it is called the computer’s operating system.
Strictly speaking, the software doesn’t “actually operate” anything, any more than a recipe “actually operates” a chef. The computer, not the software, is the active agent. Every computer program is, by definition, an abstract idea. Specifically, a sequences of ones and zeros. The fact that we have marvelous machines that can use the information encoded in those ones and zeros to do amazing things doesn’t change the fact that it’s the machine, not the ones and zeros, that is acting.