
@ARTICLE{expression_templates,
    author = {Todd Veldhuizen},
    title = {Expression Templates},
    journal = {C++ Report},
    year = 1995,
    volume = 7,
    pages = {26--31}
}

@inproceedings{esterie2012boost,
  title={Boost. simd: generic programming for portable simdization},
  author={Est{\'e}rie, Pierre and Gaunard, Mathias and Falcou, Joel and Laprest{\'e}, Jean-Thierry and Rozoy, Brigitte},
  booktitle={Proceedings of the 21st international conference on Parallel architectures and compilation techniques},
  pages={431--432},
  year={2012},
  organization={ACM}
}

@Article{cython2010,
  author =       "Stefan Behnel and Robert Bradshaw and Craig Citro and
                 Lisandro Dalcin and Dag Sverre Seljebotn and Kiurt
                 Smith",
  journal =      "Computing in Science Engineering",
  title =        "{C}ython: The Best of Both Worlds",
  year =         "2011",
  skip_month =   mar,
  volume =       "13",
  number =       "2",
  pages =        "31--39",
  ISSN =         "1521-9615",
}


@book{metaprogramming2002,
    author = {Vandevoorde, David and Josuttis, Nicolai M.},
    edition = {1},
    howpublished = {Hardcover},
    month = nov,
    publisher = {Addison-Wesley Professional},
    title = {{C++ Templates: The Complete Guide}},
    year = 2002
}

@InProceedings{theano2010,
  author =       "James Bergstra and Olivier Breuleux and
                 Fr{\'{e}}d{\'{e}}ric Bastien and Pascal Lamblin and
                 Razvan Pascanu and Guillaume Desjardins and Joseph
                 Turian and David Warde-Farley and Yoshua Bengio",
  month =        jun,
  title =        "{T}heano: a {CPU} and {GPU} Math Expression Compiler",
  booktitle =    "Proceedings of the {P}ython for Scientific Computing
                 Conference ({SciPy})",
  year =         "2010",
}

@InProceedings{pythran2013,
  author =       "Serge Guelton and Pierrick Brunet and Alan Raynaud and
                 Adrien Merlini and Mehdi Amini",
  month =        jun,
  title =        "Pythran: Enabling Static Optimization of Scientific
                 Python Programs",
  booktitle =    "Proceedings of the {P}ython for Scientific Computing
                 Conference ({SciPy})",
  year =         "2013",
}

@InProceedings{pypy2009,
  author =       "Carl Friedrich Bolz and Antonio Cuni and Maciej
                 Fijalkowski and Armin Rigo",
  title =        "Tracing the meta-level: {P}y{P}y's tracing {JIT}
                 compiler",
  skip_booktitle = "Proceedings of the 4th workshop on the
                 Implementation, Compilation, Optimization of
                 Object-Oriented Languages and Programming Systems",
  booktitle =    "Proceedings of the 4th {ICOOOLPS} workshop",
  skip_series =  "ICOOOLPS '09",
  year =         "2009",
  pages =        "18--25",
  publisher =    "{ACM}",
  address =      "New York, NY, USA",
}

@Article{boostpython2007,
  author =       "David Abrahams and Ralf W. Grosse-Kunstleve",
  title =        "Building Hybrid Systems with {B}oost. {P}ython",
  journal =      "{C}/{C}++ Users Journal",
  volume =       "21",
  number =       "7",
  year =         "2003",
  month =        jul,
  publisher =    "{CMP} Media {LLC}",
}

@InProceedings{copperhead2011,
  author =       "Bryan Catanzaro and Michael Garland and Kurt Keutzer",
  title =        "{C}opperhead: compiling an embedded data parallel
                 language",
  booktitle =    "Proceedings of the 16th {ACM} symposium on Principles
                 and practice of parallel programming",
  skip_series =  "PPoPP'11",
  year =         "2011",
  pages =        "47--56",
  publisher =    "{ACM}",
  address =      "New York, NY, USA",
  keywords =     "data parallelism, gpu, python",
}

@InProceedings{choy05,
  author =       "Ron Choy and Alan Edelman and Cleve Moler Of",
  title =        "Parallel {MATLAB}: Doing it right",
  booktitle =    "Proceedings of the {IEEE}",
  year =         "2005",
  pages =        "331--341",
}

@InProceedings{mals07,
  author =       "Xiaosong Ma and Jiangtian Li and Nagiza F. Samatova",
  title =        "Automatic Parallelization of Scripting Languages:
                 Toward Transparent Desktop Parallel Computing",
  booktitle =    "{IPDPS}",
  publisher =    "{IEEE}",
  year =         "2007",
  skip_month =   mar,
  pages =        "1--6",
}

@Article{dongara2007,
  author =       "Piotr Luszczek and Jack Dongarra",
  title =        "High Performance Development for High End Computing
                 With {P}ython Language Wrapper ({PLW})",
  journal =      "International Journal of High Performance Computing
                 Applications",
  volume =       "21",
  number =       "3",
  month =        aug,
  year =         "2007",
  ISSN =         "1094-3420",
  pages =        "360--369",
  publisher =    "Sage Publications, Inc.",
  address =      "Thousand Oaks, CA, USA",
  keywords =     "Python compilation, high performance parallel
                 computing, rapid application development, scripting
                 languages, static typing",
}

@InBook{gil2012,
  title =        "Thread State and the Global Interpreter Lock",
  crossref =     "pythoncapi",
}

@Book{pythoncapi,
  title =        "{P}ython/{C} {API} Reference Manual",
  editor =       "Guido van Rossum and Fred L. Jr. Drake",
  publisher =    "{P}ython Software Foundation",
  year =         "2012",
  month =        sep,
}

@InProceedings{gpu2010,
  author =       "Rahul Garg and Jos{\'e} Nelson Amaral",
  title =        "Compiling {P}ython to a hybrid execution environment",
  booktitle =    "Proceedings of the 3rd Workshop on General-Purpose
                 Computation on Graphics Processing Units",
  series =       "GPGPU '10",
  year =         "2010",
  ISBN =         "978-1-60558-935-0",
  pages =        "19--30",
  publisher =    "{ACM}",
  address =      "New York, NY, USA",
}

@Misc{isocxx11,
  key =          "ISO/IEC 14882:2011",
  publisher =    "{ISO}, Geneva, Switzerland",
  type =         "norm",
  title =        "Programming Languages -- {C++}",
  note =         "{ISO}/{IEC} 14882:2011",
  year =         "2011",
}
@Misc{numba,
  key =          "numba",
  title =        "numba",
  howpublished = "\url{http://numba.pydata.org}",
  year =         "2013",
}
@InProceedings{pyhpc2013,
  author =    "Serge guelton and Pierrick Brunet and Mehdi Amini",
  title =     "Compiling Python modules to native parallel modules using {P}ythran and {O}pen{MP} Annotations",
  booktitle = "Proceedings of Workshop on Python for High
              Performance and Scientific Computing",
  year =      "2013",
  publisher = "PyHPC 2013",
  month =     nov,
}

@Article{numpyarray2011,
  author =       "St{\'e}fan van der Walt and S. Chris Colbert and
                 Ga{\"e}l Varoquaux",
  title =        "The {N}um{P}y array: a structure for efficient
                 numerical computation",
  journal =      "{CoRR}",
  volume =       "abs/1102.1523",
  year =         "2011",
}

@Article{oliphant2007,
  author =       "Travis E. Oliphant",
  title =        "{P}ython for Scientific Computing",
  journal =      "Computing in Science and Engineering",
  volume =       "9",
  number =       "3",
  month =        may,
  year =         "2007",
  ISSN =         "1521-9615",
  pages =        "10--20",
  publisher =    "{IEEE} Educational Activities Department",
  address =      "Piscataway, NJ, USA",
}

@Misc{openmp3.1,
  title =        "{O}pen{MP} Application Program Interface",
  howpublished = "http://www.openmp.org/mp-documents/OpenMP3.1.pdf",
  key =          "openmp",
  year =         "2011",
  month =        jul,
}
@Misc{openmp4,
  title =        "{O}pen{MP} Application Program Interface",
  howpublished = "http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf",
  key =          "openmp",
  year =         "2013",
  month =        jul,
}

@InProceedings{rossum97,
  author =       "Guido van Rossum",
  title =        "A Tour of the {P}ython Language",
  booktitle =    "TOOLS (23)",
  year =         "1997",
  pages =        "370",
}

@InProceedings{rpython2007,
  author =       "D. Ancona and M. Ancona and A Cuni and N. Matsakis",
  title =        "{R}{P}ython: a {S}tep {T}owards {R}econciling
                 {D}ynamically and {S}tatically {T}yped {OO}
                 {L}anguages",
  booktitle =    "{OOPSLA} 2007 {P}roceedings and {C}ompanion, {DLS}'07:
                 {P}roceedings of the 2007 {S}ymposium on {D}ynamic
                 {L}anguages",
  pages =        "53--64",
  publisher =    "{ACM}",
  abstract =     "Although the C-based interpreter of Python is
                 reasonably fast, implementations on the CLI or the JVM
                 platforms offers some advantages in terms of robustness
                 and interoperability. Unfortunately, because the CLI
                 and JVM are primarily designed to execute statically
                 typed, object-oriented languages, most dynamic language
                 implementations cannot use the native bytecodes for
                 common operations like method calls and exception
                 handling; as a result, they are not able to take full
                 advantage of the power offered by the CLI and JVM. We
                 describe a different approach that attempts to preserve
                 the flexibility of Python, while still allowing for
                 efficient execution. This is achieved by limiting the
                 use of the more dynamic features of Python to an
                 initial, bootstrapping phase. This phase is used to
                 construct a final RPython (Restricted Python) program
                 that is actually executed. RPython is a proper subset
                 of Python, is statically typed, and does not allow
                 dynamic modification of class or method definitions;
                 however, it can still take advantage of Python features
                 such as mixins and first-class methods and classes.
                 This paper presents an overview of RPython, including
                 its design and its translation to both CLI and JVM
                 bytecode. We show how the bootstrapping phase can be
                 used to implement advanced features, like extensible
                 classes and generative programming. We also discuss
                 what work remains before RPython is truly ready for
                 general use, and compare the performance of RPython
                 with that of other approaches.",
  keywords =     "objects,dynamicLang",
  year =         "2007",
}

@Misc{scipy,
  author =       "Eric Jones and Travis Oliphant and Pearu Peterson and
                 others",
  title =        "{SciPy}: Open source scientific tools for {Python}",
  year =         "2001",
  howpublished = "http://www.scipy.org/",
}

@MastersThesis{shedskin2006,
  author =       "Mark Dufour",
  title =        "Shed skin: An optimizing python-to-c++ compiler",
  school =       "Delft University of Technology",
  year =         "2006",
}

@Article{swig2003,
  author =       "David M. Beazley",
  title =        "Automated scientific software scripting with {SWIG}",
  journal =      "Future Generation Computer Systems",
  volume =       "19",
  number =       "5",
  month =        jul,
  year =         "2003",
  ISSN =         "0167-739X",
  pages =        "599--609",
  publisher =    "Elsevier Science Publishers B. V.",
  address =      "Amsterdam, The Netherlands, The Netherlands",
  keywords =     "SWIG, interface compiler, python, scientific software,
                 scripting languages",
}

@Article{milner78,
  author =       "Robin Milner",
  title =        "A theory of type polymorphism in programming",
  journal =      "Journal of Computer and System Sciences",
  year =         "1978",
  volume =       "17",
  pages =        "348--375",
}

@Article{Levanoni2006,
  author =       "Yossi Levanoni and Erez Petrank",
  title =        "An on-the-fly reference-counting garbage collector for
                 java",
  journal =      "{ACM} Transactions on Programming Languages and
                 Systems",
  volume =       "28",
  number =       "1",
  month =        jan,
  year =         "2006",
  ISSN =         "0164-0925",
  pages =        "1--69",
  publisher =    "{ACM}",
  address =      "New York, NY, USA",
  keywords =     "Programming languages, garbage collection, memory
                 management, reference-counting",
}

@Article{klockner2012,
  author =       "Andreas Kl{\"o}ckner and Nicolas Pinto and Yunsup Lee
                 and Bryan C. Catanzaro and Paul Ivanov and Ahmed
                 Fasih",
  title =        "{P}y{CUDA} and {P}y{O}pen{CL}: {A} scripting-based
                 approach to {GPU} run-time code generation",
  journal =      "Parallel Computing",
  volume =       "38",
  number =       "3",
  year =         "2012",
  pages =        "157--174",
}

@Article{Tabba2010,
  author =       "Fuad Tabba",
  title =        "Adding concurrency in python using a commercial
                 processor's hardware transactional memory support",
  journal =      "{SIGARCH} Computer Architecture News",
  volume =       "38",
  number =       "5",
  month =        apr,
  year =         "2010",
  pages =        "12--19",
  publisher =    "{ACM}",
  address =      "New York, NY, USA",
}

@InProceedings{Riley2006,
  author =       "Nicholas Riley and Craig Zilles",
  title =        "Hardware tansactional memory support for lightweight
                 dynamic language evolution",
  booktitle =    "Companion to the 21st {ACM} {SIGPLAN} symposium on
                 Object-oriented programming systems, languages, and
                 applications",
  series =       "{OOPSLA} '06",
  year =         "2006",
  pages =        "998--1008",
  publisher =    "{ACM}",
  address =      "New York, NY, USA",
}

@InProceedings{wang2012,
  author =       "Cheng Wang and Sunita Chandrasekaran and Barbara M.
                 Chapman",
  title =        "An {O}pen{MP} 3.1 Validation Testsuite",
  booktitle =    "8th International Workshop on {O}pen{MP} ({IWOMP})",
  publisher =    "Springer",
  series =       "Lecture Notes in Computer Science",
  volume =       "7312",
  year =         "2012",
  month =        jun,
  address =      "Rome, Italy",
  pages =        "237--249",
  skip_editor =  "Barbara M. Chapman and Federico Massaioli and Matthias
                 S. M{\"u}ller and Marco Rorro",
}

@InProceedings{boehm1991,
  author =       "Hans-J. Boehm and Alan J. Demers and Scott Shenker",
  title =        "Mostly parallel garbage collection",
  booktitle =    "Proceedings of the {ACM} {SIGPLAN} conference on
                 Programming language design and implementation",
  series =       "PLDI '91",
  year =         "1991",
  pages =        "157--164",
  publisher =    "{ACM}",
  address =      "New York, NY, USA",
}

@InProceedings{parakeet2012,
  author =       "Alex Rubinsteyn and Eric Hielscher and Nathaniel
                 Weinman and Dennis Shasha",
  title =        "Parakeet: a just-in-time parallel accelerator for
                 python",
  booktitle =    "Proceedings of the 4th {USENIX} conference on Hot
                 Topics in Parallelism",
  series =       "HotPar'12",
  year =         "2012",
  pages =        "14--14",
  publisher =    "USENIX Association",
  address =      "Berkeley, CA, USA",
}




@inproceedings{maleki2011,
 author = {Maleki, Saeed and Gao, Yaoqing and Garzar\'{a}n, Maria J. and Wong, Tommy and Padua, David A.},
 title = {An Evaluation of Vectorizing Compilers},
 booktitle = {Proceedings of the 2011 International Conference on Parallel Architectures and Compilation Techniques},
 series = {PACT '11},
 year = 2011,
 pages = {372--382},
 publisher = {IEEE Computer Society},
 address = {Washington, DC, USA},
} 
@Book{		  bik04,
  author	= {Bik, Aart J. C.},
  title		= {The Software Vectorization Handbook: Applying {I}ntel
		  Multimedia Extensions for Maximum Performance},
  publisher	= {Intel Press},
  year		= 2004,
  keywords	= {simd}
}

@InProceedings{	  larsen00,
  author	= {Samuel Larsen and Saman P. Amarasinghe},
  title		= {Exploiting superword level parallelism with multimedia
		  instruction sets},
  booktitle	= {{Programming Language Design and Implementation}},
  series	= {{PLDI}},
  year		= 2000,
  pages		= {145--156},
  keywords	= {slp}
}
