IBM Patents Optimization 156
jamie(really) writes "IBM appears to want to patent optimizing programs by trial and error, which in the history of programming has, of course, never been done. Certainly, all my optimizations have been the result of good planning. Well done IBM for coming up with this clever idea. What is claimed is: 'A method for developing a computer program product, the method comprising:
evaluating one or more refactoring actions to determine a performance attribute;
associating the performance attribute with a refactoring action used in computer code; and
undoing the refactoring action of the computer code based on the performance attribute.
The method of claim 1 wherein the undoing refactoring is performed when the performance attribute indicates a negative performance effect of the computer code.'"
lolwut? (Score:2)
The first two words of what is claimed:
"A method"
IBM? Fear the soon-to-come decision regarding Bilski vs. Kappos [swpat.org]. That is all.
Re: (Score:3, Funny)
I think the next software patent would be on the lines of:
A method for developing a computer program product, the method comprising: Inputing characters and symbols with the help of an input device after processing the semantics and possible meaning mentally beforehand.
Re: (Score:2)
Nonsense! That would never work.
Re: (Score:2)
From their patented random patent generator. (Score:2)
Re: (Score:2)
I'll code in MS Robotics Studio, then. It doesn't rely on all of those silly characters in your patent.
Re: (Score:2)
Re: (Score:3, Insightful)
Bilski is not going to make all methods unpatentable. 35 USC 101 states that processes (i.e., methods) are a permitted statutory class of invention for the purposes of obtaining a patent. The key is whether certain types of methods fall under the previously delineated judicial exceptions (abstract ideas, natural phenomena, or laws of nature) to the four statutory classes of invention that 35 USC 101 describes (processes, machines, articles of manufacture, and compositions of matter). Specifically, the US
Re: (Score:2)
To be more precise, it has to meet either one of the following criteria: 1) the method is tied to a particular machine or apparatus; or 2) the method performs a transformation of a particular article into a different state or thing. Furthermore, the machine tie or the transformative step can't merely be related to insignificant extra-solution activity, so if you're talking a computer-implemented method of some sort, the machine tie can't simply be in an input or output step that doesn't have much to do wi
Re: (Score:2)
You're talking about a Supreme Court which ruled that Corporations can spend as much as they want on election campaigns. What the hell makes you think they're going to overturn software and business patents?
Re: (Score:3, Interesting)
You're talking about a Supreme Court which ruled that Corporations can spend as much as they want on election campaigns. What the hell makes you think they're going to overturn software and business patents?
The fact that everyone on the Supreme Court unanimously agreed that Bilski is full of crap, for starters. It was essentially a public beating of Bilski's claims.
Click here for analysis of the arguments. [patentlyo.com]
Click here for the full transcript [supremecourtus.gov].
If Only There Was a Way to Integrate This (Score:5, Funny)
Did you get all that? Because I think I just made history.
*grabs his head* Oh Jesus, oh sweet Jesus, another one's coming to me. It's gonna be big! What if
Elvis MF Christ I am going to be a rich man.
Re: (Score:2)
*Stands out of Chair*
YOU'VE INSPIRED ME.
I've got it. Imagine like... an environment... a virtual environment... thats integrated into the language you are developing in. Just the concept of it is groundbreaking. You could customize it however you want! Now, imagine this... right... the integrated development environment was capable of performing everything you just said!
Why, I don't think anyone has ever thought of this before. Not Microsoft [microsoft.com], not even the open [codeblocks.org] source [eclipse.org] community [netbeans.org]!
Seriously John, lets jump on
Re: (Score:2)
Oy Carumba! (Score:2)
Re: (Score:3, Funny)
Re: (Score:2)
Thank goodness (Score:4, Funny)
Thank goodness we allow software and concept patents in the US, else this new advancement in computer optimization might never have been developed. As a bonus, once the patent expires, the method will be in the public domain, so everyone will be free to optimize their code using trial and error.
It makes me wonder... (Score:1, Funny)
Can I patent "Hip Thrusting for Procreation or Fun" and just bill the planet?...c'mon only $2/person ($1 in the developing world cause I'm generous like that).
Let me guess... (Score:5, Interesting)
...there was a $10,000 bonus for patents at IBM in the month of April 2008, right? Alternatively, this was submitted internally at IBM on April 1, and someone missed the joke.
IBMs internal process must have slipped a lot since I was there. I was once on a team which applied for a patent which was useful and arguably non-obvious, the only problem being that IBM had actually done something similar some 20 years before (in a different language)... internal patent people shot it down.
Re: (Score:2)
Russel and Norvig (Score:1)
A big shout-out from IBM to all our hill-climbing friends.
Worse even than Business Patents (Score:1)
As crappy as business model patents are, I think I like product development process patents even less.
Is there some sort of public RFC system on patents? Is there a "write your senator" sort of mechanism for the scenario where the public hears about a patent application before it's awarded and wants to make sure the patent investigator understands the situation? If not, it seems like that would be a worthwhile tool to have.
Re:Worse even than Business Patents (Score:4, Interesting)
Third parties can pay the USPTO a fee (currently $180) to put references into the file of a pending application and have those references considered by the examiner. However, you have to do this within two months of the date of publication (or two months after a notice of allowance in the application, whichever is earlier), and you cannot make any commentary whatsoever concerning the references you cite. You also have to serve the applicant with notice that you filed the references with the USPTO.
See 37 CFR 1.99 and MPEP 1134.01 [uspto.gov] for more details.
WikiPatents (Score:2)
Is there some sort of public RFC system on patents? Is there a "write your senator" sort of mechanism for the scenario where the public hears about a patent application before it's awarded and wants to make sure the patent investigator understands the situation?
There is WikiPatents [wikipatents.com].
Monte Carlo (Score:2)
I had a professor who said that beginner programmers use the Monte Carlo method of programming. You've probably done it, too: change something at random and see if that fixes the problem.
I guess this would be the Monte Carlo method of optimization?
Re: (Score:2)
This reminds me of the "slowest ever compiler" paper. The compiler generated very unusual and fast code, but the compile time was O(256^n) with n being the bytes of code generated. Essentially, the compiler had two algorithms. A random number generator that generated the code, and a verification algorithm that verified the code was correct. The program then selected the fastest of the randomly generated code vectors as its final output.
You could describe this as the ultimate "Monte-Carlo" compiler. Th
Re: (Score:2)
Re: (Score:2)
You've probably done it, too: change something at random and see if that fixes the problem.
I wouldn't quite put it that way. You can change something at random and see if that causes your output to be what you expect, but that's not the same thing as fixing the problem. The only way to fix a problem is to actually understand what it is. The program must be correct for all inputs, not just the ones you are testing. Since you can't test everything (usually), you need to prove (or at least provide strong evi
Newton's Method? (Score:3, Interesting)
Isn't the larger class of this idea called Newtons Method? Not only has it been done on the software level; I think the mathematicians may have something to say about it too.
Re: (Score:2)
Re: (Score:2)
As a mathematician, I have only one thing to say:
BWAHAHAHAHAHA!
Here's an idea: (Score:5, Informative)
If you're going to comment on a patent, read the patent first.
"IBM appears to want to patent optimizing programs by trial and error"... ...except that isn't what the patent claims describe. I'll grant that if your expectations have been set to believe that's what the patent covers (as mine had been by the summary), then it's possible to interpret the claims in a way that conforms to that assumption; but if you actually read the entire patent to understand the claims in context, that isn't what they really say.
What they are trying to patent is a specific optimization - that of reversing refactorings that the programmer did. If you would like to debate why this is, or isn't, a valid thing to patent, go right ahead; but please don't waste the debate by talking about all the different code optimization schemes that don't do what the patent describes and pretending they are prior art.
Re: (Score:2)
You mean they don't want to patent trial and error, but the usage of repositories? ;-)
Re: (Score:2)
You must have a pretty cool code repository if it tags which changes are refactoring and then evaluates the performance impact of those changes so that they can be automatically reversed prior to compilation if they have negative performance impact.
Re: (Score:2)
Re: (Score:2)
No, I ignored it because it lacks semantic value. Perhaps you haven't noticed how deluted emoticons have become.
More importantly, patents are an issue where a large pool of /. readership is routinely confused and misinformed. Sure, I could spot you the assumption that you understood what was really going on and just decided to play on the ambiguous wording. So what? I'm more concerned with making sure the truth of the matter is visible to those who would be all too happy to take your joke as validation
Re: (Score:2)
I do indeed. My already existing repository system does happen to build the software automatically, tests if it meets specification and alerts the committing developer and his team leader if the committed code does not meet spec, It even has the nifty ability to produce line graphs of performance on critical tests so that you can watch performance go up and down over time for cases where performance degradation was not below the critical limit.
The only step missing is stomping all over the developers work,
Re: (Score:2)
With what IBM patented you'd keep and see the good code, while the compiler sees only the bad but faster version.
I cannot say that I
Re: (Score:2)
(I seem to have somehow attached this reply elsewhere to the wrong comment... So trying once again:)
Now that's a good point (though just for completeness, I should point out that the merit of the invention is different from the merit of the patent). This strikes me as a very dangerous optimization, especially once the refactored-but-not-refactored code starts undergoing further changes.
Re: (Score:3, Insightful)
Too bad the "only thing missing" is the crux of the patent; so when you said "I do indeed" you meant "No, I don't".
You mention that using your toolset the developer can just revert the change. Trouble is, once that's done the user-readable code no longer benefits from the cleaner, refactored version; the developer has to choose to give up that benefit to get the better performance. The patent discusses a scenario where you can get the best of both worlds; it doesn't revert the change in the user-readable
Re: (Score:2)
Now that's a good point (though just for completeness, I should point out that the merit of the invention is different from the merit of the patent). This strikes me as a very dangerous optimization, especially once the refactored-but-not-refactored code starts undergoing further changes.
Re: (Score:2)
Must've pressed the wrong Reply button. Bleh. You can find the parent comment reproduced where it belongs, as a reply to the GP comment's sibling.
Re: (Score:2)
It's one of the standard techniques in Evolutionary Programming (also known by other names, sorry).
You take a code base, make a bunch of permutations, check each one, including the parents, for optimality against some test, select a few for the next generation, and repeat.
You prefer to do permutations, because random mutations are more likely to fail, but you also throw in a few of those so you don't get stuck in a dead end. You tree-structure (or some such) the code, so that the permutations come in all d
Re: (Score:2)
Re: (Score:2)
Sorry, but that's not the context of evolutionary programming. The system does the refactoring, and no human expects to EVER understand why the code works as it does except in *very* simple cases. (Also, the refactoring is not intended to avoid changes in design. It's intended to automatically change the code actions so they they more nearly approach some defined optimum.)
Sometimes the code can be understood by people. Not usually though. It tends to produce spaghetti code with many global variables. U
Re: (Score:3, Interesting)
If you're going to comment on a patent, read the patent first.
Actually I'm amazed and delighted that quite possibly for the first time in the history of /. we have a patent story that doesn't mis-identify an application as a grant, and that actually quotes the claims!
Who says there's no such thing as progress?
And the comments have been relatively germane: the patent describes the process of implementing a refactoring, evaluating it (possibly before compilation) and reverting it if it does not pass one or more measures of goodness (time and potentially others.) Every
Re: (Score:2)
"So here's a question: if I create an experimental branch in my local git repository, start a refactoring, decide the cyclomatic complexity of my refactored solution is too high when I get half-way through, and revert by simply dropping the branch without ever committing, would I be violating this patent (if it were granted)?"
No, I don't think the patent covers that.
You're talking about choosing between the "cleaner" refactored code, or the "somehow better" non-refactored code. The patent is talking about
Re: (Score:2)
The patent is talking about using a precompiler so you can have your cake and eat it too.
Any of the common tools for measuring cyclomatic complexity would seem to me to qualify as an instance of a "precompiler" in the relevant respect.
Re: (Score:2)
For a tool to qualify as an instance of a precompiler, I believe it would have to allow you to keep the refactoring in the human-readable code, while removing it from the version that the compiler sees. I don't know that you'd want to do that if the refactored version has greater complexity, but even if you wanted to I don't know of any tool that would facilitate it. Just detecting the increase in complexity isn't the crux of the patent.
Re: (Score:2)
1. Do [X] automatically to the code
2. Evaluate performance gain
3. Keep or throw the modification based on the result of (2)
is no more of an innovation that the procedure to do X automatically. This kind of patents comes from crossing very known procedures in order to get something that is maybe not prior art but is made from the obvious combination of prior art. You know, if there was a way to describe patents as a templated, machine-readable format, I could make a gener
Re: (Score:2)
Ok, but that is not what the patent describes.
Do [X] automatically to the code
The patent has nothing to do with automatic refactoring. The refactoring is done by the programmer by whatever means the programmer would do it today.
Keep or throw the modification based on the result of (2)
The patent describes a system that doesn't choose between keeping or throwing out the change. It keeps it in the human-maintained codebase, and may present the code to the compiler as though it had thrown it out (based on the
Re: (Score:2)
But how is that different from an optimizing compiler? Is separating the optimizer from the compiler really worth a patent? And in that case, aren't the various compile-to-C implementations of various languages examples?
Sorry, every interpretation of this I've encountered looks like it has LOTS of prior art.
N.B.: I've been told that it's dangerous for programmers to read patents, and also dangerous for non-patent-attorneys (i.e., not just attorneys, but patent-attorneys) to claim to understand what a pate
Re: (Score:2)
Irony (Score:3, Insightful)
Typical response from a child. When told you should educate yourself about what you're trying to attack
And:
you're going to have to lose the whiny bitch attitude before you'll have any chance
Just saying.
Re: (Score:2)
And yet another moderator thinks "Troll" means "Written in a tone I don't like". What a shocker.
Re: (Score:2)
Re: (Score:2)
You on a mission, son? Good luck.
Re: (Score:2)
Not About Trial and Error (Score:5, Informative)
If you read the description [google.com], the claimed invention is not about trial and error development. The idea is that every time code is refactored, the development environment will tag the refactoring. Refactorings that could affect performance are transparently undone at compile time, so long as it wouldn't change the functional behavior of the program. Thus, the developer sees nice, neat comprehensible code, and the compiler sees more optimized, compiler-friendly code.
Also, if you look the application up on PAIR [uspto.gov] (the PTO's public patent application database, which contains more detail than the regular patent search or Google Patents), you'll see that it's a new case. That is, the Patent Office hasn't examined the application yet. It's highly likely that after a few rounds of office actions the claims will not look like the current ones. They will probably be narrower and hew more closely to the description in the specification.
Abolish patents already (Score:2)
Inventions then cannot, in nature, be a subject of property. Society may give an exclusive right to the profits arising from them, as an encouragement to men to pursue ideas which may produce utility, but this may or may not be done, according to the will and convenience of the society, without claim or complaint from anybody. Accordingly, it is a fact, as far as I am informed, that England was, until we copied her, the only country on earth which ever, by a general law, gave a legal right to the exclusive use of an idea. In some other countries it is sometimes done, in a great case, and by a special and personal act, but, generally speaking, other nations have thought that these monopolies produce more embarrassment than advantage to society; and it may be observed that the nations which refuse monopolies of invention, are as fruitful as England in new and useful devices.
Thomas Jefferson, founder member and director of USPTO.
http://press-pubs.uchicago.edu/founders/documents/a1_8_8s12.html [uchicago.edu]
Re: (Score:2)
Re: (Score:2)
i didnt 'misread' the quote. i have provided the quote in order to stress the invalidity of the 'patents spur innovation' bullshit, and through that, invalidity of the concept of patents, through jefferson's words.
for, once you write off the 'patents spur innovation' delusion, only thing that remains is whether anyone can hold the right to concepts and ideas, like property. and jefferson further discredits that idea in his text. read the full text.
Re: (Score:2)
i didnt 'misread' the quote. i have provided the quote in order to stress the invalidity of the 'patents spur innovation' bullshit, and through that, invalidity of the concept of patents, through jefferson's words.
But Jefferson's words are discussing a non-time limited, inheritable patent right and how that would stifle innovation, and instead suggests that patents are granted rights rather a natural right or entitlement. Your "abolish patents" is misplaced from that quote.
Re: (Score:2)
not as such.
consider jefferson's time to ours. its 1800s, a time when life, leave aside everything else, moves slow. everything takes long, including inventions and their subsequent implementation.
now consider our date. today, even a patent that has an 10 year duration is too long, because life is fast, technology moves fast.
in that context, a lifetime patent may have been logical in early 19th century, but, even 5 years, leave aside a decade, is too long for 21st century.
Re: (Score:2)
not as such.
consider jefferson's time to ours. its 1800s, a time when life, leave aside everything else, moves slow. everything takes long, including inventions and their subsequent implementation.
now consider our date. today, even a patent that has an 10 year duration is too long, because life is fast, technology moves fast.
in that context, a lifetime patent may have been logical in early 19th century, but, even 5 years, leave aside a decade, is too long for 21st century.
First, no, technology doesn't move fast because it's the 21st century instead of the 19th. Technology moves faster or slower depending on the industry. 10 years is a long time for software, but it's a really short time for an internal combustion engine's fuel injector, or a planetary engine, or an automatic transmission, or drug development, or creation of a new ceramic alloy, etc. Your argument shouldn't be "shorten patent lifetimes because it's the 21st century," it should be "shorten software patent life
Re: (Score:2)
first,
doesnt the need to 'readjust' patent durations because of the differences in different industry sectors direct out imply that longer 'ownership' 'rights' are detrimental to those sectors, and therefore villify patents.
second,
no, you are still not getting the point and point of the quote. in the quoted article, he says that claiming ownership of a thought or idea is illogical. that is a solid reason for unreasonability of patents.
Re: (Score:2)
doesnt the need to 'readjust' patent durations because of the differences in different industry sectors direct out imply that longer 'ownership' 'rights' are detrimental to those sectors, and therefore villify patents.
No, if it "vilifies" anything, it is merely the idea of a one-size-fits-all theory.
no, you are still not getting the point and point of the quote. in the quoted article, he says that claiming ownership of a thought or idea is illogical. that is a solid reason for unreasonability of patents.
No, he claims that a property right in an idea is illogical, but that "society may give an exclusive right to the profits arising from them, as an encouragement to men to pursue ideas which may produce utility."
There are more rights than just property. That's what he's talking about - that a patent is not the same as a house, which can be left to your descendants.
Re: (Score:2)
no, it definitely villifies patents. basically if patents are detrimental to human progress and knowledge for any given duration, it means that they are detrimental for any duration.
and are you aware that profiting rights are basically as same as ownership rights ? after all, no feudal lords really owned the land they were sitting on - all of their profits were leased to them and their heirs for life by their king.
Re: (Score:2)
no, it definitely villifies patents. basically if patents are detrimental to human progress and knowledge for any given duration, it means that they are detrimental for any duration.
That doesn't follow logically at all.
and are you aware that profiting rights are basically as same as ownership rights ?
I'm aware you probably haven't taken a class in property law. They're not at all the same things.
after all, no feudal lords really owned the land they were sitting on - all of their profits were leased to them and their heirs for life by their king.
Yes, but they also had more rights given to them than just the right to profit from a certain chunk of land - they also had the right to exclude others from the land, the right to use and enjoy the land, the right to sublease or assign their interests in the land, the right to take action against third party occupiers, etc. Tons of independent rights involved, any of which co
Re: (Score:2)
That doesn't follow logically at all.
sure it does. technology is something that progresses steadily. anything that hampers its development for any period or duration, would hamper it in any other form. therefore, even if you limit patents to 1 year durations, this will still limit the development of technology to 1 year terms.
I'm aware you probably haven't taken a class in property law. They're not at all the same things.
the property law, which descends from middle ages feudal ownership laws (mainly french, later british), which in turn descends from a mesh of late roman empire property ownership AND communal germanic ownership concept. n
Re: (Score:2)
That doesn't follow logically at all.
sure it does. technology is something that progresses steadily. anything that hampers its development for any period or duration, would hamper it in any other form. therefore, even if you limit patents to 1 year durations, this will still limit the development of technology to 1 year terms.
That's a bit of a naive depiction. Technology doesn't just "progress". It takes frequently-expensive R&D and investment. Investors aren't going to spend that money if they can't get a return. Back before patents, the answer was to keep everything as a trade secret. That stifles innovation because every company has to duplicate everyone else's research, over and over and over again. The patent system encourages public disclosure of innovations that wouldn't happen otherwise.
practice matters. once you give right to profit over something to solely one person or group, other groups will not be able to find many uses for that item. it wouldnt do anyone good to employ any kind of contraption as a hobby in their garage on weekends.
There are many products which
Re: (Score:2)
That's a bit of a naive depiction. Technology doesn't just "progress". It takes frequently-expensive R&D and investment. Investors aren't going to spend that money if they can't get a return. Back before patents, the answer was to keep everything as a trade secret. That stifles innovation because every company has to duplicate everyone else's research, over and over and over again. The patent system encourages public disclosure of innovations that wouldn't happen otherwise.
not naive at all. technology 'just' progresses, in an environment which allows free flow and exchange of ideas without requiring people to pay for them. most of the technological breakthroughs of late 19th and early 20th century were done with zero investment, and everyday items. just going through the early life of thomas alva edison will make it clear that for innovation to happen, one doesnt even need education, leave aside investment. early lives of tesla, faraday, and many other inventors and scientist
Re: (Score:2)
he does. since he iterates that software patents to NOT spur innovation, or cause it at any point. and, thoughts and ideas cannot be counted as property and held natural rights over.
Re: (Score:2)
So your reply to a guy quoting Jefferson is your uncited opinion that Jefferson disagrees with the quote?
Citation or STFU.
Re: (Score:2)
So your reply to a guy quoting Jefferson is your uncited opinion that Jefferson disagrees with the quote?
Citation or STFU.
Carefully read the first sentance of his post, he is citing the OP's own link.
The quote indicates Jefferson thought there is a fine line between patents and pain, if england could do it, then he could do it the same...sorry Cindy Lauper is on the radio...
Re: (Score:2)
Fair enough - I failed at reading comprehension. I had somehow read the AC's quote as being copied from the OP's quote.
(BTW, I have now read the text from the link :-)
However, I don't think the AC's quote supports his position. IMO this snippet of the OP's quote is much more telling:
I see nothing in Jefferson's letter that posits that ideas as property is useful, and that fragment
Phewwwww, fortunately does not affect me (Score:2)
The abstract is *not* the patent (Score:2)
The patented stuff is the "claims". You'll find them hidden, starting somewhere within a brick of text. Harder to find than the abstract, but they're the thing that count.
Re: (Score:3, Informative)
The patented stuff is the "claims".
Incredibly enough what is quoted in the summary is actually the first claim. It looks like the abstract is just about identical, so it may be an oversight on the part of the /. editors, who in the past have routinely mangled patent stories so badly as to make one suspect they love the patent system so much that they can't find anything truthful to say about it that looks bad. But in this case they've done the right thing, and the claims are actually as dumb as the summary makes them sound.
Bad summary, refactoring not optimization (Score:5, Interesting)
This is not a method of gradually figuring out how to boost performance by trying different things.
This invention makes changes to the source code on the fly. The purpose is to allow programmers to re-factor code for readability, but un-do the process before compiling. Presumably this is built in to one of their automatic refactoring applications or IDE. It is about fixing the problems refactoring causes, specifically in this case performance issues. I assume it could work like automatic inlining of small, commonly used functions, but is open to be a lot more complex.
You click the buttons on the GUI, it refactors some things for you and maintains a history of those actions. It stores the resulting code, which you send to source control or final build kit or whatever. When building, it examines which changes had a negative impact on performance and reverts those before compiling.
To the user, the code is refactored. To the computer, it is not.
My question is, how the hell do you debug this kind of output, or store it in source control? You are clearly going to be locked in to the same IDE, and probably same IDE version, and have to check in all of the project files. Cross-compilation is going to be difficult at best, since compiling the raw code won't have the performance enhancements. Clever for a closed-process shop, but kinda impractical.
What will be more interesting is whatever people come up with to deal with the misery this will create.
Re: (Score:2)
What will be more interesting is whatever people come up with to deal with the misery this will create.
Beer. Lots and lots of beer.
I think your take on the patent makes sense, but it certainly isn't what I got from reading the claims alone. I would argue that while the claims as written do cover what you're describing they are vastly too broad, and cover pretty much any refactoring sequence where there is the possibility of reversion based on a metric, whether or not the refactored code is saved.
Re: (Score:2)
I'm not defending the application. The claims leave this open to being implemented manually, and the supporting documentation makes it clear that the claims do not match the described invention. We should be objecting to this patent, but not based on the description in the summary. No one here reads the patents, so I wanted to make sure people noticed that the invention itself is not trivial. The patent application is unfortunately just as terrible as the summary of it.
If we are going to have a discussi
Re: (Score:2)
Forget about optimizing at all, consider all optimizing turned off. This invention basically makes sure that your refactoring doesn't impact performance. The compiler can then optimize the rearranged code instead of the original code you're looking at. Optimization will benefit both inputs, but the un-refactored code can still run a lot faster.
An optimizing compiler chooses its optimization from the tricks it knows about. Automatically inlining frequently called functions would be something that an opti
Re: (Score:2)
Hmm... this doesn't look at all appealing to me.
As far as I can tell, this only works if you can accurately recreate the exact circumstances for each run, because under normal usage it is quite possible that a refactoring that seems slower, is actually faster but has to process a larger workset. As a programmer I'd be pretty unhappy if my compiler decided to rebel and reverse my O(n^4) refactoring back to the O(n^y) version because I happened to have a smallish y in the first run (so it seemed like an O(n^
This is called "Simulated Annealing" (Score:2)
Actually, someone will probably point out how this is not simulated annealing, but this is how I understand it. It's like a genetic algorithm, but with one population member. You start out with a "high temperature", where you try lots of random runingthings at once. Whenever some random combination makes things better, you keep it. Then you lower the temperature, which means you reduce the number that you try at once. Eventually, you're down to trying one random change at a time.
This "AI" technique is
Seems way too broad (Score:2)
Every patent that is ever written walks the line between too broad and too narrow claim language. The broader the language, the more likely prior art will be shown to exist. If the claims are too narrow, it is too easy for others to get around them.
These claims seem about as broad as it gets. There's a whole wiki article on refactoring: http://en.wikipedia.org/wiki/Code_refactoring [wikipedia.org]
Can't imagine this will be issued as written.
Basic Rules of Optimization (Score:2)
The age-old Rules of Optimization:
1. Don't.
2. (For experts only) Don't yet.
Go back to the old rules. (Score:2)
Behold! (Score:2)
Prior art? (Score:2)
Trial and Error violates other prior art (Score:2)
My patent application (Score:2)
How To Read A Patent (Score:2)
Re: (Score:2)
Does anyone know of a place this is not the case where intelligent adults can converse about topics without people too lazy to read swamping any useful comments?
You must be new here. Welcome to the Internet! Enjoy your stay.
Re: (Score:2)
Re: (Score:2)
What's next? Patents on random numbers? This is getting so bogus!
Why, what's wrong with this patent application? Is it not novel? Is it obvious? Does it not include statutory subject matter?
You have to go a bit farther than just say "it's bogus!"
The I in IBM stands for heuristics (Score:2)
Re: (Score:2)
Re: (Score:2)