首页 | 本学科首页   官方微博 | 高级检索  
     


Debugging programs that use macro-oriented data abstractions
Authors:Jacob Katzenelson  Avy Strominger
Abstract:Enhanced C (EC) is a set-oriented, extensible, C-like language. EC uses data abstractions to define new types. These data abstractions, called clusters, are macro-like devices that perform substitution on the typed syntax tree. Debugging programs that use clusters raise problems that are not encountered in ordinary programming languages. At compile time there is a need to determine and report whether the macro expansion will result in a legal program before this expansion actually takes place. At run-time the problems are how to account for replaced statements and how to handle variables whose types have been established by the clusters, variables that disappear, or variables whose names have been changed. This article presents these problems and their solutions as implemented by the EC compiler and the EC symbolic debugger. Similar debugging problems appear in other languages: The need to handle variables at run time is common to all languages that support data abstraction even if the abstractions are procedure oriented; also, a mild form of the problem of the replaced statement appears in inline procedure substitution of Ada. The solutions developed for the EC debugger apply to these cases as well.
Keywords:Macro data abstractions  Compile-time comments  Symbolic debugging  Enhanced C
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号