Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
On the Reliability of the IBM MVS/XA Operating System
IEEE Transactions on Software Engineering
The magic garden explained: the internals of UNIX System V Release 4: an open systems design
The magic garden explained: the internals of UNIX System V Release 4: an open systems design
Automatic generation of production rules for integrity maintenance
ACM Transactions on Database Systems (TODS)
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the Conference on The Future of Software Engineering
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Self-stabilizing systems in spite of distributed control
Communications of the ACM
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESP: path-sensitive program verification in polynomial time
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A system and language for building system-specific, static analyses
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Efficient and precise datarace detection for multithreaded object-oriented programs
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Ownership types for safe programming: preventing data races and deadlocks
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Constraint Analysis: A Design Process for Specifying Operations on Objects
IEEE Transactions on Knowledge and Data Engineering
Deriving Production Rules for Constraint Maintainance
VLDB '90 Proceedings of the 16th International Conference on Very Large Data Bases
Consistency management with repair actions
Proceedings of the 25th International Conference on Software Engineering
Auditdraw: Generating Audits the FAST Way
RE '97 Proceedings of the 3rd IEEE International Symposium on Requirements Engineering
Recursive Restartability: Turning the Reboot Sledgehammer into a Scalpel
HOTOS '01 Proceedings of the Eighth Workshop on Hot Topics in Operating Systems
Recovery Oriented Computing (ROC): Motivation, Definition, Techniques,
Recovery Oriented Computing (ROC): Motivation, Definition, Techniques,
Acceptability-oriented computing
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Acceptability-oriented computing
ACM SIGPLAN Notices
Helping users avoid bugs in GUI applications
Proceedings of the 27th international conference on Software engineering
Data structure repair using goal-directed reasoning
Proceedings of the 27th international conference on Software engineering
Instrumentation in software dynamic translators for self-managed systems
WOSS '04 Proceedings of the 1st ACM SIGSOFT workshop on Self-managed systems
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Object duplication for improving reliability
ASP-DAC '06 Proceedings of the 2006 Asia and South Pacific Design Automation Conference
Runtime integrity checking for inter-object connections
ICCAD '05 Proceedings of the 2005 IEEE/ACM International conference on Computer-aided design
Inference and enforcement of data structure consistency specifications
Proceedings of the 2006 international symposium on Software testing and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
HeapMD: identifying heap-based bugs using anomaly detection
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Binary analysis and automated hot patching for Web-based applications
Information and Software Technology
Building a reactive immune system for software services
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
Goal-Directed Reasoning for Specification-Based Data Structure Repair
IEEE Transactions on Software Engineering
Exterminator: automatically correcting memory errors with high probability
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Enhancing server availability and security through failure-oblivious computing
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Detecting and eliminating memory leaks using cyclic memory allocation
Proceedings of the 6th international symposium on Memory management
Starc: static analysis for efficient repair of complex data
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Assertion-based repair of complex data structures
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
From STEM to SEAD: speculative execution for automated defense
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
Autopoietic companions and correctness helpers
Proceedings of the 2nd international workshop on Ultra-large-scale software-intensive systems
Efficient solving of structural constraints
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Alchemy: transmuting base alloy specifications into implementations
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
ASSURE: automatic software self-healing using rescue points
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Building a self-healing embedded system in a multi-OS environment
Proceedings of the 2009 ACM symposium on Applied Computing
In-field healing of integration problems with COTS components
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
CrystalBall: predicting and preventing inconsistencies in deployed distributed systems
NSDI'09 Proceedings of the 6th USENIX symposium on Networked systems design and implementation
Self-healing: science, engineering, and fiction
NSPW '07 Proceedings of the 2007 Workshop on New Security Paradigms
CADE-22 Proceedings of the 22nd International Conference on Automated Deduction
Automatically patching errors in deployed software
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Survival strategies for synthesized hardware systems
MEMOCODE'09 Proceedings of the 7th IEEE/ACM international conference on Formal Methods and Models for Codesign
Predicting and preventing inconsistencies in deployed distributed systems
ACM Transactions on Computer Systems (TOCS)
Why panic()?: improving reliability with restartable file systems
ACM SIGOPS Operating Systems Review
Dynamic symbolic data structure repair
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Automated fixing of programs with contracts
Proceedings of the 19th international symposium on Software testing and analysis
Membrane: Operating system support for restartable file systems
ACM Transactions on Storage (TOS)
SQCK: a declarative file system checker
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Automated support for repairing input-model faults
Proceedings of the IEEE/ACM international conference on Automated software engineering
DSDSR: a tool that uses dynamic symbolic execution for data structure repair
Proceedings of the Eighth International Workshop on Dynamic Analysis
Editorial: Detection of semantic conflicts in ontology and rule-based information systems
Data & Knowledge Engineering
Patterns and statistical analysis for understanding reduced resource computing
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Falling back on executable specifications
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Contract-based data structure repair using alloy
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Autonomous hot patching for web-based applications
COMPSAC-W'05 Proceedings of the 29th annual international conference on Computer software and applications conference
Using allopoietic agents in replicated software to respond to errors, faults, and attacks
Proceedings of the 48th Annual Southeast Regional Conference
PEASOUP: preventing exploits against software of uncertain provenance (position paper)
Proceedings of the 7th International Workshop on Software Engineering for Secure Systems
Reactive imperative programming with dataflow constraints
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Towards reliable storage systems
Towards reliable storage systems
An object store model for diagnosing java programs
AI'05 Proceedings of the 18th Australian Joint conference on Advances in Artificial Intelligence
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Diagnosing program errors with light-weighted specifications
IEA/AIE'06 Proceedings of the 19th international conference on Advances in Applied Artificial Intelligence: industrial, Engineering and Other Applications of Applied Intelligent Systems
Repair of boolean programs with an application to c
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Repairing structurally complex data
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
A dynamic mechanism for recovering from buffer overflow attacks
ISC'05 Proceedings of the 8th international conference on Information Security
What to do when things go wrong: recovery in complex (computer) systems
Proceedings of the 11th annual international conference on Aspect-oriented Software Development Companion
Obtaining and reasoning about good enough software
Proceedings of the 49th Annual Design Automation Conference
History-Aware data structure repair using SAT
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Generating range fixes for software configuration
Proceedings of the 34th International Conference on Software Engineering
Badger: a regression planner to resolve design model inconsistencies
ECMFA'12 Proceedings of the 8th European conference on Modelling Foundations and Applications
Efficiently generating structurally complex inputs with thousands of objects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
SemFix: program repair via semantic analysis
Proceedings of the 2013 International Conference on Software Engineering
Automatic recovery from runtime failures
Proceedings of the 2013 International Conference on Software Engineering
Exception handlers for healing component-based systems
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Proceedings of the 2013 workshop on New security paradigms workshop
Hi-index | 0.00 |
We present a system that accepts a specification of key data structure consistency constraints, then dynamically detects and repairs violations of these constraints, enabling the program to continue to execute productively even in the face of otherwise crippling errors. Our experience using our system indicates that the specifications are relatively easy to develop once one understands the data structures. Furthermore, for our set of benchmark applications, our system can effectively repair inconsistent data structures and enable the program to continue to operate successfully.