Slashdot Mirror


Computer Program Fixes Old Code Faster Than Expert Engineers

An anonymous reader writes: Less than two weeks after one group of MIT researchers unveiled a system capable of repairing software bugs automatically, a different group has demonstrated another system called Helium, which "revamps and fine-tunes code without ever needing the original source, in a matter of hours or even minutes." The process works like this: "The team started with a simple building block of programming that's nevertheless extremely difficult to analyze: binary code that has been stripped of debug symbols, which represents the only piece of code that is available for proprietary software such as Photoshop. ... With Helium, the researchers are able to lift these kernels from a stripped binary and restructure them as high-level representations that are readable in Halide, a CSAIL-designed programming language geared towards image-processing. ... From there, the Helium system then replaces the original bit-rotted components with the re-optimized ones. The net result: Helium can improve the performance of certain Photoshop filters by 75 percent, and the performance of less optimized programs such as Microsoft Windows' IrfanView by 400 to 500 percent." Their full academic paper (PDF) is available online.

109 of 167 comments (clear)

  1. Improving the performance by more than 100% by Racemaniac · · Score: 2, Informative

    Does that mean the program responds in negative time? even before you click the button it's already done what you wanted? Sounds impractical...

    1. Re:Improving the performance by more than 100% by Bengie · · Score: 4, Informative

      100% faster just means 2x.

    2. Re:Improving the performance by more than 100% by narcc · · Score: 1
    3. Re:Improving the performance by more than 100% by mlw4428 · · Score: 1

      How are you getting that idea? What it's most likely saying is that if a process took, say, 5 seconds before it could take as little as 1 second now. It has nothing to do with "negative" time.

    4. Re:Improving the performance by more than 100% by CajunArson · · Score: 1

      YOU ARE SO SMART!

      It's obviously physically impossible to ever improve the performance of anything more than 100%. That's why 60+ years of Moore's law means that modern computers have a maximum theoretical performance ceiling of 769 FLOPS since the Eniac churned out 385 FLOPS and it's physically impossible to be more than 100% faster.

      Where can I sign you up for the Turing Prize?

      http://knology.net/johnfjarvis...

      --
      AntiFA: An abbreviation for Anti First Amendment.
    5. Re:Improving the performance by more than 100% by randm.ca · · Score: 4, Insightful
      Am I having an English fail, or are they having a Math fail?

      Mr. Smith's salary has increased by 350% over the past 20 years. If his original salary was $22,000 per year, what is his current salary?
      First change 350% to a decimal: 350% = 3.5
      Next, multiply the original salary by the decimal number: (22000) x (3.5) = 77000
      After 20 years Mr. Smith's salary has increased from $22,000 to $77,000 per year.

      Didn't his salary increase by $77,000, from $22,000 to $99,000?

      To simplify it, if his salary had increased by 100% would that mean he was now making $22,000 (their logic) or $44,000 (my logic)?

    6. Re:Improving the performance by more than 100% by erebus2161 · · Score: 2

      You seem to be correct. Instead of saying his salary increased by 350%, they should have said his salary increased to 350% of his original salary.

    7. Re:Improving the performance by more than 100% by alexhs · · Score: 1

      Their obvious math fail.

      Mr. Smith's salary has increased by $77 000 (notice how that's exactly how it's worded: by 350%) , not "to" $77 000.

      If their answer was to be believed, the original statement should have been that his current salary is 350% of what was his salary 20 years ago.
      One could also say that his salary has increased by $3.5 (% = 1/100 = 0.01, right ?) .

      I suspect that % is the more irregular symbol of mathematics. Most people don't know how to correctly use it in most contexts.

      Then you could have a laugh asking them how much that makes in average annual increase (answer is not (350/20)%).

      --
      I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
    8. Re:Improving the performance by more than 100% by hackwrench · · Score: 1

      I'm a little confused but it seems to me that whether or not you can improve performance depends on how you measure performance. Cutting a program's run time from 5 seconds to 2.5 seconds measured one way is a speed increase of 50%, One of the replies measured something in terms of GFLOPS, but that's a measurement of hardware performance, not software performance on the same machine. I'm not sure what metric would be used to cause software to have a greater than 100% on the same machine.

    9. Re:Improving the performance by more than 100% by hackwrench · · Score: 1

      But that's 500% of the new value, not the old one. In order to express performance gains in a way that makes sense, you need to express it in terms of the old value.

    10. Re:Improving the performance by more than 100% by hackwrench · · Score: 1

      That's comparing the performance of different hardware. What's being measured here is the performance of software on the same hardware.

    11. Re:Improving the performance by more than 100% by mr_mischief · · Score: 1

      A program that could process 100 MB of data in five seconds can now process 500 MB of data in five seconds. That's a 400% increase in the amount of data it can process per unit of time. People are just really bad at wording this sort of thing for some reason. I think that reason is probably that math and language are taught largely independently and as if one never interacts with the other.

    12. Re:Improving the performance by more than 100% by hackwrench · · Score: 1

      I find that element in my education frustrating. Too bad one can't successfully sue the government or other providers of education for it.

    13. Re:Improving the performance by more than 100% by ChrisMaple · · Score: 1

      Technically, speed or "fast" is measured as quantity / time. If 5.0e9 operations used to take 5.0 seconds and now takes 1.0 second, it's 5 times as fast, just as 50 mph is 5 times as fast as 10 mph.

      --
      Contribute to civilization: ari.aynrand.org/donate
    14. Re:Improving the performance by more than 100% by ignavus · · Score: 1

      100% faster just means 2x.

      Or 50% as slow.

      --
      I am anarch of all I survey.
  2. Support and copyright ... by gstoddart · · Score: 1

    So, hopefully you are doing this on stuff so old you don't have to worry about your support contract, hopefully you can figure out how to legally do this without violating someone's copyright (it's a derivative work), and hopefully you don't introduce any new errors or security holes.

    This sounds cool, but you're in a gray area in terms of legality I should think.

    I guess if it works it's cool, I'm just not clear on how you can prove that the two are 100% the same.

    --
    Lost at C:>. Found at C.
    1. Re:Support and copyright ... by Bengie · · Score: 1

      Better outlaw bit rot, it changes binaries all the time. Non-checksumming filesystems are now illegal.

    2. Re:Support and copyright ... by gstoddart · · Score: 4, Funny

      What? There is no law against modifying binaries on software you own.

      These days, copyright means whatever the hell corporations tell government it means, and it's a constantly moving target.

      I'm not convinced the BSA would agree.

      The quality of comments on this site continues to decline at a rapid pace...

      Yeah, it's full of snide assholes posting as Anonymous Coward who don't have anything intelligent to add.

      --
      Lost at C:>. Found at C.
    3. Re:Support and copyright ... by CreatureComfort · · Score: 1

      Any more, unless you coded it and compiled it yourself, you don't own any software. You are licensed to use it, with a lot of restrictions.

      --
      "Unheard of means only it's undreamed of yet,
      Impossible means not yet done." ~~ Julia Ecklar
    4. Re:Support and copyright ... by angel'o'sphere · · Score: 1

      Copyright is only violated if you distribute the work ... everyone in the business should know that.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:Support and copyright ... by angel'o'sphere · · Score: 2, Interesting

      Unfortunately you AC parent is right and you are just an asshole and an idiot.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    6. Re:Support and copyright ... by anybody_out_there · · Score: 1

      What? There is no law against modifying binaries on software you own. The quality of comments on this site continues to decline at a rapid pace...

      True, the quality of comments does decline. See the quoted comment for exhibit A.

      Generally, unless you wrote the software, you don't own the binary; you merely LICENSE it. There are civil laws against violating the licensing agreement by modifying or reverse engineering. Not that this process would necessarily be considered reverse-engineering, but let a lawyer get a hold of the idea and watch out!

    7. Re:Support and copyright ... by guruevi · · Score: 2

      There is a law against modifying the software you own (at least in the US and the EU), it's called the DMCA and it's European derivatives. The only exception the DMCA allows is for 'interoperability' where no other programs do the same things. With the availability of open source solutions, it's just not worth fixing old crap when you can just fix open source systems without legal issues.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    8. Re:Support and copyright ... by hackwrench · · Score: 1

      How much software do you own and how much software do you only have a license to use?

    9. Re:Support and copyright ... by mark-t · · Score: 5, Informative

      Actually, copyright is violated when you copy the work without permission and the purpose for copying the work does not otherwise make it exempt from infringement. If you don't distribute at all, and you do not profit from it in any way, then nobody else is necessarily even going to know you copied it, let alone want to prosecute you for it, but that does not necessarily mean it is necessarily legal (some jurisdictions even have private copying as exempt from infringement anyways, or for example, in Canada, have private-use copying exempt only so long as a mechanism for compensating at least some percentage private-use copies exists, such as levies on blank media where such copied content is considered by said controlling agencies to be likely to be copied onto).

      Distribution of unauthorized copies is usually taken as gold-bar standard proof of infringement, since it establishes, in an objectively verifiable way, a non-private-use purpose for making those copies which can be presented by the copyright holder as a basis for the claim against the infringer. The action of distributing unauthorized copies is generally considered illegal as well, a crime related to infringement and no less than at least evidence of conspiracy to commit copyright infringement, but is not technically copyright infringement, not is it absolutely required to commit infringement... at most it may only be required to be held accountable for infringement.

    10. Re:Support and copyright ... by bws111 · · Score: 1

      Not 'any more'. EVER.

    11. Re:Support and copyright ... by Wraithlyn · · Score: 1

      There is a law against modifying the software you own

      No there is not.

      The DMCA criminalizes the circumvention of copy protection, not "modifying software" in general.

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    12. Re:Support and copyright ... by Archillies · · Score: 1

      This is the nature of comment sections from the dawn of the .ALT of Usenet. Some things will never change, filter the garbage and move on....

      For those of you born in the "Web is the Internet" days, I am talking about mailing lists.

      --
      Finally an OldFart : Keep off MY lawn too!
    13. Re:Support and copyright ... by Coren22 · · Score: 2

      Clearly he can't be an asshole as that is the absence of space, not the muscle around the absence.

      --
      APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
    14. Re:Support and copyright ... by Anonymous Coward · · Score: 1

      Yes, but there are laws about essentially what relates to cracking the program. “Because stencils do the same computation over and over again, we are able to accumulate enough data to recover the original algorithms.”

      I think that this is the part that is being glossed over.

      They haven't created a program that can "repair" arbitrary programs and as long as "that's-not-a-bug-its-a-feature" exists, you can't define one.

      What they've apparently done is create a program that can analyze image-processing programs and replace algorithms with known good equivalents. Implying that it likely won't do jack for things like where a dropdown menu invokes an action without setting up the same command context that its corresponding toolbar button does.

      Much less render the software of the world immune to the type of failures we've seen over the last few days.

    15. Re:Support and copyright ... by mr_mischief · · Score: 1

      You don't own Photoshop. Adobe does.

    16. Re:Support and copyright ... by mr_mischief · · Score: 1

      You own it if you write it, if you pay someone under contract to write it for you to own, if you purchase the ownership and copyright interests in the code, or if the copyright is assigned to you.

    17. Re:Support and copyright ... by mr_mischief · · Score: 2

      Contract law is law. Also, there's actual copyright statute that says you can't create and distribute a derivative work. This has often been interpreted by the courts to mean you can't make a tool that easily enables others to do so. While running this on your own copy of something is not against statute, it may be a breach of contract.

      If you think that statutes are all of the law, then you don't understand the concept of law in pretty much the entire former English colonies, most of which operate at least partly under common law and precedent.

    18. Re:Support and copyright ... by guruevi · · Score: 1

      Compiling to binary seems to be an access control. If you read the DMCA, I as an engineer am able to read it as such that circumventing 'access controls' includes compiling to binary and removing the symbols necessary to 'access' the data in the program. If I read it as such, I'm pretty sure at some point, some lawyer with sufficient skill will do as well.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    19. Re:Support and copyright ... by angel'o'sphere · · Score: 1

      Actually, copyright is violated when you copy the work without permission and the purpose for copying the work does not otherwise make it exempt from infringement.
      That is ... actually ... wrong.

      All copyright laws on the world are about distributing/selling copies. You can copy what ever you want for personal use. Was always like that.

      There are only new exceptions like DMA etc. which want to prevent you from copying a CD etc. to a different media.

      The action of distributing unauthorized copies is generally considered illegal as well, a crime related to infringement and

      On most parts of the world this is not "illegal" (how ever it is defined how to handle it by law) nor a "crime". A crime is something where a random person can go to the police or an investigator (state attorney) and notify them and they start investigating on their own.

      No one in Europe e.g. would start an investigation if a random private person would make such a notification about another random person infringing copyright on some one else.

      Only the person suffering from the copyright infringement can make a notification and cause a civil case, not a crime case.

      And as a matter of fact: changing binary code of software to fix bugs for software you own and only run on your computers, and performance issues can be considered bugs, is legal all over the world!

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    20. Re:Support and copyright ... by mark-t · · Score: 1

      You are mistaken.

      Let's take US law for example.

      Title 17, Chapter 5, section 106 outlines the exclusive rights of a copyright holder, one of which is to reproduce the copyrighted work. Sections 107 through 122 outline limitations on those rights.

      title 17, chapter 5, section 501 defines copyright infringement. The mere act of copying without permission, which encroaches on the exclusive rights described in section 106, is infringement. Copying for personal use is an argument for fair use, which is a limitation on copyright as outlined in section 107, but it does not necessarily automatically follow that all private copies necessarily qualify for such exemption. The circumstances surrounding the making of the copy are examined to determined if fair use applies.

      If no such exemption is applicable, then title 18, part 1, chapter 113, section 2319, subsection b.3, the weakest case listed therein, and covering all cases that are neither repeat offenses or for commercial gain cites a penalty of one year for any willfull copyright infringement. A prison penalty of up to one year. Infringement for commercial gain and repeat offenses have higher penalties.

      So yes... It's a crime.

    21. Re:Support and copyright ... by angel'o'sphere · · Score: 1

      As I mentioned before the "crime" part is new and requires criminal behaviour (and is an US specific thing), modifying software you bought and is running on your machines only, is neither a violation nor a crime.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    22. Re:Support and copyright ... by mark-t · · Score: 1

      Copyright infringement is a crime in several other countries as well, actually, I cited the relevant sections for US law o ly because I knew exactly where to look for them. I believe similar statutes exist in a least several European countries, and I know as a positive fact that is also how it is in Canada. But what part about "is" implies that is the way it has always been?

    23. Re:Support and copyright ... by Wraithlyn · · Score: 1

      Nonsense.

      The act of compilation itself does not protect the digital work (we're NOT talking about the source code here, we're talking about the end product) from being accessed. You can give the binary to someone else, and (in the absence of actual DRM features) they can run it. So it is not DRM in itself, that requires another layer.

      Neither the DMCA's Wikipedia page, nor the bill summary mentions the word "binary" or "compile". Nor does some quick googling unearth anything supporting your stance here.

      If I own a game, I am free to hack away it, install mods, trainers, hexedit data files, whatever the hell I want. As long as I am not bypassing any DRM features it has. The DMCA criminalizes cracking copy protection schemes. Not "all modification of binary files". If you have a source that says otherwise I'd love to read it.

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    24. Re:Support and copyright ... by angel'o'sphere · · Score: 1

      Copyright does not really exist in Europe, we call it 'Urheber Recht' in german or 'moral rights'.
      A crime is, since a few years, to distribute pirated music and movies.
      Copying software, or books or any other thing falling under 'copyright' is only prosecuted on request of the rights holder, who has to prove the infringement, and it is not a crime.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  3. Bit-rot? by Anonymous Coward · · Score: 1

    I always understood bit-rot to be data degrading on a storage medium. Not sub-optimal cruft code from way back.

    1. Re:Bit-rot? by Junta · · Score: 1

      Incidentally, it's (probably) not in this case that the code was sub-optimal, just mis-optimized. Whether it's something like code written before AVX2 existed, now adding AVX2 codepath, or scenarios with two algorithms that end the same way that use different operations where a choice was made based on chips that could do one of those faster, and newer chips started getting faster the other way.

      --
      XML is like violence. If it doesn't solve the problem, use more.
  4. Re:Nirvana?! by JMJimmy · · Score: 5, Insightful

    Unemployment is a sort of nirvana.

    I just want to know why when they improve the speed of something by 75-500% it's considered research but when I do it it's considered a waste of time? Companies just don't appreciate efficiency.

  5. its been around for years. by nimbius · · Score: 5, Funny

    This kind of application has been ported to about half a dozen different operating systems. i use it on a regular basis but for those not familiar I find it works best with legacy PHP. the "rm" command (or as its known in windows "del") uses an advanced algorythm to determine the target codes age, total number of lines, and any optimizations that are required in order to make it fully web 4.0 SOAP, ROPE, and DOPE compliant. It then quickly converts the code to the updated version by changing the physical structure of the space it occupies on the disk. My coworkers always seem amazed when they see me break out my legacy optimizer. "What have you done?!" they exclaim, baffled at my efficiency. "holy crap do you know how important that was?!?" they remark in awe

    --
    Good people go to bed earlier.
    1. Re:its been around for years. by Anonymous Coward · · Score: 1

      I'd mod you +1 BOFH

    2. Re:its been around for years. by Anonymous Coward · · Score: 1

      I wrote the advanced version of that program called format. Optimizes every program on the drive you select. When I use it the whole department comes in my office furious, likely because they know this program will replace them all.

    3. Re:its been around for years. by QilessQi · · Score: 1

      There are not enough +1s for this.

    4. Re:its been around for years. by Archillies · · Score: 1

      del *.* is still a valid way to clear space on my older PC. A little love for DOS please, the machine is Dos 3.1 and runs fine thank you.

      I too admire the elegant efficiency you show above.

      --
      Finally an OldFart : Keep off MY lawn too!
    5. Re:its been around for years. by kreyszig · · Score: 1

      more +1s for you nimbius, lolz attack

    6. Re:its been around for years. by kheldan · · Score: 1, Redundant

      You oldschool guys need to update your game. There's been a newer version of your optimizer out for years now; it's called "Delete system32", and it's superior in every way to your old, busted-down version. Unfortunately it's for Windows only; Anonymous Labs hasn't gotten around to porting it to other operating systems.

      --
      Are YOU using the TOOL, or is the TOOL using YOU? Think about it!
  6. From the paper by Anonymous Coward · · Score: 1

    From the paper (final section)

    To rejuvenate these programs, we need high-level,easily-optimizable representations of their algorithms.

    Well shit, if only we had that.

  7. Inaccurate title by CustomSolvers2 · · Score: 5, Interesting

    The paper is not about automatic code optimisation in general. This program only fixes image-related algorithms (which most likely involve simple & repetitive modifications).
    In fact, there are quite a few references to Adobe in the associated links and the paper is signed by two Adobe guys. Thus, I guess that it is mostly focused on Adobe products, like Photoshop; and might not even be able to deal with any image-processing algorithm.

    PS: is it because of the summer-period lack of news or Slashdot is planning to make the move to pure sensationalism? Because a big proportion of the titles lately are quite unclear (to say it softly).

    --
    Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
    1. Re:Inaccurate title by QuietLagoon · · Score: 2

      PS: is it because of the summer-period lack of news or Slashdot is planning to make the move to pure sensationalism? Because a big proportion of the titles lately are quite unclear (to say it softly).

      I think its a move towards sensationalism. Given that /. is now mirroring the article titles on social media (twitter, facebook?) it is looking more and more as if /. editors have been told to make the titles vague yet provocative.

      Keep in mind, as the page footer says, Slashdot is a DHI Service.

    2. Re:Inaccurate title by CustomSolvers2 · · Score: 1

      Unfortunately, it seems that you are right. Hopefully, the decision-makers will remember the wise "jack of all trades, master of none" and that people come here to get a very specific something.

      --
      Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
    3. Re:Inaccurate title by Ravaldy · · Score: 1

      The comment about the article is all wrong. He talks about fixing bugs. No bugs are being fixed. Instead, the code looks for opportunities to optimize code to new hardware the original code wasn't designed to work on.

      It got my attention because I didn't believe someone could have written code to solve bugs as they are very abstract to be systematically fixed (generally speaking).

    4. Re:Inaccurate title by CustomSolvers2 · · Score: 1

      Your sarcastic remark is very accurate: "code bug" refers to a wide variety of issues which are very difficult to be adequately summarised and thus automated.

      On a serious note, bear in mind that this paper seems (stated in its real title) to be exclusively focused on converting the old image processing format into a new high-performing one (Halide). Thus, it takes care of just very specific issues (of Photoshop), like image filters.

      --
      Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
    5. Re:Inaccurate title by CustomSolvers2 · · Score: 1

      I have written a comment right now (by answering the comment right above this one) saying basically the same than you. Additionally, I got exactly the same impression than you when I read the Slashdot title for the first time (very unlikely!).

      --
      Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
  8. Re:Bit-rotted code by Deep+Esophagus · · Score: 2

    Is that even a thing? How do bits rot?

  9. Re:Nirvana?! by Anonymous Coward · · Score: 1

    Because you did it once and wanted to get paid hourly, while these guys made a computer that will do it for the cost of the electric bill all day long on every program you feed into it without complaining once.

  10. Optimizing Compiler by tomhath · · Score: 1

    It's interesting that they can do this to the object code after it's been generated. But it sounds a lot like traditional compiler optimization to me. Or am I missing something?

    I would also quibble with the headline. It isn't "fixing" the code; it's generating more efficient instructions to do the same thing.

    1. Re:Optimizing Compiler by tomhath · · Score: 1

      I didn't miss that. The important point is what they're doing rather than how they're doing it; the tool they use doesn't really matter.

  11. How is this different from an optimizer? by T.E.D. · · Score: 2

    Most compilers, after code generation (and often after code analysis, while the code is in some machine-independent tree state that sounds much like their invented language here) perform their optimization runs.

    This just sounds like its doing that. Sure, its source-language independent. But so is gcc's backend. Basically its taking a "done" excecutable, reconstructing a form similar to the intermediate tree form the GCC backend uses, and then doing another optimization pass like GCC's backend does. What's new and unique here?

    1. Re:How is this different from an optimizer? by decsnake · · Score: 1

      Basically its taking a "done" excecutable, reconstructing a form similar to the intermediate tree form the GCC backend uses, and then doing another optimization pass like GCC's backend does. What's new and unique here?

      I think, and I'm not sure about this, that the original work is reconstructing an optimizable intermediate form. If anyone else has done it before I'm not aware of it, but I'm just a practitioner, not a CS researcher.

  12. But will it optimize Crysis? by RogueWarrior65 · · Score: 1

    Or healthcare.gov?

    1. Re:But will it optimize Crysis? by Psychotria · · Score: 1

      Umm, Crysis runs perfectly fine even on relatively low-end modern computers -- without even breaking a sweat. Either upgrade your computer from that thing from 2007, or find a new meme :p

  13. Re:Bit-rotted code by fustakrakich · · Score: 1

    How do bits rot?

    From the head down

    --
    “He’s not deformed, he’s just drunk!”
  14. So has it "fixed" itself? by Viol8 · · Score: 4, Interesting

    Well its the obvious question isn't it - presumably they've eaten their own dog food and run the program on its own binary , right?

  15. Reoptimizing != fixing by Dcnjoe60 · · Score: 1

    Reoptimizing is not the same thing as fixing a bug. For one thing, the software would need to know the bug is in fact a bug and what the correct behavior was supposed to be. Suppose your algorithm is coded as c = a - b, but it really is supposed to be c = a + b. Obviously that is a bug but how is the software supposed to know that? Or suppose you used an incorrect conversion factor, but the formula is otherwise correct (Didn't NASA have a lander crash because the program used feet instead of meters or something like that?).

    Anyway, decompiling a program, which is no smal feat, and then optimizing it is not the same as bug fixing.

  16. Optimization is different then fixing bugs by fluffernutter · · Score: 1

    This seems to optimize code, as opposed to fixing bugs. It won't detect for example a possibility of referencing nil. Also, I suspect it would need a very strongly typed language which would reduce the human intelligence requirement to zero. One other thing I am wondering is how maintainable the code is after. Does the code make sense or does it look more like it was written by a robot.

    --
    Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
  17. Re:Bit-rot? I am a bit confused. by tomhath · · Score: 1

    Bit rot usually means portions of the code haven't been refactored after other parts have been changed. What might have been good enough when it was first written has degraded.

  18. Re:Nirvana?! by quantumghost · · Score: 5, Funny

    $ Helium -i Helium -o Helium2

    Program ran in 656.76s

    $ Helium2

    Welcome to SkyNET

  19. Writing On The Wall Folks by Anonymous Coward · · Score: 1

    In 10 years or less Software Engineers wont be necessary to create Software. Applications will be created by Management based on Business Rules and Data Sets. The only human involvement will be the IA Design and Control of these Rules and Data as well as UI Design for "look and feel" and branding.

    If you are in your 20s, you'd better start finding a new career path because your career in Software Development is about over.

    1. Re: Writing On The Wall Folks by cyber-vandal · · Score: 1

      They've been saying that for 30 years.

    2. Re:Writing On The Wall Folks by DahGhostfacedFiddlah · · Score: 1

      Applications will be created by Management based on Business Rules and Data Sets.

      It's sad but true. That's why I've been preparing my move into Management. I've been learning to use a cutting-edge Management Suite called "Java" to implement Business Rules, and a bleeding-edge Cloud-based Storage Medium named "MySQL" to manage my Data Sets.

      I'm going to miss Software Engineering, but as you say, the writing's on the wall.

    3. Re:Writing On The Wall Folks by rrr00bb5454 · · Score: 1

      What won't be happening within 10 years is having a cute GUI that a technically unskilled business guy can use to *specify* what he wants. The pointy haired boss will still need to speak a computer's language, or be able to intelligently respond to disambiguation questions from the computer. What is already happening, and what will continue is the extremely rapid improvement of tooling. We are reaching the point where a hundred cowboys writing in C will not be able to keep up with a compiler tool chain that is producing binaries that meet a specification that is both checked for logical consistency, and has (locally) optimal performance. In short, we will start producing reliable software. There are some amazing things going on with respect to Coq these days; and they most definitely require an extremely skilled person to get the specification written. A huge improvement in getting these specifications written would require that it be simple enough for a mortal programmer to do (rather than a PhD mathematician).

    4. Re:Writing On The Wall Folks by angel'o'sphere · · Score: 1

      "Business Rules" are implemented with rule engines, which might be implemented in Java.

      Clouds may be anything ... not just storage. And MySQL is not related to clouds in anyway.

      Your joke failed ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:Writing On The Wall Folks by DahGhostfacedFiddlah · · Score: 1

      Business rules are implemented however they are implemented. That can be a rules engine, or a more general language. And any rules engine I've seen tends to be infinitely extensible with your language of choice, because simply being a "rules engine" is rarely sufficient.

      And I didn't say clouds were "just storage", I said that MySQL was a "cloud-based storage medium", which is certainly true for the various vague definitions of "cloud-based" I've seen.

      See? My joke was accurate and - now that it has been fully explained - totally hilarious.

    6. Re:Writing On The Wall Folks by angel'o'sphere · · Score: 1

      If you mean with MySQL Your SQL, then it might be so. If you mean the open source DB now owned by Oracle, then this is not the case ... no clouds involved.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  20. Remember Transmeta? by Anonymous Coward · · Score: 5, Informative

    When you read the actual paper, it seems to analyse the code, and take advantage of vectorization in modern hardware to do the equivalent act in a more parallel way increasing performance. So it strips off local optimization, analyses the action, then recreates it in a form better suited to the processor its compiled for, resulting in a speedup.

    Sort of reminds me of Transmeta, the processor Linus was involved with, that ran microcode, analysed the execution of the x86 code, and did little mini compiles of microcode to simulate that. aka 'Code Morphing',

    https://en.wikipedia.org/wiki/Transmeta

    It did well on Benchmarks (and filters) because of the repetitive nature of them, it could recreate those loops more efficiently.

    Interesting, pity its all full of boastful fluff, and vague bitrot claims, it sounds like a proper paper otherwise. Of course for most software if it has value, it is a competition and its worth re-optimizing for each new platform otherwise you lose market to competitors. So actual programmers would rework those parts of the code rather than a general tool hack.

    So this would only be a stopgap for dead end software you're locked into that isn't being maintained.

    1. Re:Remember Transmeta? by Grishnakh · · Score: 1

      One big advantage of this over Transmeta's "code morphing" is that the latter has to be done on-the-fly, and has to be done each time it encounters the code, unless it was recent enough to still be in cache, whereas this approach, like a normal compiler, is only done once, and then the results can be executed over and over (even across different systems).

  21. Example is wrong. Use (1 + %/100)*value by Anonymous Coward · · Score: 1

    As you point out, you get to keep the original value (%100 or "1") and ADD the % increase. In other words, you have %100 percent + the increase.

    Example 1: if sales tax is 10%, or 0.1, and and item is a dollar, you have 10 cents in tax + the dollar, for 1.10 to get out of the store.

    Example 2: A 20% tip on a $10 tab is 1.2 x 10, or $12.

    E.g. always add the "1" for the original you are keeping. For the 350% example, you would have 1+3.5 as the multiplier or 4.5 x $22,000 = $99,000.

  22. Not program faster than experts... by Junta · · Score: 1

    After reading through the paper a bit, it seems interesting, but perhaps a bit overblown. It seemed to have a lot of work to understand the very specific problem domain before this could be applied. It's more like a methodology *enabled* expert engineers to do optimization, not that it did optimization *instead of* expert engineers.

    It's also a field with a lot of solid technical high level algorithms, so there was a pretty good space to map things to. Basically it was identifying what inscrutable code was doing as it relates to well known algorithms, enabling them to start fresh to apply the best practice today of said algorithm. If you are not in this sort of space, the strategy doesn't really have a way to help very much.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  23. Um, because this is a computer doing the work by rsilvergun · · Score: 2, Interesting

    It's practically free. Run the program, wait a bit and your done. A child or a well trained monkey could do it. You OTOH, cost dollars per hour. Seriously, is anyone else scared shirtless that something so abstract and complex as this can be automated? Is any job safe (outside of being a member of the ruling class)?

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    1. Re:Um, because this is a computer doing the work by Anonymous Coward · · Score: 2, Insightful

      It's practically free. Run the program, wait a bit and your done. A child or a well trained monkey could do it. You OTOH, cost dollars per hour. Seriously, is anyone else scared shirtless that something so abstract and complex as this can be automated? Is any job safe (outside of being a member of the ruling class)?

      Scared shirtless? Only if you're a uneducated loser. Compiler optimizations are just as complex as this (in fact, this is more or less the same thing, only it's being done after the fact). It has no bearing on the ability to create new software to meet a need.

    2. Re:Um, because this is a computer doing the work by amicusNYCL · · Score: 1

      Run the program, wait a bit and your done.

      You think that a program fixing bugs faster than a programmer can is impressive? Just wait until next week when I unveil my program that can solve a Towers Of Hanoi puzzle faster than a person can.

      This just in: computers can do work faster than people. Film at 11.

      --
      "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
    3. Re:Um, because this is a computer doing the work by Anonymous Coward · · Score: 5, Insightful

      If you look at how their system works, you can see that it is limited to certain types of algorithm, and even then it gives absolutely zero correctness guarantees. What they want to do is abstract and complex. What they're actually doing can be described in a 20-page paper. Your job is safe for right now. Strong AI still doesn't exist.

      Anyway, even if they automate some parts of your job, the part of your job that isn't automated will expand to fill that time. I'm not sure if there's a real law for that but it's a heuristic observation shared by many. Partial automation doesn't lead to declining workforces, it leads to expanded capability and larger workloads than could be imagined before. Even if they perfected this program it still couldn't write a new kernel, let alone a new application.

    4. Re:Um, because this is a computer doing the work by Grishnakh · · Score: 2

      Partial automation doesn't lead to declining workforces, it leads to expanded capability and larger workloads than could be imagined before.

      Not really. The problem is that automation replaces all the jobs at the low end of the skill spectrum; the easier and more mindless the job is, the easier it is to automate (usually). While this can expand the market overall, what are we supposed to do with the people who lost their jobs? Someone who can empty trashcans is not likely to be able to learn the skills necessary to repair the trash robot. More automation is creating more work for people whose work involves building, maintaining, and repairing the automation, but those are all highly skilled workers.

    5. Re:Um, because this is a computer doing the work by snowgirl · · Score: 1

      Anyway, even if they automate some parts of your job, the part of your job that isn't automated will expand to fill that time.

      Indeed, compilers already automate so much of our programming job. I remember having to avoid using multiplication by a constant if speed was important, and choosing all sorts of crazy things, just because they ran faster... now, the compiler automates this for me, and I can write code that is more legible and clear.

      This is just yet, another form of optimization, which computers have been doing for us for like at least 10 years already...

      --
      WARNING! This girl exceeds the MAXIMUM SAFE standards established by the FDA for BRATTINESS
    6. Re:Um, because this is a computer doing the work by kmoser · · Score: 1

      Never underestimate a gifted programmer's ability to generate bugs faster than a system capable of fixing them.

  24. It's a general purpose optimizer by Virtucon · · Score: 3, Informative

    Read the instructions, loop optimize, branch optimize etc. rinse repeat. It's not novel, I mean we've had JIT optimization and others for a few years now. It does nothing with "code" but with the binaries generated from code.

    --
    Harrison's Postulate - "For every action there is an equal and opposite criticism"
  25. Re:Bit-rotted code by electrosoccertux · · Score: 1

    Is that even a thing? How do bits rot?

    it's only the ones that don't get used as frequently. the zeros are ok

  26. Re:Bit-rotted code by swillden · · Score: 4, Informative

    Is that even a thing? How do bits rot?

    Yes, it's a thing. An important one, well-known to all software developers with a few years of experience.

    Barring some sort of hardware failure the bits themselves don't change, of course. What changes is the context in which the bits are used. The article seems to be focusing mostly on performance, and that's one area of bit rot, a minor one. As hardware changes, the best performance optimization methods change, but the bits don't. Updating the code can improve performance. More important forms of bit rot have to with supporting libraries, or even business context. Causes and effects vary, but at bottom some assumption made by the old code is no longer true. If the assumption was never true, or for some reason the developer should not have expected it to be true, we call this a bug. But sometimes the code did make perfect sense as it was... but no longer. It's a bug now, but was correct previously.

    That is bit rot.

    Wikipedia has a fairly decent article if you want to read more: https://en.wikipedia.org/wiki/...

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  27. Re:Nirvana?! by Bengie · · Score: 1

    A person is not fractional, so a single person doing a job faster may not benefit, but people can be fractional, and reducing the number of toilet cleaners by 50% can save a lot of money.

  28. Got scratches in your old cars' finish? by kheldan · · Score: 1

    Buy our miracle product and your old car will shine like new! Just squeeze some out of the bottle and apply with a clean cloth, wipe it off, and look! Your old car's faded, scratched finish looks like brand new! Only $19.95, call to order now and get this special micro-fiber application cloth for free, a $9.95 value!

    That's what this reminds me of. It's something you use on a car you're selling off and want to get a better price for it, not for a car you're keeping, or at least keeping for long. It'll probably work some of the time, but what about when it doesn't work? Does it make things worse? Do you end up with the paint stripped off down to the primer, or worse, all the way down to bare metal? The point is you don't really know what it's going to do. In this case it might even appear to work as advertised.. until some time later when you discover it's completely borqed-up what you ran it on. This is like something some management-type, who knows nothing about doing the work (and doesn't want to know) but who wants to cut his budget (and consequently increase his bonus) would opt to use, instead of paying an actual programmer to fix a problem.

    --
    Are YOU using the TOOL, or is the TOOL using YOU? Think about it!
  29. Re:If only... by behrooz0az · · Score: 1

    Actually there is a lot of software that automatically detects Buffer Overflow, Use After Free and similar errors.
    Once I even had someone run them one a few assembly pieces me and a bunch of other people wrote, the results were amazing. He exploited almost every single piece of code in less than 30 minutes. I know we sucked at assembly, but he(his software) did an amazing job too.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion. -- Spazmania (174582)
  30. hmm by buddyglass · · Score: 1

    Seems like this could be built into compilers. What am I missing?

  31. Re:Nirvana?! by LifesABeach · · Score: 1

    Which would free up that part of the work force to mow lawns in California's San Joaquin valley.

  32. Helium by ThatsNotPudding · · Score: 1

    "It's a gas!" -- Doug Benson

  33. Re:Nirvana?! by Krishnoid · · Score: 1

    Because they published a paper on it?

  34. Microsoft Windows' IrfanView? by wonkey_monkey · · Score: 2

    Microsoft Windows' IrfanView

    Microsoft (or even "Microsoft Windows") doesn't own IrfanView.

    --
    systemd is Roko's Basilisk.
  35. Great, please run it on by OneSmartFellow · · Score: 1

    Windows NT 3.51, or Microsoft PowerPoint, or........

  36. Graphics by mwvdlee · · Score: 1

    I've build Photoshop plug-ins and have gotten paid for it.
    2D graphics algorithm performance pretty much completely depends on relatively small inner loops.
    Minor improvements in the inner loop can have a major impact on performance.
    It's not uncommon manually optimizing the inner loop makes a 2D graphics algorithm several hundred times faster simply by reducing typecasting or doing subexpression elimination.

    I'm wondering how well this program optimizes code in other fields. How about optimizing an office application, a compiler or a browser?

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  37. Re:Bit-rotted code by angel'o'sphere · · Score: 1

    In binary software "rot" is an abbreviation for "rotate", if no further specified, then it is to the left.

    Like "LROT".

    Of course it could be to the right: RROT (a heavier version of mere ROT)

    A ROT means ... a well ... most people know and I'm to tired to explain it to the noobs.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  38. I was more impressed by a Y2K conversion system by msobkow · · Score: 1

    I was far more impressed by a Y2K conversion system developed at Queens University in Kingston which would analyze the binaries from several different machine architectures, turn them into flow graphs, and pattern match the flow graphs into re-created C++ code. Unfortunately the startup that was launched to bring that system to market imploded due to legal issues and fights, and never went much further than addressing the needs of a few early adopters.

    This system, on the other hand, seems focused on merely identifying known algorithms and patching the code to use optimized implementations of those algorithms. It does not "correct bugs" -- it plugs in replacement routines. Sure the old code may have had "bugs", but more likely it just wasn't as well optimized as the code produced by modern compilers.

    There is also no mention of the system in question being able to deal with anything other than Intel-architecture code, which is a very serious limitation when making claims that a system can generically fix bugs, even if you're only dealing with one class of algorithms.

    --
    I do not fail; I succeed at finding out what does not work.
  39. Flash by manu0601 · · Score: 1

    If their stuff is that smart, could they please use it to fix the Adobe Flash vulnerabilities for once?

  40. Re-inventing the wheel... by mikelieman · · Score: 1

    "Thou shalt run lint frequently and study its pronouncements with care, for verily its perception and judgement oft exceed thine."

    --
    Technology -- No Place For Wimps! Grateful Dead and Jerry Garcia Chatroom -- http://www.wemissjerry.org
  41. Re: Nirvana?! by cthulhu11 · · Score: 1

    The quarter of a man he got hired The next damn day he got fired There's only one thing wrong with this plan He only gets a quarter he's a quarter of a man

  42. Re:Nirvana?! by ebvwfbw · · Score: 1

    Would you like to play a game?

  43. Re:Nirvana?! by LifesABeach · · Score: 1

    Exactly.