Conference paper Open Access

A Structural Model for Contextual Code Changes

Brody, Shaked; Alon, Uri; Yahav, Eran


MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="http://www.loc.gov/MARC21/slim">
  <leader>00000nam##2200000uu#4500</leader>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">Programming Languages</subfield>
  </datafield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">Machine Learning</subfield>
  </datafield>
  <controlfield tag="005">20200919005931.0</controlfield>
  <controlfield tag="001">4036303</controlfield>
  <datafield tag="711" ind1=" " ind2=" ">
    <subfield code="d">November, 2020</subfield>
    <subfield code="g">OOPSLA</subfield>
    <subfield code="a">Object-Oriented Programming, Systems, Languages and Applications</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Technion</subfield>
    <subfield code="a">Alon, Uri</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Technion</subfield>
    <subfield code="a">Yahav, Eran</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">97734743</subfield>
    <subfield code="z">md5:ccf653c792052aa5b067f2ac4aef65a9</subfield>
    <subfield code="u">https://zenodo.org/record/4036303/files/A-Structural-Model-for-Contextual-Code-Changes-Artifact.zip</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">1084</subfield>
    <subfield code="z">md5:0bf5aa65d04262aa2bf7f26789f74aca</subfield>
    <subfield code="u">https://zenodo.org/record/4036303/files/LICENSE</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">15076</subfield>
    <subfield code="z">md5:07372d09a48472a0e35bf78142c19bce</subfield>
    <subfield code="u">https://zenodo.org/record/4036303/files/README.md</subfield>
  </datafield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2020-09-18</subfield>
  </datafield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">openaire</subfield>
    <subfield code="o">oai:zenodo.org:4036303</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">Technion</subfield>
    <subfield code="a">Brody, Shaked</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">A Structural Model for Contextual Code Changes</subfield>
  </datafield>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="u">https://creativecommons.org/licenses/by/4.0/legalcode</subfield>
    <subfield code="a">Creative Commons Attribution 4.0 International</subfield>
  </datafield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2">opendefinition.org</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;We address the problem of predicting edit completions based on a learned model that was trained on past edits.&lt;br&gt;
Given a code snippet that is partially edited, our goal is to predict a completion of the edit for the rest of the&lt;br&gt;
snippet. We refer to this task as the EditCompletion&amp;nbsp;task and present a novel approach for tackling it. The&lt;br&gt;
main idea is to directly represent structural edits. This allows us to model the likelihood of the edit itself, rather&lt;br&gt;
than learning the likelihood of the edited code. We represent an edit operation as a path in the program&amp;rsquo;s Abstract&lt;br&gt;
Syntax Tree (AST), originating from the source of the edit to the target of the edit. Using this representation, we&lt;br&gt;
present a powerful and lightweight neural model for the EditCompletion&amp;nbsp;task.&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
We conduct a thorough evaluation, comparing our approach to a variety of representation and modeling&lt;br&gt;
approaches that are driven by multiple strong models such as LSTMs, Transformers, and neural CRFs. Our&lt;br&gt;
experiments show that our model achieves 28% relative gain over state-of-the-art sequential models and 2&amp;times;&lt;br&gt;
higher accuracy than syntactic models that learn to generate the edited code instead of modeling the edits&lt;br&gt;
directly. We make our code, dataset, and trained models publicly available.&lt;/p&gt;</subfield>
  </datafield>
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">doi</subfield>
    <subfield code="i">isVersionOf</subfield>
    <subfield code="a">10.5281/zenodo.4036302</subfield>
  </datafield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.5281/zenodo.4036303</subfield>
    <subfield code="2">doi</subfield>
  </datafield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">publication</subfield>
    <subfield code="b">conferencepaper</subfield>
  </datafield>
</record>
72
16
views
downloads
All versions This version
Views 7272
Downloads 1616
Data volume 488.8 MB488.8 MB
Unique views 6969
Unique downloads 1313

Share

Cite as