Search the Dagstuhl Website
Looking for information on the websites of the individual seminars? - Then please:
Not found what you are looking for? - Some of our services have separate websites, each with its own search option. Please check the following list:
Schloss Dagstuhl - LZI - Logo
Schloss Dagstuhl Services
Within this website:
External resources:
  • DOOR (for registering your stay at Dagstuhl)
  • DOSA (for proposing future Dagstuhl Seminars or Dagstuhl Perspectives Workshops)
Within this website:
External resources:
Within this website:
External resources:
  • the dblp Computer Science Bibliography

Dagstuhl Seminar 11062

Self-Repairing Programs

( Feb 06 – Feb 11, 2011 )

(Click in the middle of the image to enlarge)

Please use the following short url to reference this page:



Press Room

Press Reviews


Dagstuhl seminar 11062 ``Self-Repairing Programs'' included 23 participants and organizers from research and industrial communities. Self-Repairing Programs are a new and emerging area, and many participants reported that they initially felt their first research home to be in another area, such as testing, program synthesis, debugging, self-healing systems, or security. Over the course of the seminar, the participants found common ground in discussions of concerns, challenges, and the state of the art.

Recent years have seen considerable advances in automated debugging. Today, we have techniques that automatically determine problem causes – in the source code, in program input, in the change history, or in internal data structures. While these approaches make it considerably easier to find the causes of defects, their precision is still insufficient to suggest a single concrete course of action – a human in the loop is still required to design and apply the patch. At the same time, there is an ongoing need for self-healing systems – systems that can recover from failures and even reconfigure themselves such that the failure no longer occurs. Most research efforts in this direction, though, assume planned recovery – that is, well-defined recovery strategies for anticipated failures.

An alternative is to explore self-repairing systems from a generic perspective – that is, to develop techniques that repair systems that are as generic, unassuming, and non-intrusive as program analysis and debugging. The idea is to determine actual fixes to state, to configuration, or to code. These fixes can be seen as guidance for the developer on how to fix the problem and evolve the software. However, fixes can also be deployed automatically, and effectively lead to programs that fix themselves. Such techniques may be particularly useful for orphaned systems that are no longer maintained and critical software for which downtime is extremely expensive or even unacceptable. In these situations, there is no time to wait for a human developer to find and fix the bug. A synthesized patch can form a first line of defense against failures and attacks, a "first aid" buying time while more expensive or manual methods are deployed. At the same time, automatically generated fixes provide a much richer diagnostic quality then simple fault localization, and thus may dramatically reduce the time it takes to debug a problem.

Goals of the Seminar

This main goals of this seminar was to provide knowledge exchange, mutual inspiration, and opportunities for collaborations for a rapidly developing field. The seminar aimed to bring together researchers in dynamic program analysis, automated debugging, specification mining, software survival techniques, and autonomic computing to increase awareness of these issues and techniques across relevant disciplines (program analysis, debugging and self-adaptive systems), and to discuss:

  • how to monitor systems to detect abnormal state and behavior
  • how to generate fixes and how to choose the best fixes
  • how to deploy them in real-life systems and how to deal with the issues that arise when automatically correcting errors in software systems

  • Luciano Baresi (Polytechnic University of Milan, IT) [dblp]
  • Michael Carbin (MIT - Cambridge, US) [dblp]
  • Antonio Carzaniga (University of Lugano, CH) [dblp]
  • Satish Chandra (IBM TJ Watson Research Center - Yorktown Heights, US) [dblp]
  • Rogerio de Lemos (University of Kent, GB) [dblp]
  • Brian Demsky (University of California - Irvine, US) [dblp]
  • Stephanie Forrest (University of New Mexico - Albuquerque, US) [dblp]
  • Alessandra Gorla (University of Lugano, CH) [dblp]
  • Patrick Hurley (AFRL/RIGA - New York, US)
  • Dongsun Kim (HKUST - Kowloon, HK) [dblp]
  • Ben Liblit (University of Wisconsin - Madison, US) [dblp]
  • Leonardo Mariani (University of Milan-Bicocca, IT)
  • Alessandro Orso (Georgia Institute of Technology - Atlanta, US) [dblp]
  • Yu Pei (ETH Zürich, CH)
  • Mauro Pezzè (University of Lugano, CH) [dblp]
  • Stelios Sidiroglou-Douskos (MIT - Cambridge, US) [dblp]
  • Armando Solar-Lezama (MIT - Cambridge, US) [dblp]
  • Shmuel Ur (University of Bristol, GB)
  • Yi Wei (ETH Zürich, CH)
  • Westley Weimer (University of Virginia - Charlottesville, US) [dblp]
  • Tao Xie (North Carolina State University - Raleigh, US) [dblp]
  • Jean Yang (MIT - Cambridge, US) [dblp]
  • Andreas Zeller (Universität des Saarlandes, DE) [dblp]

  • programming languages/compiler
  • sw-engineering
  • verification/logic

  • Program analysis
  • Automated debugging
  • Automated fixing
  • Specification mining
  • Self-healing systems
  • Self-adapting systems