000175684 001__ 175684
000175684 005__ 20190617200654.0
000175684 020__ $$a978-1-4503-1118-2
000175684 0247_ $$2doi$$a10.1145/2103746.2103762
000175684 037__ $$aCONF
000175684 245__ $$aStagedSAC: a case study in performance-oriented DSL development
000175684 269__ $$a2011
000175684 260__ $$bACM$$c2011$$aNew York, NY, USA
000175684 336__ $$aConference Papers
000175684 520__ $$aDomain-specific languages (DSLs) can bridge the gap between high-level programming and efficient execution. However, implementing compiler tool-chains for performance oriented DSLs requires significant effort. Recent research has produced methodologies and frameworks that promise to reduce this development effort by enabling quick transition from library-only, purely embedded DSLs to optimizing compilation. In this case study we report on our experience implementing a compiler for StagedSAC. StagedSAC is a DSL for arithmetic processing with multidimensional arrays modeled after the stand-alone language SAC (Single Assignment C). The main language feature of both SAC and StagedSAC is a loop construction that enables high-level and concise implementations of array algorithms. At the same time, the functional semantics of the two languages allow for advanced compiler optimizations and parallel code generation. We describe how we were able to quickly evolve from a pure library DSL to a performance-oriented compiler with a good speedup and only minor syntax changes using the technique of Lightweight Modular Staging. We also describe the optimizations we perform to obtain fast code and how we plan to generate parallel code with minimal effort using the Delite framework.
000175684 6531_ $$aDSL, SAC, domain specific languages, optimization, single assignment c, staging
000175684 700__ $$0245399$$g200717$$aUreche, Vlad
000175684 700__ $$0243345$$g185682$$aRompf, Tiark
000175684 700__ $$aSujeeth, Arvind
000175684 700__ $$aChafi, Hassan
000175684 700__ $$g126003$$aOdersky, Martin$$0241835
000175684 773__ $$tPEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation$$q73-82
000175684 8564_ $$uhttp://dl.acm.org/citation.cfm?id=2103746.2103762$$zURL
000175684 8564_ $$uhttps://infoscience.epfl.ch/record/175684/files/pepm14-urechePS.pdf$$zPublisher's version$$s548784$$yPublisher's version
000175684 909C0 $$xU10409$$0252187$$pLAMP
000175684 909CO $$ooai:infoscience.tind.io:175684$$qGLOBAL_SET$$pconf$$pIC
000175684 917Z8 $$x200717
000175684 937__ $$aEPFL-CONF-175684
000175684 973__ $$rNON-REVIEWED$$sPUBLISHED$$aEPFL
000175684 980__ $$aCONF