There are many methods for detecting and mitigating software errors but few generic methods for automatically repairing errors once they are discovered. Recent...Westley Weimer, Stephanie Forrest, Claire Le Goues, ThanhVu Nguyen From Communications of the ACM | May 2010
Finding bugs is technically demanding and yet economically vital. How much more difficult yet valuable would it be to...Mark Harman From Communications of the ACM | May 2010
Suppose that you want to delegate the ability to process your data, without giving away access to it. This separation is possible: we describe a "fully homomorphic"...Craig Gentry From Communications of the ACM | March 2010
We all know how to protect our private or most valuable data from unauthorized access: encrypt it. Still, the use of encryption to protect...Daniele Micciancio From Communications of the ACM | March 2010
IFRA overcomes major challenges associated with a very expensive step in post-silicon validation of processors — pinpointing a bug location and the instruction...Sung-Boem Park, Subhasish Mitra From Communications of the ACM | February 2010
Microprocessor performance has increased exponentially. These chips with ever increasing complexity are not always fully functional on...Shekhar Y. Borkar From Communications of the ACM | February 2010
Native Client is a sandbox for untrusted x86 native code. It aims to give browser-based applications the computational performance of native applications without...Bennet Yee, David Sehr, Gregory Dardyk, J. Bradley Chen, Robert Muth, Tavis Ormandy, Shiki Okasaka, Neha Narula, Nicholas Fullagar From Communications of the ACM | January 2010
Google's Native Client is an intriguing new system that allows untrusted x86 binaries to run safely on bare metal.Dan Wallach From Communications of the ACM | January 2010
We all receive spam advertisements, but few of us have encountered a person who admits to following through on an offer and making a purchase. And yet, the relentlessness...Chris Kanich, Christian Kreibich, Kirill Levchenko, Brandon Enright, Geoffrey M. Voelker, Vern Paxson, Stefan Savage From Communications of the ACM | September 2009
You never click on advertisements received in spam or in phishing messages, do you? Nobody does. So, if that is...Marc Dacier From Communications of the ACM | September 2009
Writing software for multicore processors is greatly simplified if we could automatically parallelize sequential programs. Although auto-parallelization has been...Milind Kulkarni, Keshav Pingali, Bruce Walter, Ganesh Ramanarayanan, Kavita Bala, L. Paul Chew From Communications of the ACM | September 2009
Looking for some new insight into an old problem? The familiar problem of writing parallel applications and a...Katherine Yelick From Communications of the ACM | September 2009
Future miniaturization of silicon transistors following Moore's Law may be in jeopardy as it becomes harder to precisely define the behavior and shape of nanoscale...Michael Orshansky, Wei-Shen Wang From Communications of the ACM | August 2009
The traditional approach to circuit design has been to build chips that work correctly at extreme-case process...Sachin S. Sapatnekar From Communications of the ACM | August 2009
Existing literature on distributed development in software engineering and other fields discusses various challenges,...Christian Bird, Nachiappan Nagappan, Premkumar Devanbu, Harald Gall, Brendan Murphy From Communications of the ACM | August 2009
It was a problem that should not have taken three weeks to solve. The documentation claimed that if a function was called...James Herbsleb From Communications of the ACM | August 2009
This paper reports on the development and formal verification of CompCert, a compiler from Clight (a large subset of the C programming language) to PowerPC assembly...Xavier Leroy From Communications of the ACM | July 2009
In the early 1970s, pioneers like Floyd, Dijkstra, and Hoare argued that programs should be formally specified and proven...Greg Morrisett From Communications of the ACM | July 2009
Modern computer systems are inherently nondeterministic due to a variety of events that occur during an execution. The lack of repeatability that arises from this...Derek R. Hower, Pablo Montesinos, Luis Ceze, Mark D. Hill, Josep Torrellas From Communications of the ACM | June 2009