Composable and compilable macros -: You want it when?

被引:39
|
作者
Flatt, M [1 ]
机构
[1] Univ Utah, Salt Lake City, UT 84112 USA
关键词
languages; design; macros; modules; language tower;
D O I
10.1145/583852.581486
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Many macro systems, especially for Lisp and Scheme, allow macro transformers to perform general computation. Moreover, the language for implementing compile-time macro transformers is usually the same as the language for implementing run-time functions. As a side effect of this sharing, implementations tend to allow the mingling of compile-time values and rum-time values, as well as values from separate compilations. Such mingling breaks programming tools that must parse code without executing it. Macro implementors avoid harmful mingling by obeying certain macro-definition protocols and by inserting phase-distinguishing annotations into the code. However, the annotations are fragile, the protocols are not enforced, and programmers can only reason about the result in terms of the compiler's implementation. MzScheme-the language of the PLT Scheme tool suite-addresses the problem through a macro system that separates compilation without sacrificing the expressiveness of macros.
引用
收藏
页码:72 / 83
页数:12
相关论文
共 50 条
  • [21] When you want to feel good ...
    Jerger, James
    JOURNAL OF THE AMERICAN ACADEMY OF AUDIOLOGY, 2006, 17 (02)
  • [22] Data delivery when you want it
    Hackathorn, R
    BYTE, 1997, 22 (06): : 51 - 52
  • [23] You realise you are better when you want to live, want to go out, want to see people: Recovery as assemblage
    Beate Larsen, Inger
    Georg Friesinger, Jan
    Stromland, Monica
    Topor, Alain
    INTERNATIONAL JOURNAL OF SOCIAL PSYCHIATRY, 2022, 68 (05) : 1108 - 1115
  • [24] How Do You Get Where You Want to Be When You Don't Know Where You Want to Be?
    Johns, Jennifer
    PSYCHOANALYTIC INQUIRY, 2009, 29 (03) : 223 - 235
  • [25] What do you want to be when you grow up?
    Noga, SJ
    CYTOTHERAPY, 2001, 3 (06) : 427 - 428
  • [26] You Can't Always Trend When You Want
    Babu, Abhilash
    Hoffman, Brendan
    Levine, Ari
    Ooi, Yao Hua
    Schroeder, Sarah
    Stamelos, Erik
    JOURNAL OF PORTFOLIO MANAGEMENT, 2020, 46 (04): : 52 - 68
  • [27] What do you want to be when you grow up?
    Morris, Neil
    Engineering Management Journal, 2002, 12 (05): : 202 - 203
  • [28] The brain cells that let you pee when you want
    Coghlan, Andy
    NEW SCIENTIST, 2018, 239 (3191) : 7 - 7
  • [29] WHAT DO YOU WANT TO BE WHEN YOU GROW UP
    PAPPER, S
    JOURNAL OF THE OKLAHOMA STATE MEDICAL ASSOCIATION, 1974, 67 (10): : 434 - 440
  • [30] Finding and Getting What You Want When You Want It Just Got Easier at Anesthesiology
    Tedeschi, Vicki
    Rathmell, James P.
    Eisenach, James C.
    ANESTHESIOLOGY, 2015, 122 (03) : 491 - 494