Macros

ユースケース

Language

EXPERIMENTAL

Eugene Burmako 著
Eugene Yokota 訳

Scala 2.10 の実験的機能としてリリースされて以来、マクロは以前なら不可能もしくは法外に複雑だった多くのことを実現可能な領域に持ち込むことに成功した。 Scala の商用ユーザと研究ユーザの両方がマクロを利用して様々なアイディアを形にしている。 ここ EPFL においても我々はマクロを活用して研究を行っている。Lightbend 社もマクロを数々のプロジェクトに採用している。 マクロはコミュニティー内でも人気があり、既にいくつかの興味深い応用が現れている。

最近行われた講演の “What Are Macros Good For?” では Scala 2.10 ユーザのマクロの利用方法を説明し、システム化した。講演の大筋はマクロはコード生成、静的な検査、および DSL に有効であるということで、これを研究や産業からの例を交えながら説明した。

Scala’13 ワークショップにおいて “Scala Macros: Let Our Powers Combine!” という論文を発表した。これは Scala 2.10 における最先端のマクロ論をより学問的な視点から説明した。 この論文では Scala のリッチな構文と静的な型がマクロと相乗することを示し、また既存の言語機能をマクロによって新しい方法で活用できることを考察する。