## Checking Linked Data Structures (1994)

### Download From

IEEE### Download Links

- [parasol.tamu.edu]
- [parasol.tamu.edu]
- [www.cs.tamu.edu]
- DBLP

### Other Repositories/Bibliography

Citations: | 27 - 0 self |

### BibTeX

@MISC{Amato94checkinglinked,

author = {Nancy M. Amato and Michael C. Loui},

title = {Checking Linked Data Structures},

year = {1994}

}

### Years of Citing Articles

### OpenURL

### Abstract

In the program checking paradigm, the original program is run on the desired input, and its output is checked by another program called achecker. Recently, the notion of program checking has been extended from its original formulation of checking functions to checking a sequence of operations which query and alter the state of an object external to the program, e.g., checking the interactions between a client and the manager (server) of a data structure. In this expanded paradigm, the checker acts as an intermediary between the client, which generates the requests, and the server, which processes them. The checker is allowed a small amount of reliable memory and may provide a probabilistic guarantee of correctness for the client. We present o-line and on-line checkers for data structures such as linked lists, trees, and graphs. Previously, the only data structures for which such checkers existed were random access memories, stacks, and queues.

### Citations

628 |
How to construct random functions
- Goldreich, Goldwasser, et al.
- 1986
(Show Context)
Citation Context ...cker. The on-line RAM checkers given in [5] differ from the checkers thus far described in this paper because they use cryptographic assumptions. In particular, they use either pseudorandom functions =-=[9]-=- or universal oneway hash functions [14, 16]. In both cases, the on-line RAM checker uses O(log n) bits of reliable memory and checks n user operations in O(nf log r) time, where r is the number of ce... |

534 |
System structure for software fault tolerance
- Randell
- 1975
(Show Context)
Citation Context ...average to compute a correct output. Program checkers can be used to achieve hardware and/or software fault-tolerance. For example, they can be used as acceptance tests in the recovery-block approach =-=[15]-=-, or as alternatives to N-version programming [1], algorithm-based faulttolerance, or the certification-trail technique. Recently, Blum et al. [5] expanded the concept of program checking to include a... |

345 | Self-testing/correcting with applications to numerical problems - Blum, Luby, et al. - 1993 |

313 | Universal one-way hash functions and their cryptographic applications
- Naor, Yung
- 1989
(Show Context)
Citation Context ... [5] differ from the checkers thus far described in this paper because they use cryptographic assumptions. In particular, they use either pseudorandom functions [9] or universal oneway hash functions =-=[14, 16]-=-. In both cases, the on-line RAM checker uses O(log n) bits of reliable memory and checks n user operations in O(nf log r) time, where r is the number of cells in the RAM and f is the time required to... |

305 | Designing Programs that Check Their Work - Blum, Kannan - 1995 |

259 | Small-bias probability spaces: efficient constructions and applications
- Naor, Naor
- 1993
(Show Context)
Citation Context ..., and queues of Blum et al. [5]. In its reliable and private (but not necessarily secret) memory, the checker holds: 1. The description of an ffl-biased hash function h. An ffl-biased hash function h =-=[13]-=- can be described using O(log d+k) random bits and can distinguish between two d-bit binary strings A and B as follows: if A 6= B, then h(A) = h(B) with probability at most 1=2 k . The values h(A) and... |

236 |
The N-Version Approach to Fault-Tolerant Software
- Avizienis
- 1985
(Show Context)
Citation Context ...ers can be used to achieve hardware and/or software fault-tolerance. For example, they can be used as acceptance tests in the recovery-block approach [15], or as alternatives to N-version programming =-=[1]-=-, algorithm-based faulttolerance, or the certification-trail technique. Recently, Blum et al. [5] expanded the concept of program checking to include an important class of nonfunctional problems: chec... |

194 |
Design and Analysis of Fault Tolerant Digital Systems
- Johnson
- 1989
(Show Context)
Citation Context ...is expanded version of program checking, the checker might use some limited amount of reliable memory---achieved through hardware fault-tolerance techniques such as hardware or information redundancy =-=[11]-=-. Then, if the resource resides in some larger unreliable memory, the checker can use its own smaller reliable memory to detect faults in the unreliable memory, i.e., faults in the larger memory can b... |

167 |
Algorithm-based fault tolerance for matrix operations
- Huang, Abraham
- 1984
(Show Context)
Citation Context ...putations. Algorithm-based fault tolerance is a method that checks an operation by tailoring the fault-tolerance scheme to the algorithm used to perform the operation. Introduced by Huang and Abraham =-=[10]-=-, this method has since been studied extensively (see, e.g., [2, 3, 4]). Generally, in an application of this technique, the input data are encoded, and the algorithm is designed to operate on encoded... |

95 | Checking the correctness of memories
- Blum, Gemmell, et al.
- 1991
(Show Context)
Citation Context ...d as acceptance tests in the recovery-block approach [15], or as alternatives to N-version programming [1], algorithm-based faulttolerance, or the certification-trail technique. Recently, Blum et al. =-=[5]-=- expanded the concept of program checking to include an important class of nonfunctional problems: checking the interactions between a user (client) and the manager (server) of some resource. In this ... |

26 |
Selftesting / correcting with applications to numerical problems
- Blum, Luby, et al.
- 1990
(Show Context)
Citation Context ...as the checker's probability of an incorrect evaluation can be made arbitrarily small, i.e., as small as desired. This basic model of program result checking was extended by Blum, Luby, and Rubinfeld =-=[7]-=- to include the idea of using several different programs (a library) to check another program, and the concept of a selftesting /correcting pair of programs that enable one to use a program that is no... |

25 |
Using certification trails to achieve software fault tolerance
- Sullivan, Masson
- 1990
(Show Context)
Citation Context ...checksum row and a checksum column to the input and output matrices [10]. Another interesting method for achieving fault tolerance is the certification-trail technique proposed by Sullivan and Masson =-=[17, 18]-=-. Briefly, the certification-trail technique consists of two phases. In the first phase, a modified version of the original program is run, producing both the expected output and a trail of data calle... |

22 |
Algorithm-based fault tolerance on a hypercube multiprocessor
- Banerjee, Rahmeh, et al.
- 1990
(Show Context)
Citation Context ...s an operation by tailoring the fault-tolerance scheme to the algorithm used to perform the operation. Introduced by Huang and Abraham [10], this method has since been studied extensively (see, e.g., =-=[2, 3, 4]-=-). Generally, in an application of this technique, the input data are encoded, and the algorithm is designed to operate on encoded input data and produce encoded output data; for example, many matrix ... |

21 | Certification trails for data structures
- Sullivan, Masson
- 1991
(Show Context)
Citation Context ...checksum row and a checksum column to the input and output matrices [10]. Another interesting method for achieving fault tolerance is the certification-trail technique proposed by Sullivan and Masson =-=[17, 18]-=-. Briefly, the certification-trail technique consists of two phases. In the first phase, a modified version of the original program is run, producing both the expected output and a trail of data calle... |

17 | Checking mergeable priority queues
- Bright, Sullivan
- 1994
(Show Context)
Citation Context ...technique could be performed online, and that each data structure operation would be processed and checked in constant time. We remark that, to our knowledge, all proposed certification-trail methods =-=[17, 18, 8]-=- have been off-line, i.e., a determination of correctness can be made only after the entire certification trail has been output by the modified original program and processed by the certifier. Some of... |

14 |
Compiler-assisted synthesis of algorithm-based checking in multiprocessors
- Balasubramanian, Banerjee
- 1990
(Show Context)
Citation Context ...s an operation by tailoring the fault-tolerance scheme to the algorithm used to perform the operation. Introduced by Huang and Abraham [10], this method has since been studied extensively (see, e.g., =-=[2, 3, 4]-=-). Generally, in an application of this technique, the input data are encoded, and the algorithm is designed to operate on encoded input data and produce encoded output data; for example, many matrix ... |

14 |
Bounds on algorithm-based fault tolerance in multiple processor systems
- Banerjee, Abraham
- 1986
(Show Context)
Citation Context ...s an operation by tailoring the fault-tolerance scheme to the algorithm used to perform the operation. Introduced by Huang and Abraham [10], this method has since been studied extensively (see, e.g., =-=[2, 3, 4]-=-). Generally, in an application of this technique, the input data are encoded, and the algorithm is designed to operate on encoded input data and produce encoded output data; for example, many matrix ... |

12 | Small-bias probability spaces: e cient constructions and applications - Naor, Naor - 1993 |

5 |
Synthesizing robust data structures - an introduction
- Kant, Ravichandran
- 1990
(Show Context)
Citation Context ...tinuously or in real-time environments. In addition to the uses mentioned above for program result checking, checkers of this type could be used for purposes such as developing robust data structures =-=[12, 19]-=-. In this expanded version of program checking, the checker might use some limited amount of reliable memory---achieved through hardware fault-tolerance techniques such as hardware or information redu... |

2 |
Error models for robust storage structures
- Taylor
- 1990
(Show Context)
Citation Context ...tinuously or in real-time environments. In addition to the uses mentioned above for program result checking, checkers of this type could be used for purposes such as developing robust data structures =-=[12, 19]-=-. In this expanded version of program checking, the checker might use some limited amount of reliable memory---achieved through hardware fault-tolerance techniques such as hardware or information redu... |

2 | Certi cation trails for data structures - Sullivan, Masson - 1991 |

1 |
One way hash functions are necessary and sufficient for secure signatures
- Rompel
- 1990
(Show Context)
Citation Context ... [5] differ from the checkers thus far described in this paper because they use cryptographic assumptions. In particular, they use either pseudorandom functions [9] or universal oneway hash functions =-=[14, 16]-=-. In both cases, the on-line RAM checker uses O(log n) bits of reliable memory and checks n user operations in O(nf log r) time, where r is the number of cells in the RAM and f is the time required to... |

1 | One way hash functions are necessary and su cient for secure signatures - Rompel - 1990 |

1 | Using certi cation trails to achieve software fault tolerance - Sullivan, Masson - 1990 |