<?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-014-21-3517</article-id>
      <article-id pub-id-type="publisher-id">29263</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.m - Miscellaneous</subject>
          <subject>D.3.4 - Processors</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>A Lightweight and Extensible AspectJ Implementation</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Toledo</surname>
            <given-names>Rodolfo</given-names>
          </name>
          <email xlink:type="simple">rtoledo@dcc.uchile.cl</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Tanter</surname>
            <given-names>Éric</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">University of Chile, Santiago, Chile</addr-line>
        <institution>University of Chile</institution>
        <addr-line content-type="city">Santiago</addr-line>
        <country>Chile</country>
      </aff>
      <author-notes>
        <fn fn-type="corresp">
          <p>Corresponding author: Rodolfo Toledo (<email xlink:type="simple">rtoledo@dcc.uchile.cl</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2008</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>01</day>
        <month>12</month>
        <year>2008</year>
      </pub-date>
      <volume>14</volume>
      <issue>21</issue>
      <fpage>3517</fpage>
      <lpage>3533</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/FA1BFC18-7525-54AD-8F15-4C6F94C4DF2E">FA1BFC18-7525-54AD-8F15-4C6F94C4DF2E</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/7000577">7000577</uri>
      <permissions>
        <copyright-statement>Rodolfo Toledo, Éric Tanter</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>Extending AspectJ to experiment with new language features can be cumbersome, even with an extensible implementation. Often, a language designer only needs a rapid prototyping environment, but has to deal with a full compiler infrastructure, and must address low-level implementation issues. This work completes a lightweight extensible implementation of AspectJ with a declarative assimilation layer based on Stratego. This layer brings together an extensible syntax definition of AspectJ and the core semantics provided by the Reflex AOP kernel. Using this implementation, language extensions are defined using declarative high-level constructs, significantly reducing the cost of the extension process.</p>
      </abstract>
    </article-meta>
  </front>
</article>
