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. Reports, Documentation, and Standards
  4. Scala AST Persistence
 
Loading...
Thumbnail Image
report

Scala AST Persistence

Demarne, Mathieu Baptiste  
•
Ghosn, Adrien  
•
Burmako, Eugene  
2014

The Scala compiler uses ASTs (abstract syntax trees) as an intermediate representation before generating bytecode. With the development of Scala macros which expand trees at compile time, being able to access, modify and recompose ASTs within the compilation scope is becoming more and more important. One of the common scenarios of using macros is inspecting abstract syntax trees within reach in order to learn more about the code being transformed, to apply more powerful optimizations, etc. However, arguments to macros can depend on third-party libraries, which are precompiled as bytecode and don't have their ASTs available. It would therefore be great to have a way to publish ASTs along with the bytecode. The publishing of those ASTs should be a choice of the programmer and should take as little space as possible in order to be transparent to the user.

  • Files
  • Details
  • Metrics
Type
report
Author(s)
Demarne, Mathieu Baptiste  
•
Ghosn, Adrien  
•
Burmako, Eugene  
Date Issued

2014

Total of pages

20

Subjects

Scala

•

tree compression

•

compile time reflection

URL

URL

https://github.com/scalareflect/persistence
Written at

EPFL

EPFL units
LAMP  
Available on Infoscience
June 28, 2014
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/104809
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