Existing macro systems force programmers to make a choice between clarity of specification and robustness. If they choose clarity, they must forgo validating significant parts of the specification and thus produce low-quality language extensions. If they choose robustness, they must write in a style that mingles the implementation with the specification and therefore obscures the latter. This paper introduces a new language for writing macros. With the new macro system, programmers naturally write robust language extensions using easy-to-understand specifications. The system translates these specifications into validators that detect misuses - including violations of context-sensitive constraints - and automatically synthesize appropriate feedback, eliminating the need for ad hoc validation code. © Copyright Cambridge University Press 2012.
Mendeley helps you to discover research relevant for your work.
CITATION STYLE
Culpepper, R. (2012). Fortifying macros. In Journal of Functional Programming (Vol. 22, pp. 439–476). https://doi.org/10.1017/S0956796812000275