Links for Additional Information

Martin Rinard, Ph.D.

Department of Electrical Engineering and Computer Science
Associate Professor of Computer Science and Electrical Engineering

Room 32-G744
617-258-6922 (phone)


Ph.D. Computer Science 1994
Stanford University

Research Summary

I joined CSBi to better understand the conceptual connections between complex biological systems and complex software systems, with a focus on exploring insights relating to failures, errors, and self-repair in both kinds of systems. My goal as a computer scientist is to understand how to develop more robust systems that, in contrast to today's brittle systems, can effectively adapt to and recover from self-inflicted errors, unexpected inputs, and other forms of damage.

Many engineered and evolved systems (for example, car engines, aircraft, and biological organisms) have some built-in redundancy that allows them to degrade gracefully and continue to operate in the face of many kinds of damage or internal errors. Software system design and implementation, however, operates under an aesthetic that values orthogonal decompositions with no redundancy and therefore no duplicated or unnecessary implementation effort. The resulting systems are brittle “ a single programming error, unexpected input, or unanticipated change in the operating environment can make the entire system fail. Software systems today therefore require constant intervention and maintenance on the part of users and system administrators for their continued acceptable operation.

Complex biological systems, on the other hand, are inherently robust. They contain redundancies, compensatory pathways and self-repair mechanisms that allow them to detect and respond to damage. These mechanisms have evolved so that living organisms can continue to function in the face of damage that may be inflicted either by internal processes or environmental assaults. At the molecular level, for example, codon śwobble? permits the use of alternative transfer RNA molecules from the cellular pool during the translation of DNA into protein, and enzymatic DNA repair mechanisms monitor direct damage to the genetic code. At the whole-organism level, animals often can survive the failure or loss of an organ or limb.

We are interested in understanding the relationship between the self-repair mechanisms that operate in large complex biological systems and the mechanisms that software systems can use to repair themselves and recover from damage. All large software systems contain errors, some of which may be serious enough to corrupt the underlying data structures, prevent the successful execution of a key component of the system, or cause the entire system to fail catastrophically. These errors are self-inflicted in that they arise from mistakes in the code itself rather than from statistical processes involving physical components. We have already developed new techniques that can find and repair corrupt data structures and demonstrated that these techniques can enable systems to survive otherwise fatal errors and continue to execute productively without external intervention. Our goal is to extend this research to make software systems more resilient against the full range of self-inflicted errors and more robust against unexpected damage. The challenge will be to achieve the right balance between redundancy and efficiency, between complexity and simplicity.

Selected Publications

  • Static Specification Analysis for Termination of Specification-Based Data Structure Repair. Brian Demsky and Martin Rinard. Proceedings of the 14th IEEE International Symposium on Software Reliability Engineering Denver, Colorado November 2003.
  • Automatic Detection and Repair of Errors in Data Structures. Brian Demsky and Martin Rinard. Proceedings of the 2003 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA `03), Anaheim, California October 2003.
  • A Type System and Analysis for the Automatic Extraction and Enforcement of Design Information. Patrick Lam and Martin Rinard. 2003 European Conference on Object-Oriented Programming (ECOOP 2003), Darmstadt, Germany July 2003.
  • Automatic Data Structure Repair for Self-Healing Systems. Brian Demsky and Martin Rinard. First Workshop on Algorithms and Architectures for Self-Managed Systems, San Diego, California June 2003.

Last Updated: April 16, 2008