Wednesday, April 11, 2012

#ALGORITHMS: "Programs that Program Computers"

Programs that program computers are being developed at Rice University under a $10 million National Science Foundation (NSF) grant aimed at creating smart agents that learn from human programmers.

Here is what Rice University says about their efforts: Computer scientists from Rice University, the University of Pennsylvania and seven other institutions are teaming up to address one of the greatest ironies of the information age: While computers and robots have automated the manufacture of thousands of products, the software that allows them to do this is still written mostly by hand.

Armed with a $10 million grant from the National Science Foundation (NSF), the researchers hope to create intelligent software agents — smart programs that can first observe and learn from human programmers and then help humans write code faster and with fewer errors. Based at Penn, the five-year effort is dubbed Expeditions in Computer Augmented Program Engineering, or ExCAPE. It is funded by the NSF’s Expeditions in Computing program, which supports ambitious research agendas that will define the future of computing.

Rice’s team will address robotic applications and how to verify that the synthetic, computer-generated code is safe and effective.

Lydia Kavraki, a leading robotics expert and Rice’s Noah Harding Professor of Computer Science and of bioengineering, said that robotics provides an ideal test bed for automated program-synthesis tools.

Kavraki said she and Vardi, who have collaborated on advanced robotic methodologies in prior research, have proposed a “grand challenge” robotic scenario for ExCAPE: Create an automated program-synthesis tool that hospital staff could use to program mobile robots that go from room to room, turn off lights, distribute medications, remove medical waste and more.

Programming for robotic behavior is one of four real-world problem areas the ExCAPE team will test their research upon. Other challenge areas involve figuring out how to set up routing policies for flow of information across networks of computers, how software written to work on single-processor computers can be correctly translated to improve performance while running on multiple cores that are now common even in mobile devices, and how to design efficient and correct algorithms for coordinating decisions among multiple computers.

In each of these applications, tools will be needed to verify that the synthetic code is both safe and effective. Moshe Vardi, Rice’s Karen Ostrum George Distinguished Service Professor in Computational Engineering and one of the world’s leading experts on computer verification, said the new tools need to find both coding errors and the flawed logic that led to the errors.

The ExCAPE researchers plan to work with industry partners AT&T, Coverity, Honeywell, IBM, Intel, Microsoft and Willow Garage to see if their new automated program-synthesis tools are effective at meeting the day-to-day coding challenges that programmers face.
Further Reading