Dissertation/Thesis Abstract

Refining syntactic sugar: Tools for supporting macro development
by Culpepper, Ryan, Ph.D., Northeastern University, 2010, 134; 3398747
Abstract (Summary)

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. The tools for understanding macro expansion are poor, which makes it difficult for experienced programmers to debug their macros and for novices to study the behavior of macros. At the same time, the language for specifying macros is limited in expressive power, and it fails to validate syntactic correctness of macro uses.

This dissertation presents tools for macro development that specifically address these two needs. The first is a stepping debugger specialized to the pragmatics of hygienic macros. The second is a system for writing macros and specifying syntax that automatically validates macro uses and reports syntax errors.

Supplemental Files

Some files may require a special program or browser plug-in. More Information

Indexing (document details)
Advisor: Felleisen, Matthias
Commitee: Flatt, Matthew, Shivers, Olin, Wand, Mitch
School: Northeastern University
Department: Computer and Information Science
School Location: United States -- Massachusetts
Source: DAI-B 71/05, Dissertation Abstracts International
Source Type: DISSERTATION
Subjects: Computer science
Keywords: Debugging, Macros, Schemes, Syntactic abstraction
Publication Number: 3398747
ISBN: 9781109724172
Copyright © 2019 ProQuest LLC. All rights reserved. Terms and Conditions Privacy Policy Cookie Policy
ProQuest