On the Reliability of the IBM MVS/XA Operating System
IEEE Transactions on Software Engineering
Introduction to algorithms
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The design and implementation of an intentional naming system
Proceedings of the seventeenth ACM symposium on Operating systems principles
Model checking
Symbolic execution and program testing
Communications of the ACM
Java Virtual Machine Specification
Java Virtual Machine Specification
Program Development in Java: Abstraction, Specification, and Object-Oriented Design
Program Development in Java: Abstraction, Specification, and Object-Oriented Design
Korat: automated testing based on Java predicates
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
An Efficient Protocol for Checkpointing Recovery in Distributed Systems
IEEE Transactions on Parallel and Distributed Systems
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Using Memory Errors to Attack a Virtual Machine
SP '03 Proceedings of the 2003 IEEE Symposium on Security and Privacy
Web Services and Service-Oriented Architecture: The Savvy Manager's Guide
Web Services and Service-Oriented Architecture: The Savvy Manager's Guide
Dynamically discovering likely program invariants
Dynamically discovering likely program invariants
Effective compile-time analysis for data prefetching in java
Effective compile-time analysis for data prefetching in java
Automatic detection and repair of errors in data structures
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Recurrence analysis for effective array prefetching in Java: Research Articles
Concurrency and Computation: Practice & Experience - 2002 ACM Java Grande—ISCOPE Conference Part I
Combining test case generation and runtime verification
Theoretical Computer Science - Abstract state machines and high-level system design and analysis
Automatic testing of software with structurally complex inputs
Automatic testing of software with structurally complex inputs
Inference and enforcement of data structure consistency specifications
Proceedings of the 2006 international symposium on Software testing and analysis
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Tool-assisted unit-test generation and selection based on operational abstractions
Automated Software Engineering
Cork: dynamic memory leak detection for garbage-collected languages
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Data structure repair using goal-directed reasoning
Data structure repair using goal-directed reasoning
Generating representation invariants of structurally complex data
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Generalized symbolic execution for model checking and testing
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Repairing structurally complex data
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
Efficiently generating structurally complex inputs with thousands of objects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Juzi: a tool for repairing complex data structures
Proceedings of the 30th international conference on Software engineering
Efficient solving of structural constraints
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Dynamic shape analysis via degree metrics
Proceedings of the 2009 international symposium on Memory management
An Empirical Study of Structural Constraint Solving Techniques
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
What can the GC compute efficiently?: a language for heap assertions at GC time
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
Modular and verified automatic program repair
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
Data structure corruptions are insidious bugs that reduce the reliability of software systems. Constraint-based datastructure repair promises to help programs recover from potentially crippling corruption errors. Prior work repairs a variety of relatively small data structures, usually with hundreds of nodes. We present STARC which uses static analysis to repair data structures with tens of thousands of nodes. Given a Java predicate method that describes the integrity constraints of a structure, STARC statically analyzes the method to identify: (1) the recurrent fields, i.e., fields that the predicate method uses to traverse the structure; and (2) local field constraints, i.e., how the value of an object field is related to the value of a neighboring object field. STARC executes the predicate method on the structure and monitors its execution to identify corrupt object fields, which STARC then repairs using a systematic search of a neighborhood of the given structure. Each repair action is guided by the result of the static analysis, which enables more efficient and effective repair compared to prior work. Experimental results showthat STARC can repair structures with tens of thousands of nodes, up to 100 times larger than prior work. STARC efficiency is probably not practical for very large data structures in deployed systems, but opens a promising direction for future work.