Skip to main content

Program result checking: A new approach to making programs more reliable

  • Conference paper
  • First Online:
Automata, Languages and Programming (ICALP 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 700))

Included in the following conference series:

Abstract

Program result checking is concerned with designing programs to check their work. For example, after solving an equation for x, a result-checking program would substitute x back into the equation to make sure that the answer obtained is correct. There are many ways to check results, but there has been no theory to say what constitutes a good check. It is not a good check, for example, to redo a computation without change a second time. Such recomputation may uncover an intermittent hardware fault, but it will not uncover a software fault, and the discovery and elimination of software faults is the principal goal of this work. This talk discusses the concept of result checking, gives several examples, and outlines the basic theory.

This work was supported in part by NSF grant CCR92-01092, in part by IBM Research Division, T.J. Watson Research Center, and in part by ICSI, the International Computer Science Institute, Berkeley, CA.

A preliminary version of this paper appeared in Blum and Raghavan [BR].

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. Ar, M. Blum, B. Codenotti, and P. Gemmell, “Checking Approximate Computations Over the Reals.” to appear in STOC 93, 10 pp.

    Google Scholar 

  2. L. Babai, “E-mail and the power of interaction,” Proc 5th Structures in Complexity Theory Conference, (1990).

    Google Scholar 

  3. R. Beigel, personal communication.

    Google Scholar 

  4. M. Blum, “Designing Program to Check their Work,” ICSI Tech. Report TR-88-009.

    Google Scholar 

  5. M. Blum and S. Kannan, “Designing Programs that Check Their Work,” Proc. 21st ACM STOC (1989).

    Google Scholar 

  6. D. Beaver and J. Feigenbaum, “Hiding Instances in Multioracle Queries,” Proc. 7th STACS90, Springer-Verlag vol. 415, 37–48 (1990).

    Google Scholar 

  7. L. Babai, L. Fortnow, and C. Lund, “Nondeterministic Exponential Time has Two-Prover Interactive Protocols,” Computational Complexity, vol. 1, 3–40 (1991).

    Google Scholar 

  8. M. Blum, M. Luby and R. Rubinfeld, “Self-Testing/Correcting with Applications to Numerical Problems,” to appear in special issue of JCSS (1993).

    Google Scholar 

  9. M. Blum and P. Raghavan, “Program Correctness: Can One Test for It?,” IBM T.J. Watson Research Center Technical Report RC 14038 (#62902) (Sept. 1988), 12 pp.

    Google Scholar 

  10. J. Feigenbaum and L. Fortnow, “On the Random Self-Reducibility of Complete Sets,” Proc. IEEE Structure in Complexity Theory, 124–132 (1991); to appear in SIAM J. Comp., vol. 22, No. 5 (1993).

    Google Scholar 

  11. L. Fortnow, H. Karloff, K. Lund, and N. Nisan, “The Polynomial Hierarchy has Interactive Proofs,” Proc 31st IEEE FOCS, (1990).

    Google Scholar 

  12. P. Gemmell, “Checking for Approximate Programs and Unconditionally Secure Authentication,” Ph.D. Dissertation, Department of Computer Science, U. C. Berkeley (1993).

    Google Scholar 

  13. O. Goldreich, S. Micali and A. Wigderson, “Proofs that Yield Nothing but their Validity and a Methodologyof Cryptographic Design,” Proc. 27th IEEE Symposium on Foundations of Computer Science, 174–187 (1986).

    Google Scholar 

  14. S. Kannan, “Program Checkers for Algebraic Problems.” Ph.D. thesis to be submitted to the Computer Science Division of the University of California at Berkeley.

    Google Scholar 

  15. R. Kannan, personal communication through S. Rudich.

    Google Scholar 

  16. R. Lipton, “New Directions in Testing,” DIMACS Series on Discrete Mathematics and Theoretical Computer Science, vol. 2, pp. 191–202, (1991).

    Google Scholar 

  17. N. Nisan, “Co-SAT Has Multi-Prover Interactive Proofs,” e-mail announcement, (Nov 1989).

    Google Scholar 

  18. R. Rubinfeld, “A Mathematical Theory of Self-Checking, Self-Testing, and Self-Correcting Programs, Ph.D. thesis, Computer Science Departement, U.C. Berkeley, 1990.

    Google Scholar 

  19. A. Shamir, “IP=PSPACE,” Proc 31st IEEE FOCS (1990).

    Google Scholar 

  20. G.F. Sullivan and G.M. Masson, “Using Certification Trails to Achieve Software Fault Tolerance,” Digest of the 1990 Fault Tolerant Computing Symposium, pp. 423–431, IEEE Computer Society Press, 1990.

    Google Scholar 

  21. G.F. Sullivan and G.M. Masson, “Certification Trails for Data Structures,” Digest of the 1991 Fault Tolerant Computing Symposium, pp. 240–247, IEEE Computer Society Press, 1991.

    Google Scholar 

  22. F. Vainstein “Error Detection and Correction in Numerical Computations by Algebraic Methods,” Lecture Notes in Computer Science 539, Springer-Verlag, 1991, pp 456–464.

    Google Scholar 

  23. F. Vainstein “Algebraic Methods In Hardware/Software Testing,” Ph.D. Dissertation, Boston University, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Andrzej Lingas Rolf Karlsson Svante Carlsson

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Blum, M. (1993). Program result checking: A new approach to making programs more reliable. In: Lingas, A., Karlsson, R., Carlsson, S. (eds) Automata, Languages and Programming. ICALP 1993. Lecture Notes in Computer Science, vol 700. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56939-1_57

Download citation

  • DOI: https://doi.org/10.1007/3-540-56939-1_57

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56939-8

  • Online ISBN: 978-3-540-47826-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics