Synthesizing Robust Data Structures-An Introduction
IEEE Transactions on Computers
Introduction to algorithms
Algorithm-Based Fault Tolerance on a Hypercube Multiprocessor
IEEE Transactions on Computers
Reverse engineering: algorithms for program graph production
Software—Practice & Experience
Automatic Generation of Path Covers Based on the Control Flow Analysis of Computer Programs
IEEE Transactions on Software Engineering
A Practical Approach to Programming With Assertions
IEEE Transactions on Software Engineering
Construction of Check Sets for Algorithm-Based Fault Tolerance
IEEE Transactions on Computers
Linear Complexity Assertions for Sorting
IEEE Transactions on Software Engineering
Complexity in program schemes: the characteristic polynomial
ACM SIGPLAN Notices
Algorithm-Based Fault Tolerance for Matrix Operations
IEEE Transactions on Computers
Assessment of the Benefit of Redundant Systems
SAFECOMP '02 Proceedings of the 21st International Conference on Computer Safety, Reliability and Security
EPIC: Profiling the Propagation and Effect of Data Errors in Software
IEEE Transactions on Computers
Dynamic decision tree for legacy use-case recovery
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
Proposes a formal approach for adding fault detection to software. An assertion-based formalism is used to represent algorithm specifications. This representation is then used to generate a flowgraph or decision-to-decision graph (ddgraph), which is used to construct an execution path tree. The information gained from this algorithm representation is used to aid in the design of software-based fault tolerance techniques. Algorithm-based fault tolerance (ABFT) techniques are used to detect data structure-corrupting faults and checks are added to detect program flow errors. Flowgraph and ddgraph representations provide information to predict future program flow from the current flow. During execution, the current program location is recorded, along with the expected flow. Checks are placed to verify that the program flow follows the predicted flow. Fault coverage has been estimated through experiments with SOFIT (SOftware-based Fault Injection Tool), and the data is presented to demonstrate the effectiveness of the method.