Patents protect an invention. Unlike copyrights (see post on copyrights), one must apply for a patent by filing with the patent office. If the patent is granted, then the patent holder has exclusive rights to that invention.
When an invention is submitted for a patent, it becomes public domain. Others can than learn from that invention. But, once the patent has been issued, others can’t use it without permission.
The invention could be a series of steps, something that applies particularly well to software. Patents protect the idea behind the invention, regardless as to how it is implemented. The following is one implementation of an idea:
y = 0; for (i=1; i<=x; i++) y += 3*i*(x+2);
And this one is another implementation:
y = 3*(x+2)*x*(x+1)/2;
These two expressions produce the same results. Both are mathematically identical. Both of these would likely be protected by a patent.
If someone is unaware of this patent and “invents” and implements the same idea, they are, unfortunately, infringing on this patent. Obviously they did not do so with malicious intent but they would have to resolve it somehow, such as either remove it or pay licensing fees.
The concepts and examples I’ve written here are brief and incomplete. Closer examination is required on a case by case basis with legal counsel to determine if software source code has infringed on a patent.
Gary Stringham is an acknowledged hardware/software/firmware expert witness and consultant. Feel free to contact him at 208-939-6984.