Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Conferences, Workshops, Symposiums, and Seminars
  4. Scala Macros: Let Our Powers Combine!
 
conference paper

Scala Macros: Let Our Powers Combine!

Burmako, Eugene  
2013
SCALA '13 Proceedings of the 4th Workshop on Scala
4th Annual Workshop Scala 2013

Compile-time metaprogramming has been proven immensely useful enabling programming techniques such as language virtualization, embedding of external DSLs, self-optimization, and boilerplate generation amongst many others. In the recent production release of Scala 2.10 we have introduced macros, an experimental facility which gives its users compile-time metaprogramming powers. Alongside of the mainline release of Scala Macros, we have also introduced other macro flavors, which provide their users with different interfaces and capabilities for interacting with the Scala compiler. In this paper, we show how the rich syntax and static types of Scala synergize with macros, through a number of real case studies using our macros (some of which are production systems) such as language virtualization, type providers, materialization of type class instances, type-level programming, and embedding of external DSLs. We explore how macros enable new and unique ways to use pre-existing language features such as implicits, dynamics, annotations, string interpolation and others, showing along the way how these synergies open up new ways of dealing with software development challenges.

  • Files
  • Details
  • Metrics
Type
conference paper
DOI
10.1145/2489837.2489840
Author(s)
Burmako, Eugene  
Date Issued

2013

Published in
SCALA '13 Proceedings of the 4th Workshop on Scala
ISBN of the book

978-1-4503-2064-1/13/07

Start page

3

Subjects

Compile-time Metaprogramming

•

Macros

Editorial or Peer reviewed

REVIEWED

Written at

EPFL

EPFL units
LAMP1  
Event nameEvent placeEvent date
4th Annual Workshop Scala 2013

Montpellier, France

July 2, 2013

Available on Infoscience
June 5, 2013
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/92570
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés