<?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-015-03-0620</article-id>
      <article-id pub-id-type="publisher-id">29326</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.5 - Object-oriented Programming</subject>
          <subject>D.2.3 - Coding Tools and Techniques</subject>
          <subject>D.3.3 - Language Constructs and Features</subject>
          <subject>D.3.4 - Processors</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Supporting Composition of Structural Aspects in an AOP Kernel</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Tanter</surname>
            <given-names>Éric</given-names>
          </name>
          <email xlink:type="simple">etanter@dcc.uchile.cl</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Fabry</surname>
            <given-names>Johan</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: Éric Tanter (<email xlink:type="simple">etanter@dcc.uchile.cl</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2009</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>01</day>
        <month>02</month>
        <year>2009</year>
      </pub-date>
      <volume>15</volume>
      <issue>3</issue>
      <fpage>620</fpage>
      <lpage>647</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/BAD6F2E8-A293-5137-BDB8-8D0F0F3B0620">BAD6F2E8-A293-5137-BDB8-8D0F0F3B0620</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/7000669">7000669</uri>
      <permissions>
        <copyright-statement>Éric Tanter, Johan Fabry</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>Structural aspects modify the structure of a program, for instance by adding fields and methods to existing classes. Like behavioral aspects, which operate on execution events, structural aspects may interact and raise conflicts. Current aspect systems however do not thoroughly handle this issue. This paper discusses how complete support for structural aspect composition can be integrated in an AOP kernel, that is, a generic transformation framework on top of which aspect languages are defined. An iterative composition process is proposed that involves the programmer in a cycle of automatic detection of interactions and explicit, declarative resolution of these interactions. Beyond a general analysis of the issue of composition of structural aspects and an associated composition process, this work reports on the concrete extension of the Reflex AOP kernel to fully support the requirements drawn from our analysis. Based on a structural model supporting per-aspect subjective views, and using the power of an embedded logic engine, the result is a versatile aspect system supporting automatic detection of various kinds of structural aspect interactions, extensible reporting tools, and declarative mechanisms for the resolution of interactions between structural aspects.</p>
      </abstract>
    </article-meta>
  </front>
</article>
