000150347 001__ 150347
000150347 005__ 20190316234832.0
000150347 0247_ $$2doi$$a10.1145/1942788.1868314
000150347 02470 $$2ISI$$a000287306700015
000150347 037__ $$aCONF
000150347 245__ $$aLightweight Modular Staging: A Pragmatic Approach to Runtime Code Generation and Compiled DSLs
000150347 269__ $$a2010
000150347 260__ $$c2010
000150347 336__ $$aConference Papers
000150347 520__ $$aSoftware engineering demands generality and abstraction, performance demands specialization and concretization. Generative programming can provide both, but the effort required to develop high-quality program generators likely offsets their benefits, even if a multi-stage programming language is used. We present lightweight modular staging, a library-based multi-stage programming approach that breaks with the tradition of syntactic quasi-quotation and instead uses only types to distinguish between binding times. Through extensive use of component technology, lightweight modular staging makes an optimizing compiler framework available at the library level, allowing programmers to tightly integrate domain-specific abstractions and optimizations into the generation process. We argue that lightweight modular staging enables a form of language virtualization, i.e. allows to go from a pure-library embedded language to one that is practically equivalent to a stand-alone implementation with only modest effort.
000150347 6531_ $$aCode Generation
000150347 6531_ $$aMulti-stage programming
000150347 6531_ $$aDomain-specific languages
000150347 6531_ $$aLanguage Virtualization
000150347 700__ $$0243345$$aRompf, Tiark$$g185682
000150347 700__ $$0241835$$aOdersky, Martin$$g126003
000150347 7112_ $$aGPCE$$cEindhoven, The Netherlands$$dOctober 10-13, 2010
000150347 773__ $$j46$$q127-136$$tAcm Sigplan Notices
000150347 8564_ $$s355608$$uhttps://infoscience.epfl.ch/record/150347/files/gpce63-rompf.pdf$$yPostprint$$zn/a
000150347 909C0 $$0252187$$pLAMP$$xU10409
000150347 909CO $$ooai:infoscience.tind.io:150347$$pconf$$pIC$$qGLOBAL_SET
000150347 917Z8 $$x185682
000150347 937__ $$aEPFL-CONF-150347
000150347 973__ $$aEPFL$$rREVIEWED$$sPUBLISHED
000150347 980__ $$aCONF