Advertisement

Debugging Eli-Generated Compilers with Noosa

  • Anthony M. Sloane
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1575)

Abstract

Source-level tools are not adequate for debugging generated compilers because they operate at the level of the generated implementation. It is inappropriate to expect compiler writers to be familiar with the implementation techniques used by the generation system. A higher-level approach presents debugging in terms of an abstract model of the implementation. For example, finite-state machines might be shown while debugging a scanner. This approach is inappropriate for developers who are not compiler experts and even for experts may present more information than is desirable.

An even higher-level approach is used by the Noosa graphical debugger for the Eli compiler generation system. The compiler writer is required to understand a simple execution model that involves concepts that they already have to understand to write Eli specifications. Noosa allows high-level data examination in terms of the input to the compiler and the abstract trees upon which attribution is performed. An event system allows fine-tuned control of program execution. The result is a debugging system that enables developers to diagnose bugs without having to have any knowledge of the underlying mechanisms used by their compiler.

Keywords

Regular Expression Execution Model Abstract Tree Event Handler Attribute Grammar 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Brown, M.H.: Algorithm Animation. The MIT Press, Boston (1988)Google Scholar
  2. 2.
    Brown, M.H.: Zeus: a system for algorithm animation and multi-view editing. Research Report No.75, Digital Equipment Corporation Systems Research Center (February 1992)Google Scholar
  3. 3.
    Donnelly, C., Stallman, R.: Bison—the YACC-compatible parser generator. Free Software Foundation, 1.25 edition (November 1995)Google Scholar
  4. 4.
    Gray, R.W., Heuring, V.P., Levi, S.P., Solare, A.M., Waite, W.M.: Eli: A complete, flexible compiler construction system. Commun. ACM 35(2), 121–131 (1992)CrossRefGoogle Scholar
  5. 5.
    Hanson, D.R.: Event associations in SNOBOL4 for program debugging. Softw. Pract. Exper. 8, 115–129 (1978)zbMATHCrossRefGoogle Scholar
  6. 6.
    SandStone Technology Inc. Visual parse++, http://www.sand-stone.com
  7. 7.
    Johnson, S.C.: YACC - Yet another compiler-compiler. Computer Science Tech. Rep. 32, Bell Telephone Laboratories, Murray Hill, N.J. (1975)Google Scholar
  8. 8.
    Linton, M.A.: The evolution of Dbx. In: USENIX Summer Conference, June 1990, pp. 211–220 (1990)Google Scholar
  9. 9.
    Mössenbock, H.: A generator for production quality compilers. In: Hammer, D. (ed.) CC 1990. LNCS, vol. 477, pp. 42–55. Springer, Heidelberg (1991)Google Scholar
  10. 10.
    Olsson, R.A., Crawford, R.H., Ho, W.W., Wee, C.E.: Sequential debugging at a high level of abstraction. IEEE Software 8(3), 27–36 (1991)CrossRefGoogle Scholar
  11. 11.
    Ousterhout, J.: Tcl and the Tk toolkit. Addison-Wesley, Reading (1994)zbMATHGoogle Scholar
  12. 12.
    Parr, T.J., Dietz, H.G., Cohen, W.E.: PCCTS reference manual. In: SIGPLAN Not., February 1992, vol. 27(2), pp. 88–165 (1992)Google Scholar
  13. 13.
    Parr, T.J., Quong, R.W.: ANTLR: A predicated-LL(k) parser generator. Softw. Pract. Exper. 25(7), 789–810 (1995)CrossRefGoogle Scholar
  14. 14.
    Schröer, F.W.: The GENTLE Compiler Construction System. R. Oldenburg (1997)Google Scholar
  15. 15.
    Sosic, R.: Design and implementation of Dynascope. Computing Systems 8(2), 107–134 (1995)Google Scholar
  16. 16.
    Stallman, R.M., Pesch, R.H.: Debugging with GDB 4.17—The GNU source-level debugger. Free Software Foundation (1998)Google Scholar
  17. 17.
    Stasko, J.T.: A practical animation language for software development. In: International Conference on Computer Languages, pp. 1–10 (1990)Google Scholar
  18. 18.
    Stasko, J.T.: Tango: a framework and system for algorithm animation. Computer 23(9), 27–39 (1990)CrossRefGoogle Scholar
  19. 19.
    Terry, P.D.: Compilers and compiler generators: an introduction with C++. International Thomson Computer Press (1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Anthony M. Sloane
    • 1
  1. 1.Department of ComputingMacquarie University SydneyAustralia

Personalised recommendations