## Syntactic Abstraction in Component Interfaces

Culpepper, Owens, Flatt. Syntactic Abstraction in Component Interfaces. GPCE 2005.

In this paper, we show how to combine a component system and a macro system. A component system separates the definition of a program fragment from the statements that link it, enabling indepenÂ­dent compilation of the fragment. A macro system, in contrast, relies on explicit links among fragments that import macros, since macro exÂ­pansion must happen at compile time. Our combination places macro definitions inside component signatures, thereby permitting macro exÂ­pansion at compile time, while still allowing independent compilation and linking for the run-Â­time part of components.