<?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-013-06-0753</article-id>
      <article-id pub-id-type="publisher-id">28803</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.3.4 - Processors</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Optimized Compilation of Around Advice for Aspect Oriented Programs</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Cordeiro</surname>
            <given-names>Eduardo S.</given-names>
          </name>
          <email xlink:type="simple">cordeiro@dcc.ufmg.br</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Bigonha</surname>
            <given-names>Roberto S.</given-names>
          </name>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Bigonha</surname>
            <given-names>Mariza Andrade Silva</given-names>
          </name>
          <xref ref-type="aff" rid="A2">2</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Tirelo</surname>
            <given-names>Fabio</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">Universidade Federal de Minas Gerais, , Brazil</addr-line>
        <institution>Universidade Federal de Minas Gerais</institution>
        <country>Brazil</country>
      </aff>
      <aff id="A2">
        <label>2</label>
        <addr-line content-type="verbatim">Federal University of Minas Gerais, , Brazil</addr-line>
        <institution>Federal University of Minas Gerais</institution>
        <country>Brazil</country>
      </aff>
      <author-notes>
        <fn fn-type="corresp">
          <p>Corresponding author: Eduardo S. Cordeiro (<email xlink:type="simple">cordeiro@dcc.ufmg.br</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2007</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>28</day>
        <month>06</month>
        <year>2007</year>
      </pub-date>
      <volume>13</volume>
      <issue>6</issue>
      <fpage>753</fpage>
      <lpage>766</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/E1C9FD82-6D21-568F-A1DD-0341DAD2AEC3">E1C9FD82-6D21-568F-A1DD-0341DAD2AEC3</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/6999846">6999846</uri>
      <permissions>
        <copyright-statement>Eduardo S. Cordeiro, Roberto S. Bigonha, Mariza Andrade Silva Bigonha, Fabio Tirelo</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>The technology that supports Aspect-Oriented Programming (AOP) tools is inherently intrusive, since it changes the behavior of base application code. Advice weaving performed by AspectJ compilers must introduce crosscutting behavior defined in advice into Java programs without causing great performance overhead. This papershows the techniques applied by the ajc and abc AspectJ compilers for around advice weaving, and identifies problems in code they produce. The problems analyzed are advice and shadow implementation repetition and context variable repetition. Performance gain provided by solving these problems is discussed, showing that bytecodesize, running time and memory consumption can be reduced by these optimizations. It is assumed that the reader is familiar with AOP and AspectJ constructs.</p>
      </abstract>
    </article-meta>
  </front>
</article>
