000200050 001__ 200050
000200050 005__ 20190320015441.0
000200050 037__ $$aREP_WORK
000200050 245__ $$aScala AST Persistence
000200050 269__ $$a2014
000200050 260__ $$c2014
000200050 300__ $$a20
000200050 336__ $$aReports
000200050 520__ $$aThe 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.
000200050 6531_ $$aScala
000200050 6531_ $$atree compression
000200050 6531_ $$acompile time reflection
000200050 700__ $$0(EPFLAUTH)204143$$aDemarne, Mathieu Baptiste$$g204143
000200050 700__ $$0250313$$aGhosn, Adrien$$g202189
000200050 700__ $$0246182$$aBurmako, Eugene$$g214505
000200050 8564_ $$uhttps://github.com/scalareflect/persistence$$zURL
000200050 8564_ $$s1311598$$uhttps://infoscience.epfl.ch/record/200050/files/ScalaAstPersistence.pdf$$yn/a$$zn/a
000200050 909C0 $$0252187$$pLAMP$$xU10409
000200050 909CO $$ooai:infoscience.tind.io:200050$$pIC$$pGLOBAL_SET$$preport
000200050 917Z8 $$x214505
000200050 937__ $$aEPFL-REPORT-200050
000200050 973__ $$aEPFL
000200050 980__ $$aREPORT