This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
PELAS-Program Error-Locating Assistant System
September 1988 (vol. 14 no. 9)
pp. 1253-1260

Error localization in program debugging is the process of identifying program statements which cause incorrect behavior. A prototype of the error localization assistant system which guides a programmer during debugging of Pascal programs is described. The system is interactive: it queries the programmer for the correctness of the program behavior and uses answers to focus the programmer's attention on an erroneous part of the program (in particular, it can localize a faulty statement). The system differs from previous approaches in that it makes use of the knowledge of program structure, which is derived automatically. The knowledge of program structure is represented by the dependence network which is used by the error-locating reasoning mechanism to guide the construction, evaluation, and modification of hypothesis of possible causes of the error. Backtracking reasoning has been implemented in the reasoning mechanism.

[1] A. Adam and J. Laurent, "LAURA, a system to debug student programs,"Artificial Intell., vol. 15, pp. 75-122, Jan. 1980.
[2] R. Balzer, T. E. Cheatham, and C. Green, "Software technology in the 1990's using a new paradigm,"Computer, vol. 16, pp. 39-45, Nov. 1983.
[3] D. R. Barstow, "An experiment in knowledge-based automatic programming,"Artificial Intell., vol. 12, pp. 73-119, Jan. 1979.
[4] R. Davis, "Diagnostic reasoning based on structure and behavior,"Artificial Intell., vol. 24, pp. 347-410, Dec. 1984.
[5] D. E. Denning and P. J. Denning, "Certification of programs for secure information flow,"Commun. ACM, vol. 20, no. 7, pp. 504- 513, July 1977.
[6] R. E. Fairley, "ALLADIN: An assembly language assertion driven debugging interpreter,"IEEE Trans. Software Eng., vol. SE-5, pp. 426-428, July 1979.
[7] M. R. Genesereth, "The use of design descriptions in automated diagnosis,"Artificial Intell., vol. 24, pp. 411-436, Dec. 1984.
[8] J. D. Gould, "Some psychological evidence on how people debug computer program,"Int. J. Man-Machine Studies, vol. 7, pp. 151- 182, Mar. 1975.
[9] M. T. Harandi, "Knowledge-based program debugging: A heuristic model," inProc. SoftFairI: 1st Conf. Software Development Tools, Techniques, and Alternatives, 1983, pp. 282-288.
[10] M. Hecht,Flow Analysis of Computer Programs. New York: Elsevier North-Holland, 1977.
[11] D. C. Hudson, T. Estrim, "EMERGE--A data driven medical decision making aid,"IEEE Trans. Pattern Anal. Machine Intell., vol. PAMI-6, pp. 87-91, Jan. 1984.
[12] W. L. Johnson and E. Soloway, "PROUST: Knowledge-based program understanding," inProc. Seventh Int. Conf. Software Eng., Orlando, FL, 1984, pp. 369-380.
[13] B. Korel, "Data flow in static program testing," Technical Report School Eng. Comput. Sci., Oakland Univ., Tech. Rep. CIS-BK-84-10-1, 1984.
[14] B. Korel and J. Laski, "A tool for data flow oriented program testing,"ACM Softfair Proc. pp. 35-37, Dec. 1985.
[15] B. Korel, "Dependence-based modelling in the automation of error localization in computer programs," Ph.D. dissertation, School Eng. Comput. Sci., Oakland Univ., 1986.
[16] J. W. Laski and B. Korel, "A data flow oriented program testing strategy,"IEEE Trans. Software Eng., vol. SE-9, pp. 347-354, May 1983.
[17] T. Lengauer and R.E. Tarjan, "A Fast Algorithm for Finding Dominators in a Flowgraph,"ACM Trans. Programming Languages and Systems, July 1979, pp. 121-141.
[18] F. J. Lukey, "Understanding and debugging programs,"Int. J. Man--Machine Studies, vol. 12, pp. 189-202, Feb. 1980.
[19] G. J. Myers,The Art of Software Testing. New York: Wiley, 1979.
[20] L. J. Osterweil, "Toolpack--An experimental software development environment research project,"IEEE Trans. Software Eng., vol. SE-9, pp. 673-685, Dec. 1983.
[21] K. Ottenstein and L. Ottenstein, "The program dependence graph in software development environments,"ACM SIGPLAN Notices, vol. 19, no. 5, pp. 177-184, May 1984; see also,Proc. ACM SIGSOFT/SIGPLAN Software Eng. Symp. Practical Software Development Environments.
[22] J. A. Reggia, D. S. Nan, and P. Wang, "Diagnostic expert systems based on a set covering model,"Int. J. Man--Machine Studies, vol. 19, pp. 437-460, Nov. 1983.
[23] C. Rich and H. E. Shrobe, "Initial report on a LISP programmer's apprentice,"IEEE Trans. Software Eng., vol. SE-4, pp. 456-467, Nov. 1978.
[24] R. L. Sedlmeyer, W. B. Thompson, and P. Johnson, "Knowledge-based fault localization in debugging," inProc. SIGSOFT/SIGPLAN Software Eng. Symp. High-Level Debugging, Aug. 1983, pp. 25-31.
[25] R. Seider and N. Tindall, "Interactive debug requirements," inProc. SIGSOFT/SIGPLAN Software Eng. Symp. High-Level Debugging, Aug. 1983, pp. 9-22.
[26] E. Shapiro, "Algorithmic program debugging," Ph.D. dissertation, Dep. Comput. Sci., Yale Univ., 1982.
[27] E. H. Shortliffe,Computer-Based Medical Consultation: MYCIN. New York: Elsevier, 1976.
[28] R. C. Waters, "The programmer's apprentice: Knowledge based program editing,"IEEE Trans. Software Eng., vol. SE-8, pp. 1-12, Jan. 1982.
[29] M. Weiser, "Program slicing,"IEEE Trans. Software Eng., vol. SE-10, pp. 352-357, July 1984.
[30] H. Wertz, "Stereotyped program debugging: An aid for novice programmers,"Int. J. Man--Machine Studies, vol. 16, pp. 379-392, May 1982.

Index Terms:
knowledge based system; knowledge representation; PELAS; program error-locating assistant system; program debugging; error localization assistant; Pascal programs; program structure; dependence network; reasoning; interactive systems; knowledge based systems; knowledge representation; Pascal; program debugging; program verification; software tools
Citation:
B. Korel, "PELAS-Program Error-Locating Assistant System," IEEE Transactions on Software Engineering, vol. 14, no. 9, pp. 1253-1260, Sept. 1988, doi:10.1109/32.6169
Usage of this product signifies your acceptance of the Terms of Use.