000200500 001__ 200500
000200500 005__ 20180913062601.0
000200500 037__ $$aREP_WORK
000200500 245__ $$aYin-Yang: Concealing the Deep Embedding of DSLs
000200500 269__ $$a2014
000200500 260__ $$c2014
000200500 336__ $$aReports
000200500 520__ $$aDeeply embedded domain-specific languages (EDSLs) intrinsically compromise programmer experience for improved program performance. Shallow EDSLs complement them by trading program performance for good programmer experience. We present Yin-Yang, a framework for DSL embedding that uses Scala macros to reliably translate shallow EDSL programs to the corresponding deep EDSL programs. The translation allows program prototyping and development in the user friendly shallow embedding, while the corresponding deep embedding is used where performance is important. The reliability of the translation completely conceals the deep embedding from the user. For the DSL author, Yin-Yang automatically generates the deep DSL embeddings from their shallow counterparts by reusing the core translation. This obviates the need for code duplication and leads to reliability by construction.
000200500 6531_ $$aEmbedded Domain-Specific Languages
000200500 6531_ $$aDeep Embedding
000200500 6531_ $$aShallow Embedding
000200500 6531_ $$aReflection
000200500 6531_ $$aMacros
000200500 700__ $$0243781$$g202774$$aJovanovic, Vojin
000200500 700__ $$0247633$$g211771$$aShaikhha, Amir
000200500 700__ $$0246677$$g152185$$aStucki, Sandro
000200500 700__ $$aNIkolaev, Vladimir
000200500 700__ $$aKoch, Christoph$$0244689$$g205917
000200500 700__ $$aOdersky, Martin$$g126003$$0241835
000200500 909C0 $$xU10409$$0252187$$pLAMP
000200500 909CO $$pIC$$preport$$ooai:infoscience.tind.io:200500
000200500 917Z8 $$x202774
000200500 917Z8 $$x202774
000200500 937__ $$aEPFL-REPORT-200500
000200500 973__ $$aEPFL
000200500 980__ $$aREPORT