acm-header
Sign In

Communications of the ACM

ACM TechNews

How Computers Are Learning to Make Human Software Work More Efficiently


View as: Print Mobile App Share:
Need a software doctor?

Genetic improvement involves writing an automated programmer to manipulates the source code of a piece of software through trial and error, with a view to making it work more efficiently.

Credit: agsandrew

Genetic improvement is an approach to computer program optimization in which an automated "programmer" is written to manipulate the source code of a piece of software via trial and error, with the goal of boosting the software's operational efficiency. Each manipulation is then assessed against some quality measure to see if the new version of the code is an improvement.

Among the potential benefits this approach can yield are faster programs, bug removal, easier conversion of old software to new hardware, and enhancement of non-functional properties.

Genetic improvement diverges from the discipline of genetic programming, which attempts to rebuild programs from scratch, by instead making small numbers of minuscule modifications.

The genetic-improvement field's potential was demonstrated in the past year by several research initiatives overseen by University College London. One project involved a program capable of taking a piece of software with more than 50,000 lines of code and accelerating its functionality 70-fold. A second project conducted the first automated wholesale transplant of one piece of software into a larger one by taking a linguistic translator called Babel and inserting it within an instant-messaging system called Pidgin.

From The Conversation
View Full Article

 

Abstracts Copyright © 2015 Information Inc., Bethesda, Maryland, USA


 

No entries found

Sign In for Full Access
» Forgot Password? » Create an ACM Web Account