<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<item>
  <id>06105925</id>
  <dt>a</dt>
  <an>06105925</an>
  <augroup>
    <au>Hulette, Geoffrey C.</au>
    <au>Sottile, Matthew J.</au>
    <au>Malony, Allen D.</au>
  </augroup>
  <ti>A type-based approach to separating protocol from application logic. A case study in hybrid computer programming.</ti>
  <so>Kaklamanis, Christos (ed.) et al., Euro-Par 2012 parallel processing. 18th international conference, Euro-Par 2012, Rhodes Island, Greece, August 27--31, 2012. Proceedings. Berlin: Springer (ISBN 978-3-642-32819-0/pbk). Lecture Notes in Computer Science 7484, 40-51 (2012).</so>
  <py>2012</py>
  <pu>Berlin: Springer</pu>
  <lagroup>
    <la>EN</la>
  </lagroup>
  <ccgroup>
  </ccgroup>
  <utgroup>
  </utgroup>
  <cigroup>
  </cigroup>
  <ligroup>
    <li>doi:10.1007/978-3-642-32820-6_6</li>
  </ligroup>
  <abgroup>
    <ab>Summary: Numerous programming models have been introduced to allow programmers to utilize new accelerator-based architectures. While OpenCL and CUDA provide low-level access to accelerator programming, the task cries out for a higher-level abstraction. Of the higher-level programming models which have emerged, few are intended to co-exist with mainstream, general-purpose languages while supporting tunability, composability, and transparency of implementation. In this paper, we propose extensions to the type systems (implementable as syntactically neutral annotations) of traditional, general-purpose languages can be made which allow programmers to work at a higher level of abstraction with respect to memory, deferring much of the tedium of data management and movement code to an automatic code generation tool. Furthermore, our technique, based on formal term rewriting, allows for user-defined reduction rules to optimize low-level operations and exploit domain- and/or application-specific knowledge.</ab>
    <rv></rv>
  </abgroup>
</item>