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.
CITATION STYLE
Culpepper, R. (2012). Fortifying macros. In Journal of Functional Programming (Vol. 22, pp. 439–476). https://doi.org/10.1017/S0956796812000275
Mendeley helps you to discover research relevant for your work.