Software patent sillyness – and a better definition of what should be patentable.

This could be a very nice and clear definition of what should be patentable and what not:

Software Patents Don’t Compute – No clear boundary between math and software exists
First of two articles on software patents, by Ben Klemens

http://www.spectrum.ieee.org/WEBONLY/resource/jul05/0705inve.html

[…]

In 1936, Alonzo Church proved that that stuff is mathematics. Church created lambda calculus, a formal means of writing mathematical expressions and also a tool that can be used to program a state machine. That is, any program written in a language such as C is a trivial translation of a set of purely mathematical lambda-calculus expressions.

So where is the line drawn between software and mathematical expression? Based on Church’s and Turing’s work, there is none. Any legal attempt to force a wedge between pure math and software will fail because the two are one and the same. A patent on a program is a patent on a mathematical expression, regardless of whether it is expressed in C, Lisp, or lambda calculus.

BUT WHILE DEMOLISHING the distinction between software and math, Turing and Church’s work offers a natural division between patentable machinery and unpatentable mathematics-exactly what we have been looking for. Let the devices that implement state machines-physical objects such as computers-be patentable, and the states to which they are set-information such as programs and data-remain unpatentable. The distinction meets the goal of ensuring that pure mathematics is not patentable while letting those who design faster and better computing devices patent their inventions.

The distinction is clear, and it offers no slippery slope down which the courts could slide. An innovative field-programmable gate array (FPGA) is a state machine and so would fall on the patentable side of this fence, while code loaded onto the FPGA would be an unpatentable state to which the state machine has been set.