Conference paper Open Access

A Structural Model for Contextual Code Changes

Brody, Shaked; Alon, Uri; Yahav, Eran


JSON Export

{
  "files": [
    {
      "links": {
        "self": "https://zenodo.org/api/files/9d2c07db-174f-44bb-bb47-000bd9f99562/A-Structural-Model-for-Contextual-Code-Changes-Artifact.zip"
      }, 
      "checksum": "md5:ccf653c792052aa5b067f2ac4aef65a9", 
      "bucket": "9d2c07db-174f-44bb-bb47-000bd9f99562", 
      "key": "A-Structural-Model-for-Contextual-Code-Changes-Artifact.zip", 
      "type": "zip", 
      "size": 97734743
    }, 
    {
      "links": {
        "self": "https://zenodo.org/api/files/9d2c07db-174f-44bb-bb47-000bd9f99562/LICENSE"
      }, 
      "checksum": "md5:0bf5aa65d04262aa2bf7f26789f74aca", 
      "bucket": "9d2c07db-174f-44bb-bb47-000bd9f99562", 
      "key": "LICENSE", 
      "type": "", 
      "size": 1084
    }, 
    {
      "links": {
        "self": "https://zenodo.org/api/files/9d2c07db-174f-44bb-bb47-000bd9f99562/README.md"
      }, 
      "checksum": "md5:07372d09a48472a0e35bf78142c19bce", 
      "bucket": "9d2c07db-174f-44bb-bb47-000bd9f99562", 
      "key": "README.md", 
      "type": "md", 
      "size": 15076
    }
  ], 
  "owners": [
    136730
  ], 
  "doi": "10.5281/zenodo.4036303", 
  "stats": {
    "version_unique_downloads": 13.0, 
    "unique_views": 70.0, 
    "views": 73.0, 
    "version_views": 73.0, 
    "unique_downloads": 13.0, 
    "version_unique_views": 70.0, 
    "volume": 488769591.0, 
    "version_downloads": 16.0, 
    "downloads": 16.0, 
    "version_volume": 488769591.0
  }, 
  "links": {
    "doi": "https://doi.org/10.5281/zenodo.4036303", 
    "conceptdoi": "https://doi.org/10.5281/zenodo.4036302", 
    "bucket": "https://zenodo.org/api/files/9d2c07db-174f-44bb-bb47-000bd9f99562", 
    "conceptbadge": "https://zenodo.org/badge/doi/10.5281/zenodo.4036302.svg", 
    "html": "https://zenodo.org/record/4036303", 
    "latest_html": "https://zenodo.org/record/4036303", 
    "badge": "https://zenodo.org/badge/doi/10.5281/zenodo.4036303.svg", 
    "latest": "https://zenodo.org/api/records/4036303"
  }, 
  "conceptdoi": "10.5281/zenodo.4036302", 
  "created": "2020-09-18T13:42:46.747353+00:00", 
  "updated": "2020-09-19T00:59:31.751614+00:00", 
  "conceptrecid": "4036302", 
  "revision": 2, 
  "id": 4036303, 
  "metadata": {
    "access_right_category": "success", 
    "doi": "10.5281/zenodo.4036303", 
    "description": "<p>We address the problem of predicting edit completions based on a learned model that was trained on past edits.<br>\nGiven a code snippet that is partially edited, our goal is to predict a completion of the edit for the rest of the<br>\nsnippet. We refer to this task as the EditCompletion&nbsp;task and present a novel approach for tackling it. The<br>\nmain idea is to directly represent structural edits. This allows us to model the likelihood of the edit itself, rather<br>\nthan learning the likelihood of the edited code. We represent an edit operation as a path in the program&rsquo;s Abstract<br>\nSyntax Tree (AST), originating from the source of the edit to the target of the edit. Using this representation, we<br>\npresent a powerful and lightweight neural model for the EditCompletion&nbsp;task.</p>\n\n<p><br>\nWe conduct a thorough evaluation, comparing our approach to a variety of representation and modeling<br>\napproaches that are driven by multiple strong models such as LSTMs, Transformers, and neural CRFs. Our<br>\nexperiments show that our model achieves 28% relative gain over state-of-the-art sequential models and 2&times;<br>\nhigher accuracy than syntactic models that learn to generate the edited code instead of modeling the edits<br>\ndirectly. We make our code, dataset, and trained models publicly available.</p>", 
    "license": {
      "id": "CC-BY-4.0"
    }, 
    "title": "A Structural Model for Contextual Code Changes", 
    "relations": {
      "version": [
        {
          "count": 1, 
          "index": 0, 
          "parent": {
            "pid_type": "recid", 
            "pid_value": "4036302"
          }, 
          "is_last": true, 
          "last_child": {
            "pid_type": "recid", 
            "pid_value": "4036303"
          }
        }
      ]
    }, 
    "keywords": [
      "Programming Languages", 
      "Machine Learning"
    ], 
    "publication_date": "2020-09-18", 
    "creators": [
      {
        "affiliation": "Technion", 
        "name": "Brody, Shaked"
      }, 
      {
        "affiliation": "Technion", 
        "name": "Alon, Uri"
      }, 
      {
        "affiliation": "Technion", 
        "name": "Yahav, Eran"
      }
    ], 
    "meeting": {
      "acronym": "OOPSLA", 
      "dates": "November, 2020", 
      "title": "Object-Oriented Programming, Systems, Languages and Applications"
    }, 
    "access_right": "open", 
    "resource_type": {
      "subtype": "conferencepaper", 
      "type": "publication", 
      "title": "Conference paper"
    }, 
    "related_identifiers": [
      {
        "scheme": "doi", 
        "identifier": "10.5281/zenodo.4036302", 
        "relation": "isVersionOf"
      }
    ]
  }
}
73
16
views
downloads
All versions This version
Views 7373
Downloads 1616
Data volume 488.8 MB488.8 MB
Unique views 7070
Unique downloads 1313

Share

Cite as