• 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