000203432 001__ 203432
000203432 005__ 20190317000042.0
000203432 0247_ $$2doi$$a10.1145/2658761.2658771
000203432 037__ $$aCONF
000203432 245__ $$aYin-yang: concealing the deep embedding of DSLs
000203432 269__ $$a2014
000203432 260__ $$aNew York, New York, USA$$bACM Press$$c2014
000203432 336__ $$aConference Papers
000203432 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 em- bedding 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.
000203432 700__ $$0243781$$aJovanovic, Vojin$$g202774
000203432 700__ $$0247633$$aShaikhha, Amir$$g211771
000203432 700__ $$0246677$$aStucki, Sandro$$g152185
000203432 700__ $$aNikolaev, Vladimir
000203432 700__ $$0244689$$aKoch, Christoph$$g205917
000203432 700__ $$0241835$$aOdersky, Martin$$g126003
000203432 7112_ $$aInternational Conference on Generative Programming: Concepts and Experiences - GPCE 2014$$cVästerås, Sweden$$d15-16 09 2014
000203432 773__ $$q73-82$$tProceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences - GPCE 2014
000203432 8564_ $$s397933$$uhttps://infoscience.epfl.ch/record/203432/files/p73-jovanovic.pdf$$yn/a$$zn/a
000203432 909C0 $$0252187$$pLAMP$$xU10409
000203432 909C0 $$0252342$$pDATA$$xU12327
000203432 909CO $$ooai:infoscience.tind.io:203432$$pconf$$pIC$$qGLOBAL_SET
000203432 917Z8 $$x202774
000203432 917Z8 $$x202774
000203432 937__ $$aEPFL-CONF-203432
000203432 973__ $$aEPFL$$rREVIEWED$$sPUBLISHED
000203432 980__ $$aCONF