Title of article :
Debugging hygienic macros
Author/Authors :
Ryan Culpepper، نويسنده , , Shriram Krishnamurthi and Matthias Felleisen ، نويسنده ,
Issue Information :
ماهنامه با شماره پیاپی سال 2010
Pages :
20
From page :
496
To page :
515
Abstract :
Over the past two decades, Scheme macros have evolved into a powerful API for the compiler front end. Like Lisp macros, their predecessors, Scheme macros expand source programs into a small core language; unlike Lisp systems, Scheme macro expanders preserve lexical scoping, and advanced Scheme macro systems handle other important properties such as source location. Using such macros, Scheme programmers now routinely develop the ultimate abstraction: embedded domain-specific programming languages.Unfortunately, a typical Scheme programming environment provides little support for macro development. This lack makes it difficult for programmers to debug their macros and for novices to study the behavior of macros. In response, we have developed a stepping debugger specialized to the concerns of macro expansion. This debugger presents the macro expansion process as a linear rewriting sequence of annotated terms; it graphically illustrates the binding structure of the program as expansion reveals it; and it adapts to the programmer’s level of abstraction, hiding details of syntactic forms that the programmer considers built-in.
Keywords :
Debugging , Scheme , Syntactic abstraction , Macros
Journal title :
Science of Computer Programming
Serial Year :
2010
Journal title :
Science of Computer Programming
Record number :
1080124
Link To Document :
بازگشت