ABSTRACT
MrSpidey is a user-friendly, interactive static debugger for Scheme. A static debugger supplements the standard debugger by analyzing the program and pinpointing those program operations that may cause run-time errors such as dereferencing the null pointer or applying non-functions. The program analysis of MrSpidey computes value set descriptions for each term in the program and constructs a value flow graph connecting the set descriptions. Using the set descriptions, MrSpidey can identify and highlight potentially erroneous program operations, whose cause the programmer can then explore by selectively exposing portions of the value flow graph.
- 1.AIKEN, A., WIMMERS, E. L., AND LAKSHMAN, T. K. Soft typing with conditional types. In Proceedings of the A CM Sigplan Conference on Prin. ciples of Programming Languages (1994), pp. 163- 173. Google ScholarDigital Library
- 2.BOUaDONCLE, F. Abstract debugging of higherorder imperative languages. In Proceedings of the A CM SIGPLAN '93 Conference on Programming Language Design and Implementation (June 1993), pp. 46-55. Google ScholarDigital Library
- 3.CLINGER, W., AND REES, J. (Eos.). The revised4 report on the algorithmic language scheme. ACM Lisp Pointers 4, 3 (July 1991). Google ScholarDigital Library
- 4.CooPER, K. D., HALL, M. W., HOOD, R., KENNEDY, K., MCKINLEY, K., MELLOR- CRUMMEY, J., TORCZON, L., AND WARREN, S. The Parascope parallel programming environment. Proceedings of the iEEE (February 1993), 244-263.Google Scholar
- 5.COUSOT, P., AND COUSOT, R. Abstract interpretation: A unified lattice model for static analyses of programs by construction or approximation of fixpoints. In Proceedings of the A CM Sigplan Conference on Principles of Programming Languages (1977), rp-238-252. Google ScholarDigital Library
- 6.FLANAGAN, C., AND FELLEISEN, M. Set-based analysis for full Scheme and its use in soft-typing. Rice University Computer Science TR95-253.Google Scholar
- 7.FLANAGAN, C., AND FELLEISEN, M. The semantics of future and its use in program optimizations, in Proceedings of the A CM Sigplan Conference on Principles of Programming Languages (1995), PP. 2O9-22O. Google ScholarDigital Library
- 8.FLATT, M. MrEd: An engine for portable graphical user interfaces. Rice University Computer Science TR-96-258, Rice University.Google Scholar
- 9.G~.cs~.G, F., AND STEINBY, M. Tree Automata. Akad~miai Kind6, Budapest, 1984.Google Scholar
- 10.HEINTZE, N. Set based analysis of arithmetic. Tech. Rep. CMU-CS-93-221, Carnegie Mellon University, December 1993. Google ScholarDigital Library
- 11.Hr. INTZE, No Set-based analysis of ML programs. In Proceedings of the A CM Conference on Lisp and Functional Programming (1994), pp. 306-317. Google ScholarDigital Library
- 12.HENGLEIN, F. Dynamic typing: syntax and proof theory. Science of Computer Programming 22 (1994), pp. 197-230. Google ScholarDigital Library
- 13.HIRANANDANI, S., KENNEDY, K., TSENG, C.- W., AND WARREN, S. The D editor' A new interactive parallel programming tool. In Proceedings of $upercomputing (1994). Google ScholarDigital Library
- 14.JAGANNATHAN, S., AND WEEKS, S. A unified treatment of flow analysis in higher-order languages. In ~~nd A CM Symposium on Principles of Programming Languages (1995), pp. 393-407. Google ScholarDigital Library
- 15.JAGANNATUAN, S., AND WRIGUT, A. K. Effective flow analysis for avoiding run-time checks. In Proc. ~nd International Static Analysis Symposium, LNCS 983 (September 1995), Springer- Verlag, pp. 207-224. Preliminary version appears as part of Technical Report DAIMI-PB 493, arhus University, May 1995. Google ScholarDigital Library
- 16.KENNEDY, K., MCKINLEY, K., AND TSENG, C.- W. Interactive parallel programming using the ParaScope Editor. IEEE Transactions on Parallel and Distributed Systems 2, 3 (July 1991). Google ScholarDigital Library
- 17.KERNIGHAN, B. W., AND RITCHIE, D. M. The C Programming Language. Prentice-Hall, 1988. Google ScholarDigital Library
- 18.KRISHNAMURTHI, S. Zodiac: A programming environment builder. Rice University Computer Science TR-96-259, Rice University.Google Scholar
- 19.MALMKJ/gR, K., HEINTZE, N., AND DANVY, O. ML partial evaluation using set-based analysis. Tech. Rep. CMU-CS-94-129, Carnegie Mellon University, 1994.Google Scholar
- 20.MILLER, B., KOSKI, D., LEE, C. P., MAGANTY, V., MURTHY, P., NATARAJAN, A., AND STEIDL, J. Fuzz revisited: A re-examination of the reliability of unix utilities and services. Computer Science Department, University of Wisconsin, 1995.Google Scholar
- 21.MiLNER, R., TOFTr, M., AND HARPER, R. The Definition of Standard ML. The MIT Praa~, Cambridge, Massachusetts and London, England, 1990. Google ScholarDigital Library
- 22.PLOTKIN, G. D. Call-by-name, call-by-value, and the A-calculus. Theoretical Comput. Sci. 1 (1975), 125-159.Google ScholarCross Ref
- 23.SHAO, Z., AND APPEL, A. Space-efficient closure representations, in Proceedings of the A CM Symposium on Lisp and Functional Programming (1994), pp. 150-161. Google ScholarDigital Library
- 24.SHEI, B., AND GANNON, D. Sigmacs: A programmable programming environment. In Advances in Languages and Compilers for Parallel Computing. The MIT Press, August 1990.Google Scholar
- 25.SHIVERS, O. Control-flow Analysis of Higher- Order Languages, or Taming Lambda. PhD thesis, Carnegie-Mellon University, 1991. Google ScholarDigital Library
- 26.STErANESCU, D., AND ZUOU, Y. An equational framework for the flow analysis of higher order functional programs, in Proceedings of the A CM Conference on Lisp and Functional Programming (1994), pp. 318-327. Google ScholarDigital Library
- 27.WoLfE, M. J. :The Tiny loop restructuring research tool. In Proceedins of the 1991 International Conference on Parallel Processing (August 1991).Google Scholar
- 28.WRIGHT, A., AND CARTWRiGHT, Ro A practical soft type system for scheme. In Proceedings of the A CM Conference on Lisp and Functional Programming (1994), pp. 250-262. Google ScholarDigital Library
Index Terms
- Catching bugs in the web of program invariants
Recommendations
Catching bugs in the web of program invariants
MrSpidey is a user-friendly, interactive static debugger for Scheme. A static debugger supplements the standard debugger by analyzing the program and pinpointing those program operations that may cause run-time errors such as dereferencing the null ...
Symbolic heap abstraction with demand-driven axiomatization of memory invariants
OOPSLA '10Many relational static analysis techniques for precise reasoning about heap contents perform an explicit case analysis of all possible heaps that can arise. We argue that such precise relational reasoning can be obtained in a more scalable and ...
Program decomposition for pointer aliasing: a step toward practical analyses
Pointer aliasing analysis is crucial to compile-time analyses for languages with general-purpose pointer usage (such as C), but many aliasing methods have proven quite costly. We present a technique that partitions the statements of a program to allow ...
Comments