Title :
Linear complexity assertions for sorting
Author :
Saxena, Nirmal R. ; McCluskey, Edward J.
Author_Institution :
HaL Comput. Syst., Campbell, CA, USA
fDate :
6/1/1994 12:00:00 AM
Abstract :
Correctness of the execution of sorting programs can be checked by two assertions: the order assertion and the permutation assertion. The order assertion checks if the sorted data is in ascending or descending order. The permutation assertion checks if the output data produced by sorting is a permutation of the original input data. Permutation and order assertions are sufficient for the detection of errors in the execution of sorting programs; however, in terms of execution time these assertions cost the same as sorting programs. An assertion, called the order-sum assertion, that has lower execution cost than sorting programs is derived from permutation and order assertions. The reduction in cost is achieved at the expense of incomplete checking. Some metrics are derived to quantify the effectiveness of order-sum assertion under various error models. A natural connection between the effectiveness of the order-sum assertion and the partition theory of numbers is shown. Asymptotic formulae for partition functions are derived
Keywords :
program debugging; program diagnostics; program verification; programming theory; sorting; ascending order; descending order; error checking; error detection; execution time; input data; linear complexity assertions; order assertion; order-sum assertion; output data; partition functions; partition theory; permutation assertion; program execution; programs correctness checking; sorted data; sorting programs; watchdog checker; Change detection algorithms; Computer aided instruction; Computer errors; Costs; Counting circuits; Error correction; Hardware; Registers; Sorting; Testing;
Journal_Title :
Software Engineering, IEEE Transactions on