健全なマクロ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/26 04:53 UTC 版)
健全なマクロ(英語: hygienic macros)とは、マクロ処理の過程の過程で見かけ上同じに見える識別子が発生(名前が衝突)しても、意図しない問題が起こらないことが保証されているマクロである。Scheme[1]、Dylan、Rust、Nim、Juliaなどのプログラミング言語がこの機能を持っている[2]。マクロ処理の過程で見かけ上同じに見える識別子が発生するという問題は、健全なマクロが導入される以前からLISPコミュニティで広く知られていた。マクロの作者は、プログラムコード中の他のどれとも異なるユニークな識別子を生成する gensym
などの組み込み関数を使ってプログラマーが明示的に回避したり、通常使用されないような長くて複雑な名前の識別子を用いることでこの問題の可能性を低減させてきた。健全なマクロはこの問題を解決する方法をマクロの展開機能に組み込むことで問題を根本的に解決している。「健全」を意味する「hygiene」という語は、コールベッカー[3]らが1986年に書いた健全なマクロの展開を導入した論文で、数学の用語の影響を受けて初めて使用された[4]。
- ^ Richard Kelsey; William Clinger; Jonathan Rees et al. (August 1998). “Revised5 Report on the Algorithmic Language Scheme”. Higher-Order and Symbolic Computation 11 (1): 7–105. doi:10.1023/A:1010051815785 .
- ^ Richard Kelsey; William Clinger; Jonathan Rees et al. (August 1998). “Revised5 Report on the Algorithmic Language Scheme”. Higher-Order and Symbolic Computation 11 (1): 7–105. doi:10.1023/A:1010051815785 .
- ^ 英語: Kohlbecker
- ^ Richard Kelsey; William Clinger; Jonathan Rees et al. (August 1998). “Revised5 Report on the Algorithmic Language Scheme”. Higher-Order and Symbolic Computation 11 (1): 7–105. doi:10.1023/A:1010051815785 .
- 1 健全なマクロとは
- 2 健全なマクロの概要
- 3 参考文献
- 健全なマクロのページへのリンク