Burmako, EugeneOdersky, Martin2013-02-182013-02-182013-02-182012https://infoscience.epfl.ch/handle/20.500.14299/88930Metaprogramming is a powerful technique of software development, which allows to automate program generation. Applications of metaprogramming range from improving expressiveness of a programming language via deep embedding of domain-specific languages to boosting performance of produced code by providing programmer with finegrained control over compilation. In this report we introduce macros, facility that enables compile-time metaprogramming in the Scala programming language.Compile-time MetaprogrammingMacrosMulti-stage ProgrammingLanguage VirtualizationScala Macros, a Technical Reporttext::conference output::conference paper not in proceedings