<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//TaxonX//DTD Taxonomic Treatment Publishing DTD v0 20100105//EN" "../../nlm/tax-treatment-NS0.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tp="http://www.plazi.org/taxpub" article-type="research-article" dtd-version="3.0" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">109</journal-id>
      <journal-id journal-id-type="index">urn:lsid:arphahub.com:pub:3dc5f44e-8666-58db-bc76-a455210e8891</journal-id>
      <journal-title-group>
        <journal-title xml:lang="en">JUCS - Journal of Universal Computer Science</journal-title>
        <abbrev-journal-title xml:lang="en">jucs</abbrev-journal-title>
      </journal-title-group>
      <issn pub-type="ppub">0948-695X</issn>
      <issn pub-type="epub">0948-6968</issn>
      <publisher>
        <publisher-name>Journal of Universal Computer Science</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.3217/jucs-016-02-0221</article-id>
      <article-id pub-id-type="publisher-id">29593</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Research Article</subject>
        </subj-group>
        <subj-group subj-group-type="scientific_subject">
          <subject>D.1.3 - Concurrent Programming</subject>
          <subject>D.3.3 - Language Constructs and Features</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>An Extensible Interpreter Framework for Software Transactional Memory</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Herzeel</surname>
            <given-names>Charlotte</given-names>
          </name>
          <email xlink:type="simple">charlotte.herzeel@vub.ac.be</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Costanza</surname>
            <given-names>Pascal</given-names>
          </name>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Hondt</surname>
            <given-names>Theo D</given-names>
          </name>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
      </contrib-group>
      <aff id="A1">
        <label>1</label>
        <addr-line content-type="verbatim">Vrije Universiteit Brussel, Brussel, Belgium</addr-line>
        <institution>Vrije Universiteit Brussel</institution>
        <addr-line content-type="city">Brussel</addr-line>
        <country>Belgium</country>
      </aff>
      <author-notes>
        <fn fn-type="corresp">
          <p>Corresponding author: Charlotte Herzeel (<email xlink:type="simple">charlotte.herzeel@vub.ac.be</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2010</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>28</day>
        <month>01</month>
        <year>2010</year>
      </pub-date>
      <volume>16</volume>
      <issue>2</issue>
      <fpage>221</fpage>
      <lpage>245</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/50E2835A-EA80-50F2-A055-85811A78ED14">50E2835A-EA80-50F2-A055-85811A78ED14</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/7001067">7001067</uri>
      <permissions>
        <copyright-statement>Charlotte Herzeel, Pascal Costanza, Theo D Hondt</copyright-statement>
        <license license-type="creative-commons-attribution" xlink:href="" xlink:type="simple">
          <license-p>This article is freely available under the J.UCS Open Content License.</license-p>
        </license>
      </permissions>
      <abstract>
        <label>Abstract</label>
        <p>Software transactional memory (STM) is a new approach for coordinating concurrent threads, for which many different implementation strategies are currently being researched. In this paper we show that if a language implementation provides reflective access to explicit memory locations, it becomes straightforward to both (a) build an STM framework for this language and (b) to implement STM algorithms using this framework. A proof-of-concept implementation in the form of a Scheme interpreter (written in Common Lisp) is presented.</p>
      </abstract>
    </article-meta>
  </front>
</article>
