<bibliography>
 <citation type="misc" key="hpf">
  <title>High Performance Fortran</title>
  <howpublished>http://hpff.rice.edu/index.htm</howpublished>
 </citation>
 <citation type="inproceedings" key="bagge03design">
  <author>O.S. Bagge</author>
  <author>K.T. Kalleberg</author>
  <author>M. Haveraaen</author>
  <author>E. Visser</author>
  <year>2003</year>
  <title>Design of the CodeBoost transformation system for domain-specific optimisation of C++ programs</title>
  <booktitle>Source Code Analysis and Manipulation, 2003</booktitle>
  <pages>65&#8211;74</pages>
  <doi>10.1109/SCAM.2003.1238032</doi>
 </citation>
 <citation type="incollection" key="beckmann04">
  <author>Olav Beckmann</author>
  <author>Alastair Houghton</author>
  <author>Michael Mellor</author>
  <author>Paul H.J. Kelly</author>
  <year>2004</year>
  <title>Runtime Code Generation in C++ as a Foundation for Domain-Specific Optimisation</title>
  <booktitle>Domain-Specific Program Generation</booktitle>
  <series>LNCS</series>
  <volume>3016</volume>
  <publisher>Springer Berlin / Heidelberg</publisher>
  <pages>77&#8211;210</pages>
  <doi>10.1007/978-3-540-25935-0_17</doi>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/sc/BelterJKS09">
  <author>Geoffrey Belter</author>
  <author>Elizabeth R. Jessup</author>
  <author>Ian Karlin</author>
  <author>Jeremy G. Siek</author>
  <year>2009</year>
  <title>Automating the generation of composed linear algebra kernels</title>
  <booktitle>SC '09</booktitle>
  <doi>10.1145/1654059.1654119</doi>
 </citation>
 <citation type="article" key="nesl">
  <author>Guy E. Blelloch</author>
  <year>1996</year>
  <title>Programming parallel algorithms</title>
  <journal>Commun. ACM</journal>
  <volume>39</volume>
  <number>3</number>
  <pages>85&#8211;97</pages>
  <doi>10.1145/227234.227246</doi>
 </citation>
 <citation type="misc" key="bigg">
  <author>G. Bradski</author>
  <author>M. Muja</author>
  <year>2010</year>
  <title>BiGG Detector</title>
  <howpublished>http://www.ros.org/wiki/bigg_detector</howpublished>
 </citation>
 <citation type="article" key="DBLP:journals/sp/BudimlicBCKLNPPSST10">
  <author>Zoran Budimlic</author>
  <author>Michael Burke</author>
  <author>Vincent Cav&#233;</author>
  <author>Kathleen Knobe</author>
  <author>Geoff Lowney</author>
  <author>Ryan Newton</author>
  <author>Jens Palsberg</author>
  <author>David M. Peixotto</author>
  <author>Vivek Sarkar</author>
  <author>Frank Schlimbach</author>
  <author>Sagnak Tasirlar</author>
  <year>2010</year>
  <title>Concurrent Collections</title>
  <journal>Scientific Programming</journal>
  <volume>18</volume>
  <number>3-4</number>
  <pages>203&#8211;217</pages>
  <doi>10.3233/SPR-2011-0305</doi>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/gpce/CalcagnoTHL03">
  <author>Cristiano Calcagno</author>
  <author>Walid Taha</author>
  <author>Liwen Huang</author>
  <author>Xavier Leroy</author>
  <year>2003</year>
  <title>Implementing Multi-stage Languages Using ASTs, Gensym, and Reflection</title>
  <booktitle>GPCE'03</booktitle>
  <pages>57&#8211;76</pages>
 </citation>
 <citation type="article" key="DBLP:conf/aplas/CaretteKS07">
  <author>Jacques Carette</author>
  <author>Oleg Kiselyov</author>
  <author>Chung chieh Shan</author>
  <year>2009</year>
  <title>Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages</title>
  <journal>J. Funct. Program.</journal>
  <volume>19</volume>
  <pages>509&#8211;543</pages>
  <doi>10.1017/S0956796809007205</doi>
 </citation>
 <citation type="inproceedings" key="catanzaro11copperhead">
  <author>Bryan Catanzaro</author>
  <author>Michael Garland</author>
  <author>Kurt Keutzer</author>
  <year>2011</year>
  <title>Copperhead: compiling an embedded data parallel language</title>
  <booktitle>PPoPP'11</booktitle>
  <publisher>ACM</publisher>
  <address>New York, NY, USA</address>
  <pages>47&#8211;56</pages>
  <doi>10.1145/1941553.1941562</doi>
 </citation>
 <citation type="inproceedings" key="hassan10virtualization">
  <author>H. Chafi</author>
  <author>Z. DeVito</author>
  <author>A. Moors</author>
  <author>T. Rompf</author>
  <author>A. K. Sujeeth</author>
  <author>P. Hanrahan</author>
  <author>M. Odersky</author>
  <author>K. Olukotun</author>
  <year>2010</year>
  <title>Language Virtualization for Heterogeneous Parallel Computing</title>
  <booktitle>Onward!'10</booktitle>
  <doi>10.1145/1869459.1869527</doi>
 </citation>
 <citation type="inproceedings" key="ppopp11delite">
  <author>H. Chafi</author>
  <author>A. K. Sujeeth</author>
  <author>K. J. Brown</author>
  <author>H. Lee</author>
  <author>A. R. Atreya</author>
  <author>K. Olukotun</author>
  <year>2011</year>
  <title>A domain-specific approach to heterogeneous parallelism</title>
  <booktitle>PPoPP'11</booktitle>
  <doi>10.1145/1941553.1941561</doi>
 </citation>
 <citation type="article" key="chapel">
  <author>B.L. Chamberlain</author>
  <author>D. Callahan</author>
  <author>H.P. Zima</author>
  <year>2007</year>
  <title>Parallel Programmability and the Chapel Language</title>
  <journal>Int. J. High Perform. Comput. Appl.</journal>
  <volume>21</volume>
  <number>3</number>
  <pages>291&#8211;312</pages>
  <doi>10.1177/1094342007078442</doi>
 </citation>
 <citation type="inproceedings" key="chambers10flumejava">
  <author>Craig Chambers</author>
  <author>Ashish Raniwala</author>
  <author>Frances Perry</author>
  <author>Stephen Adams</author>
  <author>Robert R. Henry</author>
  <author>Robert Bradshaw</author>
  <author>Nathan Weizenbaum</author>
  <year>2010</year>
  <title>FlumeJava: easy, efficient data-parallel pipelines</title>
  <booktitle>PLDI '10</booktitle>
  <publisher>ACM</publisher>
  <address>New York, NY, USA</address>
  <pages>363&#8211;375</pages>
  <doi>10.1145/1806596.1806638</doi>
 </citation>
 <citation type="article" key="x10">
  <author>Philippe Charles</author>
  <author>Christian Grothoff</author>
  <author>Vijay Saraswat</author>
  <author>Christopher Donawa</author>
  <author>Allan Kielstra</author>
  <author>Kemal Ebcioglu</author>
  <author>Christoph von Praun</author>
  <author>Vivek Sarkar</author>
  <year>2005</year>
  <title>X10: an object-oriented approach to non-uniform cluster computing</title>
  <journal>SIGPLAN Not.</journal>
  <volume>40</volume>
  <number>10</number>
  <pages>519&#8211;538</pages>
  <doi>10.1145/1103845.1094852</doi>
 </citation>
 <citation type="misc" key="cliffinlining">
  <author>Cliff Click</author>
  <year>2011</year>
  <title>Fixing the Inlining Problem</title>
  <howpublished>http://www.azulsystems.com/blog/cliff/2011-04-04-fixing-the-inlining-problem</howpublished>
 </citation>
 <citation type="article" key="cooley1965algorithm">
  <author>J.W. Cooley</author>
  <author>J.W. Tukey</author>
  <year>1965</year>
  <title>An algorithm for the machine calculation of complex Fourier series</title>
  <journal>Mathematics of computation</journal>
  <volume>19</volume>
  <number>90</number>
  <pages>297&#8211;301</pages>
  <doi>10.1090/S0025-5718-1965-0178586-1</doi>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/icfp/CouttsLS07">
  <author>Duncan Coutts</author>
  <author>Roman Leshchinskiy</author>
  <author>Don Stewart</author>
  <year>2007</year>
  <title>Stream fusion: from lists to streams to nothing at all</title>
  <booktitle>ICFP</booktitle>
  <pages>315&#8211;326</pages>
  <doi>10.1145/1291151.1291199</doi>
 </citation>
 <citation type="inproceedings" key="Danvy90abstractingcontrol">
  <author>Olivier Danvy</author>
  <author>Andrzej Filinski</author>
  <year>1990</year>
  <title>Abstracting control</title>
  <booktitle>Proc. LFP'90</booktitle>
  <pages>151&#8211;160</pages>
  <doi>10.1145/91556.91622</doi>
 </citation>
 <citation type="article" key="danvy1992rcs">
  <author>Olivier Danvy</author>
  <author>Andrzej Filinski</author>
  <year>1992</year>
  <title>Representing Control: A Study of the CPS Transformation</title>
  <journal>Mathematical Structures in Computer Science</journal>
  <volume>2</volume>
  <number>4</number>
  <pages>361&#8211;391</pages>
  <doi>10.1017/S0960129500001535</doi>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/osdi/DeanG04">
  <author>Jeffrey Dean</author>
  <author>Sanjay Ghemawat</author>
  <year>2004</year>
  <title>MapReduce: Simplified Data Processing on Large Clusters</title>
  <booktitle>OSDI'04</booktitle>
  <pages>137&#8211;150</pages>
 </citation>
 <citation type="article" key="DBLP:journals/corr/abs-1007-4268">
  <author>Christopher Earl</author>
  <author>Matthew Might</author>
  <author>David Van Horn</author>
  <year>2010</year>
  <title>Pushdown Control-Flow Analysis of Higher-Order Programs</title>
  <journal>CoRR</journal>
  <volume>abs/1007.4268</volume>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/pldi/Frigo99">
  <author>Matteo Frigo</author>
  <year>1999</year>
  <title>A Fast Fourier Transform Compiler</title>
  <booktitle>PLDI</booktitle>
  <pages>169&#8211;180</pages>
  <doi>10.1145/301631.301661</doi>
 </citation>
 <citation type="inproceedings" key="guyver99annotation">
  <author>Samuel Z. Guyer</author>
  <author>Calvin Lin</author>
  <year>1999</year>
  <title>An annotation language for optimizing software libraries</title>
  <booktitle>PLAN'99: 2nd conference on Domain-specific languages</booktitle>
  <publisher>ACM</publisher>
  <address>New York, NY, USA</address>
  <pages>39&#8211;52</pages>
  <doi>10.1145/331960.331970</doi>
 </citation>
 <citation type="inproceedings" key="hoffer08polymorphic">
  <author>C. Hofer</author>
  <author>K. Ostermann</author>
  <author>T. Rendel</author>
  <author>A. Moors</author>
  <year>2008</year>
  <title>Polymorphic embedding of DSLs</title>
  <booktitle>GPCE'08</booktitle>
  <doi>10.1145/1449913.1449935</doi>
 </citation>
 <citation type="article" key="hudak96building">
  <author>P. Hudak</author>
  <year>1996</year>
  <title>Building domain-specific embedded languages</title>
  <journal>ACM Computing Surveys</journal>
  <volume>28</volume>
  <doi>10.1145/242224.242477</doi>
 </citation>
 <citation type="book" key="jones1993partial">
  <author>N.D. Jones</author>
  <author>C.K. Gomard</author>
  <author>P. Sestoft</author>
  <year>1993</year>
  <title>Partial evaluation and automatic program generation</title>
  <publisher>Prentice-Hall</publisher>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/fsttcs/JonesLKC08">
  <author>Simon Peyton Jones</author>
  <author>R. Leshchinskiy</author>
  <author>G. Keller</author>
  <author>M. M. T. Chakravarty</author>
  <year>2008</year>
  <title>Harnessing the Multicores: Nested Data Parallelism in Haskell</title>
  <booktitle>FSTTCS'08</booktitle>
  <pages>383&#8211;414</pages>
  <doi>10.4230/LIPIcs.FSTTCS.2008.1769</doi>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/IEEEpact/Steele05">
  <author>Guy L. Steele Jr.</author>
  <year>2005</year>
  <title>Parallel Programming and Parallel Abstractions in Fortress</title>
  <booktitle>IEEE PACT'05</booktitle>
  <pages>157</pages>
  <doi>10.1109/PACT.2005.34</doi>
 </citation>
 <citation type="article" key="kennedy05telescoping">
  <author>Ken Kennedy</author>
  <author>Bradley Broom</author>
  <author>Arun Chauhan</author>
  <author>Rob Fowler</author>
  <author>John Garvin</author>
  <author>Charles Koelbel</author>
  <author>Cheryl McCosh</author>
  <author>John Mellor-Crummey</author>
  <year>2005</year>
  <title>Telescoping Languages: A System for Automatic Generation of Domain Languages</title>
  <journal>Proceedings of the IEEE</journal>
  <volume>93</volume>
  <number>3</number>
  <pages>387408</pages>
  <doi>10.1109/JPROC.2004.840447</doi>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/emsoft/KiselyovST04">
  <author>Oleg Kiselyov</author>
  <author>Kedar N. Swadi</author>
  <author>Walid Taha</author>
  <year>2004</year>
  <title>A methodology for generating verified combinatorial circuits</title>
  <booktitle>EMSOFT</booktitle>
  <pages>249&#8211;258</pages>
  <doi>10.1145/1017753.1017794</doi>
 </citation>
 <citation type="inproceedings" key="McCarthy63abasis">
  <author>John McCarthy</author>
  <year>1963</year>
  <title>A Basis For A Mathematical Theory Of Computation</title>
  <booktitle>Computer Programming and Formal Systems</booktitle>
  <publisher>North-Holland</publisher>
  <pages>33&#8211;70</pages>
  <doi>10.1016/S0049-237X(08)72018-4</doi>
 </citation>
 <citation type="inproceedings" key="intelArBB">
  <author>Chris J. Newburn</author>
  <author>Byoungro So</author>
  <author>Zhenying Liu</author>
  <author>Michael D. McCool</author>
  <author>Anwar M. Ghuloum</author>
  <author>Stefanus Du Toit</author>
  <author>Zhi-Gang Wang</author>
  <author>Zhaohui Du</author>
  <author>Yongjian Chen</author>
  <author>Gansha Wu</author>
  <author>Peng Guo</author>
  <author>Zhanglin Liu</author>
  <author>Dan Zhang</author>
  <year>2011</year>
  <title>Intel's Array Building Blocks: A retargetable, dynamic compiler and embedded language</title>
  <booktitle>CGO '11</booktitle>
  <pages>224&#8211;235</pages>
  <doi>10.1109/CGO.2011.5764690</doi>
 </citation>
 <citation type="misc" key="scala">
  <author>M. Odersky</author>
  <year>2011</year>
  <title>Scala</title>
  <howpublished>http://www.scala-lang.org</howpublished>
 </citation>
 <citation type="article" key="DBLP:journals/ijhpca/PuschelMSXJPVJ04">
  <author>Markus P&#252;schel</author>
  <author>Jos&#233; M. F. Moura</author>
  <author>Bryan Singer</author>
  <author>Jianxin Xiong</author>
  <author>Jeremy Johnson</author>
  <author>David A. Padua</author>
  <author>Manuela M. Veloso</author>
  <author>Robert W. Johnson</author>
  <year>2004</year>
  <title>Spiral: A Generator for Platform-Adapted Libraries of Signal Processing Alogorithms</title>
  <journal>IJHPCA</journal>
  <volume>18</volume>
  <number>1</number>
  <pages>21&#8211;45</pages>
  <doi>10.1177/1094342004041291</doi>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/icfp/RompfMO09">
  <author>Tiark Rompf</author>
  <author>Ingo Maier</author>
  <author>Martin Odersky</author>
  <year>2009</year>
  <title>Implementing first-class polymorphic delimited continuations by a type-directed selective CPS-transform</title>
  <booktitle>ICFP</booktitle>
  <pages>317&#8211;328</pages>
  <doi>10.1145/1596550.1596596</doi>
 </citation>
 <citation type="inproceedings" key="rompf10lms">
  <author>Tiark Rompf</author>
  <author>Martin Odersky</author>
  <year>2010</year>
  <title>Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs</title>
  <booktitle>GPCE'10</booktitle>
  <doi>10.1145/1868294.1868314</doi>
 </citation>
 <citation type="article" key="sheardTemplateHaskell">
  <author>T. Sheard</author>
  <author>S.P. Jones</author>
  <year>2002</year>
  <title>Template meta-programming for Haskell</title>
  <journal>ACM SIGPLAN Notices</journal>
  <volume>37</volume>
  <number>12</number>
  <pages>60&#8211;75</pages>
  <doi>10.1145/636517.636528</doi>
 </citation>
 <citation type="book" key="sinnen2007task">
  <author>O. Sinnen</author>
  <year>2007</year>
  <title>Task scheduling for parallel systems</title>
  <series>Wiley series on parallel and distributed computing</series>
  <publisher>Wiley-Interscience</publisher>
  <doi>10.1002/0470121173</doi>
 </citation>
 <citation type="inproceedings" key="icml11optiml">
  <author>A. K. Sujeeth</author>
  <author>H. Lee</author>
  <author>K. J. Brown</author>
  <author>T. Rompf</author>
  <author>Michael Wu</author>
  <author>A. R. Atreya</author>
  <author>M. Odersky</author>
  <author>K. Olukotun</author>
  <year>2011</year>
  <title>OptiML: an Implicitly Parallel Domain-Specific Language for Machine Learning</title>
  <booktitle>ICML'11</booktitle>
 </citation>
 <citation type="techreport" key="Walid:1999:MPT">
  <author>Walid Taha</author>
  <year>1999</year>
  <title>Multi-Stage Programming: Its Theory and Applications</title>
  <type>Technical Report</type>
  <institution>Oregon Graduate Institute School of Science &#38; Engineering</institution>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/pepm/Taha00">
  <author>Walid Taha</author>
  <year>2000</year>
  <title>A Sound Reduction Semantics for Untyped CBN Multi-stage Computation. Or, the Theory of MetaML is Non-trivial (Extended Abstract)</title>
  <booktitle>PEPM</booktitle>
  <pages>34&#8211;43</pages>
  <doi>10.1145/328690.328697</doi>
 </citation>
 <citation type="article" key="DBLP:journals/tcs/TahaS00">
  <author>Walid Taha</author>
  <author>Tim Sheard</author>
  <year>2000</year>
  <title>MetaML and multi-stage programming with explicit annotations</title>
  <journal>Theor. Comput. Sci.</journal>
  <volume>248</volume>
  <number>1-2</number>
  <pages>211&#8211;242</pages>
  <doi>10.1016/S0304-3975(00)00053-0</doi>
 </citation>
 <citation type="misc" key="opencl">
  <author>The Khronos Group</author>
  <title>OpenCL 1.0</title>
  <howpublished>http://www.khronos.org/opencl/</howpublished>
 </citation>
 <citation type="book" key="vandevoorde2003">
  <author>D. Vandevoorde</author>
  <author>N.M. Josuttis</author>
  <year>2003</year>
  <title>C++ templates: the Complete Guide</title>
  <publisher>Addison-Wesley Professional</publisher>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/esop/VardoulakisS10">
  <author>Dimitrios Vardoulakis</author>
  <author>Olin Shivers</author>
  <year>2010</year>
  <title>CFA2: A Context-Free Approach to Control-Flow Analysis</title>
  <booktitle>ESOP '10</booktitle>
  <pages>570&#8211;589</pages>
  <doi>10.1007/978-3-642-11957-6_30</doi>
 </citation>
 <citation type="misc" key="veldhuizen1996expression">
  <author>Todd L. Veldhuizen</author>
  <year>1996</year>
  <title>Expression templates, C++ gems</title>
  <howpublished>SIGS Publications, Inc., New York, NY</howpublished>
 </citation>
 <citation type="inproceedings" key="DBLP:conf/iscope/Veldhuizen98">
  <author>Todd L. Veldhuizen</author>
  <year>1998</year>
  <title>Arrays in Blitz++</title>
  <booktitle>ISCOPE</booktitle>
  <pages>223&#8211;230</pages>
  <doi>10.1007/3-540-49372-7_24</doi>
 </citation>
 <citation type="phdthesis" key="phd/Veldhuizen04">
  <author>Todd L. Veldhuizen</author>
  <year>2004</year>
  <title>Active Libraries and Universal Languages</title>
  <school>Indiana University Computer Science</school>
  <note>http://osl.iu.edu/ tveldhui/papers/2004/dissertation.pdf</note>
 </citation>
 <citation type="article" key="DBLP:journals/tcs/Wadler90">
  <author>Philip Wadler</author>
  <year>1990</year>
  <title>Deforestation: Transforming Programs to Eliminate Trees</title>
  <journal>Theor. Comput. Sci.</journal>
  <volume>73</volume>
  <number>2</number>
  <pages>231&#8211;248</pages>
  <doi>10.1016/0304-3975(90)90147-A</doi>
 </citation>
 <citation type="article" key="DBLP:journals/pc/WhaleyPD01">
  <author>R. Clinton Whaley</author>
  <author>Antoine Petitet</author>
  <author>Jack Dongarra</author>
  <year>2001</year>
  <title>Automated empirical optimizations of software and the ATLAS project</title>
  <journal>Parallel Computing</journal>
  <volume>27</volume>
  <number>1-2</number>
  <pages>3&#8211;35</pages>
  <doi>10.1016/S0167-8191(00)00087-9</doi>
 </citation>
</bibliography>
