|
Authored by: Anonymous on Friday, January 04 2013 @ 10:40 AM EST |
There are standard pseudocodes to write algorithm. As far I remember the
standard way to write algorithms is to use an ALGOL like language.
[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Friday, January 04 2013 @ 11:46 AM EST |
I'm actually suprised that no-one has used the defence of "that patent
doesn't actually describe a *specific* invention" yet.
It should be an open-and-shut defence due to patent claims being so wolly.[ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Friday, January 04 2013 @ 11:59 AM EST |
I think I would shoot a C programmer that generated that hcf routine. It
took me a while to figure out what was going on.
Also, is that loop
guaranteed to terminate on all architectures? In particular, does it handle
negative inputs, zero inputs, and inputs where n1 is less than n2 across all
architectures correctly. [ Reply to This | Parent | # ]
|
|
Authored by: Anonymous on Friday, January 04 2013 @ 02:45 PM EST |
Your Original C code loop finishes when n2 is equal to r in the description when
r is equal to 0 (zero)
for (; r = n1 % n2; n2 = r) n1 = n2;
would not this be the correct code?
for (; r = n1 % n2; r = 0) n1 = n2, n2 = r;
[ Reply to This | Parent | # ]
|
|
Authored by: reiisi on Friday, January 04 2013 @ 08:50 PM EST |
This is argument from false hypothesis, but the patterns can be instructive.
First, I know a lot of programmers, involved in high-level design of systems,
who would not have been able to reduce the claims to pseudocode or flowchart.
Therefore, I would suggest that patent applications which try to claim software
implemented inventions must include either pseudocode or flowcharts or both, and
that any pseudocode or flowchart not comprehensible by some patent examiner be
set aside as not being possible to patent. Some patent examiner somewhere has to
sign off as having understood the pseudocode/flowchart part and agreed that the
claims and the code are related.
Second, you present first and second approximation reductions to pseudocode.
They are not necessarily equivalent, depending on the state of mind of the human
reading them. Your pseudocode needed some more work in either case, which
provides a perfect example of something about current software patents.
Neither the patent office nor any court should be allowed to read the provided
pseudocode and/or flowcharting as it should have been written. What the patentee
should have intended cannot be part of the legal process. Only what the patent
itself says. Patents must be read as written, implementation errors and all. And
an error in implementation must be allowed to at least partially void a claim,
especially if there is no evidence elsewhere in the patent to substantiate the
claim.
Buggy patents should not be allowed to establish claims on other people's
working inventions. At least not blocking claims, or claims that would induce
undue burden on the independent inventor.
The pseudocode provided must establish limits to the claims.
Third, the reduction of pseudocode to real code is not automatic. It is not a
determinant process. You demonstrate that in providing a K&R C
implementation and two BASIC version implementations.
This is where the rubber meets the road in patents. Most inventions involving
ideal rods, levers, pulleys, and other basic elements are just simply no longer
patentable. Done before. Many times. Nothing new without materials and other
subtle factors being considered.
Current inventions in the tangible realm have to do with tensile strength,
elasticity, plasticity, etc.
In the software realm, all of the fundamental algorithms have been part of the
state of the art since the 1960s and before. Anything unique enough to be worthy
of patent in the industry since the 1960s and on would require specific
limitation by the behavior of the compilers, interpreters, run-time
environments, libraries, OS context, and actual hardware.
Your C program, as you note, will behave differently when compiled on different
machines. If we assume that it was intended to run correctly, we have to assume
some definition of correctness, and, without specifying the compiler and the
processor, and, for many processors, the run-time providing the modular division
operator, we don't know that your invention works as we understand it to be
advertised.
Furthermore, a program that runs under BBC basic on a BBC would have subtle
differences from one that runs under a BBC emulator on Fedora 17. Such
differences may or may not alter the behavior of the code provided relative to
the claims.
With C, as a particular case-in-point, software that takes advantage of
non-obvious behavior has been quite common. Some of the underpinnings of the
early Unix systems depended heavily on compiler bugs, bugs that allowed code to
be produced in a concise form that fit within the hardware limits of the
computers of the day. So-called "standards conformant" source code to
achieve the same were not compilable by the early compilers. Code produced by
"correct" code compiled by standards-conformant cross-compilers of the
present would not have fit on the old machines.
The patent office and the courts are not responsible, cannot be held responsible
to finish an invention for an inventor. That would be cheating for the guy with
the quickest pen and the most money.
Thus, the source code provided, and the specifications of run-time environment,
including compilers, interpreters, OS and hardware, must be establish limits to
the claims. Patents asserting implementation in software which do not include
source code should be considered to have no limiting claims to take to court
against anyone, and thus rejected.
And test results should also be part of the claims, and required, I think. Some
proof that the machine actually meets the claims being made for it should become
part of the process for the tangible patent realm, as well.
If someone patents an amazing invention that does not work and some other
inventor fixes the bug, the inventor of the fix should be allowed legal tools to
get his share of the patent on the working invention.
(We have many examples in the last century where this was not practiced in
tangible patents, with appalling results. The mere fact that such has been the
practice, that good inventors have died penniless, that some have committed
suicide due to legal proceedings that were given to the entity with the most
staying power, etc., should not be understood to have fulfilled the
Constitutional requirement about inventions and inventors.)
Well, in the past, the aberrations were few enough that we could justify (in our
own minds, but not really) the lack of justice in some cases of patent practice.
The prevalence of non-practicing entities in the current world removes any
ethical or moral cover to the fiat justification.
If we are to fulfill the Constitutional mandate concerning rights to inventions
being secured to the inventors, we can no longer be so lax.
[ Reply to This | Parent | # ]
|
|
|
|
|