QUOTE (normandinf @ Oct 7 2008, 07:24 AM)
It isn't actually patented any more. The patent expired on Valentine's Day, 2007.
But that does still leave the question: How could it ever have been patented?
Story Time!
When I started working at NI, Jeff Kodosky, founder of company and father of LabVIEW, gave a presentation to the new hires about how NI tries to only apply for valid patents and tries to avoid filing for the silly patents that have plagued software development over the decades. We don't always have the option because in the current patent system, if you don't apply for something, a competitor may apply for it and put you out of business. But by and large, NI has been good about this.
A couple days later, waiting for a long compile, I was scrolling through the list of NI patents. And I found a patent on "use of rectangles in a graphical programming language." The patent had Jeff K as the author. And I went to Jeff and I said, "Really? Rectangles? You can't believe this was a valid patent!"
As Jeff K explained, the titles on patents never tell the full story. :-) Here's the background: In the late 1960s and early 1970s, the concept of a dataflow programming first formed in various academic settings. A number of papers were published talking about how useful these languages could be in expressing parallelism. There was just one hitch -- no one could express a loop. My understanding (from Jeff) is that the syntax notation for a loop eluded everyone for over 10 years. People tried dotted lines along wires, codas (like in music to jump to a different point in the score), and a host of other things. Nothing could satisfactorally express a loop until Jeff K came up with the idea of structured dataflow and expressing the loop as a rectangle or other enclosing form. In retrospect it seems obvious, but according to Jeff it took him a full year of doodling (and not getting much else done for the young NI corporation) to hit upon the idea. The ideal was novel, clearly non-obvious at the time of discovery, and a significant R&D investment. Thus it justified being patented. The patent actually covered the concept of structured graphical data flow programming, the idea that a region of code -- not a particular wire segment or dataflow instruction -- was how programmers should specify flow-of-control notation for the program.
And that's how you get a patent on For Loops.