000212447 001__ 212447
000212447 005__ 20181203024019.0
000212447 0247_ $$2doi$$a10.1145/2658761.2658771
000212447 022__ $$a0362-1340
000212447 02470 $$2ISI$$a000357124200010
000212447 037__ $$aARTICLE
000212447 245__ $$aYin-Yang: Concealing the Deep Embedding of DSLs
000212447 260__ $$aNew York$$bAssoc Computing Machinery$$c2015
000212447 269__ $$a2015
000212447 300__ $$a10
000212447 336__ $$aJournal Articles
000212447 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.
000212447 6531_ $$aLanguages
000212447 6531_ $$aDesign
000212447 6531_ $$aEmbedded Domain-Specific Languages
000212447 6531_ $$aDeep Embedding
000212447 6531_ $$aShallow Embedding
000212447 6531_ $$aReflection
000212447 6531_ $$aMacros
000212447 700__ $$0243781$$aJovanovic, Vojin$$g202774$$uEPFL, Zurich, Switzerland
000212447 700__ $$0247633$$aShaikhha, Amir$$g211771$$uEPFL, Zurich, Switzerland
000212447 700__ $$0246677$$aStucki, Sandro$$g152185$$uEPFL, Zurich, Switzerland
000212447 700__ $$aNikolaev, Vladimir
000212447 700__ $$0244689$$aKoch, Christoph$$g205917$$uEPFL, Zurich, Switzerland
000212447 700__ $$0241835$$aOdersky, Martin$$g126003$$uEPFL, Zurich, Switzerland
000212447 773__ $$j50$$k3$$q73-82$$tAcm Sigplan Notices
000212447 909C0 $$0252187$$pLAMP$$xU10409
000212447 909C0 $$0252342$$pDATA$$xU12327
000212447 909CO $$ooai:infoscience.tind.io:212447$$pIC$$particle
000212447 917Z8 $$x166927
000212447 937__ $$aEPFL-ARTICLE-212447
000212447 973__ $$aEPFL$$rREVIEWED$$sPUBLISHED
000212447 980__ $$aARTICLE