On the fly synthesis of edit suggestions
When working with a document, users often perform context-specific repetitive edits – changes to the document that are similar but specific to the contexts at their locations. Programming by demonstration/examples (PBD/PBE) systems automate these tasks by learning programs to perform the repetitive...
Uloženo v:
| Vydáno v: | Proceedings of ACM on programming languages Ročník 3; číslo OOPSLA; s. 1 - 29 |
|---|---|
| Hlavní autoři: | , , , , , , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
01.10.2019
|
| ISSN: | 2475-1421, 2475-1421 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | When working with a document, users often perform context-specific repetitive edits – changes to the document that are similar but specific to the contexts at their locations. Programming by demonstration/examples (PBD/PBE) systems automate these tasks by learning programs to perform the repetitive edits from demonstration or examples. However, PBD/PBE systems are not widely adopted, mainly because they require modal UIs – users must enter a special mode to give the demonstration/examples. This paper presents Blue-Pencil, a modeless system for synthesizing edit suggestions on the fly. Blue-Pencil observes users as they make changes to the document, silently identifies repetitive changes, and automatically suggests transformations that can apply at other locations. Blue-Pencil is parameterized – it allows the ”plug-and-play” of different PBE engines to support different document types and different kinds of transformations. We demonstrate this parameterization by instantiating Blue-Pencil to several domains – C# and SQL code, markdown documents, and spreadsheets – using various existing PBE engines. Our evaluation on 37 code editing sessions shows that Blue-Pencil synthesized edit suggestions with a precision of 0.89 and a recall of 1.0, and took 199 ms to return suggestions on average. Finally, we report on several improvements based on feedback gleaned from a field study with professional programmers to investigate the use of Blue-Pencil during long code editing sessions. Blue-Pencil has been integrated with Visual Studio IntelliCode to power the IntelliCode refactorings feature. |
|---|---|
| AbstractList | When working with a document, users often perform context-specific repetitive edits – changes to the document that are similar but specific to the contexts at their locations. Programming by demonstration/examples (PBD/PBE) systems automate these tasks by learning programs to perform the repetitive edits from demonstration or examples. However, PBD/PBE systems are not widely adopted, mainly because they require modal UIs – users must enter a special mode to give the demonstration/examples. This paper presents Blue-Pencil, a modeless system for synthesizing edit suggestions on the fly. Blue-Pencil observes users as they make changes to the document, silently identifies repetitive changes, and automatically suggests transformations that can apply at other locations. Blue-Pencil is parameterized – it allows the ”plug-and-play” of different PBE engines to support different document types and different kinds of transformations. We demonstrate this parameterization by instantiating Blue-Pencil to several domains – C# and SQL code, markdown documents, and spreadsheets – using various existing PBE engines. Our evaluation on 37 code editing sessions shows that Blue-Pencil synthesized edit suggestions with a precision of 0.89 and a recall of 1.0, and took 199 ms to return suggestions on average. Finally, we report on several improvements based on feedback gleaned from a field study with professional programmers to investigate the use of Blue-Pencil during long code editing sessions. Blue-Pencil has been integrated with Visual Studio IntelliCode to power the IntelliCode refactorings feature. |
| Author | Soares, Gustavo Tiwari, Ashish Radhakrishna, Arjun Le, Vu Udupa, Abhishek Miltner, Anders Gulwani, Sumit Leung, Alan |
| Author_xml | – sequence: 1 givenname: Anders surname: Miltner fullname: Miltner, Anders organization: Princeton University, USA – sequence: 2 givenname: Sumit surname: Gulwani fullname: Gulwani, Sumit organization: Microsoft, USA – sequence: 3 givenname: Vu surname: Le fullname: Le, Vu organization: Microsoft, USA – sequence: 4 givenname: Alan surname: Leung fullname: Leung, Alan organization: Microsoft, USA – sequence: 5 givenname: Arjun surname: Radhakrishna fullname: Radhakrishna, Arjun organization: Microsoft, USA – sequence: 6 givenname: Gustavo surname: Soares fullname: Soares, Gustavo organization: Microsoft, USA – sequence: 7 givenname: Ashish surname: Tiwari fullname: Tiwari, Ashish organization: Microsoft, USA – sequence: 8 givenname: Abhishek surname: Udupa fullname: Udupa, Abhishek organization: Microsoft, USA |
| BookMark | eNpljztPwzAUhS1UJEqp-AveYAn4-vom9ogqXlKlLjBHeVwXo5Cg2Az596SiA4LpfMOno3POxaIfehbiEtQNgKFbxFxR7k7EUpuCMjAaFr_4TKxjfFdKgUNj0S3F9a6X6Y2l7yYZp37GGKIcvOQ2JBm_9nuOKQx9vBCnvuoir4-5Eq8P9y-bp2y7e3ze3G2zRpNNmbOcY2t1A-AUkVI1csFswTJr8gXaWrdIRhkiV0CRGzvvrj26mhpXI67E1U9vMw4xjuzLzzF8VONUgioPH8vjx9nM_phNSNVhbBqr0P3zvwHpclEi |
| CitedBy_id | crossref_primary_10_1145_3607185 crossref_primary_10_1145_3656460 crossref_primary_10_1109_TSE_2023_3275380 crossref_primary_10_1145_3643757 crossref_primary_10_1016_j_infsof_2021_106611 crossref_primary_10_1145_3622815 crossref_primary_10_1145_3728947 crossref_primary_10_1145_3527330 crossref_primary_10_1145_3563327 crossref_primary_10_1145_3485477 crossref_primary_10_1016_j_compind_2022_103721 crossref_primary_10_1145_3563350 crossref_primary_10_1145_3586034 crossref_primary_10_1145_3656429 crossref_primary_10_1145_3563302 crossref_primary_10_1145_3649838 crossref_primary_10_1145_3643755 |
| Cites_doi | 10.1109/ICSE.2009.5070531 10.1109/ICSE.2007.30 10.1145/1869459.1869486 10.1145/2737924.2737977 10.1145/2351676.2351726 10.1145/2351676.2351753 10.1109/ICSE.2017.44 10.1145/1328279.1328280 10.1145/2814270.2814310 10.1145/2393596.2393655 10.1145/1094811.1094840 10.1145/3187009.3177735 10.1145/2666356.2594333 10.1145/3276520 10.1145/2568225.2568317 10.1109/ICSE.2009.5070529 10.1145/1232420.1232424 10.1145/2702123.2702551 10.1109/ASE.2008.44 10.5555/2337223.2337250 10.1145/2737924.2738002 10.1145/1926385.1926423 10.1145/2594291.2594321 10.1007/978-3-642-31424-7_44 10.1109/TSE.2004.1265817 |
| ContentType | Journal Article |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3360569 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 29 |
| ExternalDocumentID | 10_1145_3360569 |
| GroupedDBID | AAKMM AAYFX AAYXX ACM AEFXT AEJOY AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS CITATION EBS GUFHI LHSKQ M~E OK1 ROL |
| ID | FETCH-LOGICAL-c258t-98e63d82c11905500b3e7ee818ee25f738b2d35404559717648145bf39b5c9b33 |
| ISICitedReferencesCount | 32 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000685204500028&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 2475-1421 |
| IngestDate | Tue Nov 18 21:33:42 EST 2025 Sat Nov 29 07:48:57 EST 2025 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | OOPSLA |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c258t-98e63d82c11905500b3e7ee818ee25f738b2d35404559717648145bf39b5c9b33 |
| OpenAccessLink | https://dl.acm.org/doi/pdf/10.1145/3360569 |
| PageCount | 29 |
| ParticipantIDs | crossref_primary_10_1145_3360569 crossref_citationtrail_10_1145_3360569 |
| PublicationCentury | 2000 |
| PublicationDate | 2019-10-01 |
| PublicationDateYYYYMMDD | 2019-10-01 |
| PublicationDate_xml | – month: 10 year: 2019 text: 2019-10-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationYear | 2019 |
| References | e_1_2_2_4_1 e_1_2_2_49_1 e_1_2_2_6_1 e_1_2_2_22_1 e_1_2_2_20_1 Yin Pengcheng (e_1_2_2_50_1) e_1_2_2_2_1 e_1_2_2_41_1 e_1_2_2_8_1 e_1_2_2_45_1 e_1_2_2_26_1 Nguyen H. A. (e_1_2_2_36_1) e_1_2_2_47_1 Word Microsoft (e_1_2_2_29_1) 2019 Lau Tessa (e_1_2_2_19_1) 2001 PowerPoint Microsoft (e_1_2_2_28_1) 2019 e_1_2_2_11_1 Meng Na (e_1_2_2_25_1) e_1_2_2_30_1 e_1_2_2_17_1 e_1_2_2_34_1 e_1_2_2_15_1 J. (e_1_2_2_12_1) 2019 Miller Robert C. (e_1_2_2_32_1) 2002 e_1_2_2_48_1 e_1_2_2_23_1 e_1_2_2_7_1 e_1_2_2_21_1 e_1_2_2_1_1 e_1_2_2_3_1 (e_1_2_2_13_1) 2019 Meng Na (e_1_2_2_24_1) e_1_2_2_42_1 e_1_2_2_9_1 e_1_2_2_44_1 e_1_2_2_27_1 e_1_2_2_46_1 Foundation Eclipse (e_1_2_2_5_1) 2019 e_1_2_2_14_1 e_1_2_2_37_1 e_1_2_2_39_1 e_1_2_2_10_1 Studio Visual (e_1_2_2_31_1) 2019 e_1_2_2_18_1 e_1_2_2_33_1 e_1_2_2_16_1 e_1_2_2_35_1 Park J. (e_1_2_2_40_1) Data Refsnes (e_1_2_2_43_1) 2019 |
| References_xml | – ident: e_1_2_2_15_1 doi: 10.1109/ICSE.2009.5070531 – ident: e_1_2_2_46_1 – ident: e_1_2_2_14_1 doi: 10.1109/ICSE.2007.30 – volume-title: 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE). 180–190 ident: e_1_2_2_36_1 – ident: e_1_2_2_37_1 doi: 10.1145/1869459.1869486 – volume-title: At https://products.office.com/en-us/word year: 2019 ident: e_1_2_2_29_1 – ident: e_1_2_2_7_1 doi: 10.1145/2737924.2737977 – volume-title: Myers year: 2002 ident: e_1_2_2_32_1 – ident: e_1_2_2_47_1 doi: 10.1145/2351676.2351726 – volume-title: At https://www.eclipse.org/ year: 2019 ident: e_1_2_2_5_1 – ident: e_1_2_2_2_1 doi: 10.1145/2351676.2351753 – ident: e_1_2_2_44_1 doi: 10.1109/ICSE.2017.44 – ident: e_1_2_2_4_1 – ident: e_1_2_2_33_1 doi: 10.1145/1328279.1328280 – ident: e_1_2_2_41_1 doi: 10.1145/2814270.2814310 – volume-title: 2012 9th IEEE Working Conference on Mining Software Repositories (MSR). 40–49 ident: e_1_2_2_40_1 – ident: e_1_2_2_3_1 – ident: e_1_2_2_17_1 – volume-title: At https://www.w3schools.com/xml/xpath_intro.asp year: 2019 ident: e_1_2_2_43_1 – ident: e_1_2_2_16_1 doi: 10.1145/2393596.2393655 – ident: e_1_2_2_22_1 – ident: e_1_2_2_30_1 – ident: e_1_2_2_23_1 doi: 10.1145/1094811.1094840 – ident: e_1_2_2_49_1 doi: 10.1145/3187009.3177735 – volume-title: At https://www.jetbrains.com/idea/ year: 2019 ident: e_1_2_2_12_1 – volume-title: Weld year: 2001 ident: e_1_2_2_19_1 – ident: e_1_2_2_20_1 doi: 10.1145/2666356.2594333 – ident: e_1_2_2_39_1 doi: 10.1145/3276520 – ident: e_1_2_2_35_1 doi: 10.1145/2568225.2568317 – ident: e_1_2_2_34_1 doi: 10.1109/ICSE.2009.5070529 – ident: e_1_2_2_8_1 doi: 10.1145/1232420.1232424 – ident: e_1_2_2_27_1 – ident: e_1_2_2_6_1 doi: 10.1145/2702123.2702551 – ident: e_1_2_2_1_1 doi: 10.1109/ASE.2008.44 – ident: e_1_2_2_9_1 doi: 10.5555/2337223.2337250 – ident: e_1_2_2_48_1 – ident: e_1_2_2_18_1 – volume-title: Proceedings of the 32Nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’11) ident: e_1_2_2_24_1 – ident: e_1_2_2_21_1 doi: 10.1145/2737924.2738002 – volume-title: At https://products.office.com/en-us/powerpoint year: 2019 ident: e_1_2_2_28_1 – volume-title: At https://www.visualstudio.com year: 2019 ident: e_1_2_2_31_1 – volume-title: International Conference on Learning Representations. https://openreview.net/forum?id=BJl6AjC5F7 ident: e_1_2_2_50_1 – volume-title: Proceedings of the 35th International Conference on Software Engineering (ICSE ’13) ident: e_1_2_2_25_1 – ident: e_1_2_2_11_1 doi: 10.1145/1926385.1926423 – volume-title: At https://www.jetbrains.com/resharper/ year: 2019 ident: e_1_2_2_13_1 – ident: e_1_2_2_42_1 doi: 10.1145/2594291.2594321 – ident: e_1_2_2_45_1 doi: 10.1007/978-3-642-31424-7_44 – ident: e_1_2_2_10_1 – ident: e_1_2_2_26_1 doi: 10.1109/TSE.2004.1265817 |
| SSID | ssj0001934839 |
| Score | 2.3479633 |
| Snippet | When working with a document, users often perform context-specific repetitive edits – changes to the document that are similar but specific to the contexts at... |
| SourceID | crossref |
| SourceType | Enrichment Source Index Database |
| StartPage | 1 |
| Title | On the fly synthesis of edit suggestions |
| Volume | 3 |
| WOSCitedRecordID | wos000685204500028&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3PT9swFLYK7MBlgwGCDZAPaJo0ZTSxndjHCIE4UFoJJnGrYsdGlUJAkDJ24W_nOXZNViYNDlyi1Hqumn5Pn997eT8Q2otVUaa8by03RSOaliYCDpSRKtNCcZ6m3PTbYRPZ6Sm_uBCjXs_MamHuq6yu-cODuHlXqGENwLals2-AO3wpLMA9gA5XgB2urwJ-6BIXTfXHtiOAW99yBE6p5sfd9NK-UApBOm-WjsIx1ormBwP7EsHnbl3ZaMIsrhlM8MGkanyxTN4WyIRMnmn12w2KAla6moS0mhOXUzt9_ux5Jq-8hvrgQyxCGpvnqIRmLIqpK3L-qf-x5kmWdHRpOBydneQd1ow7x6-Lf7wkdmp7YBAC3pcb7fJ36-y5Iy0kGrqyazb2GxfQUpIxYdlv8NiJxQlCeTt0Lvx2V19t9-77vR3DpWOBnK-gj951wLmDfBX1dP0ZfZqN5cCepdfQ92GNAXYMGoCDBuBrg60G4I4GrKNfR4fnB8eRH4gRqYTxJhJcp6TkiYrBjAPXsi-JzrQGm0vrhJmMcJmUNpBHrZ8YZynl8ADSECGZEpKQDbRYX9d6E2Gw2oUEZ5woyalOTMGYoRrECkVZweUW-jZ72rHy3eLt0JJqPPeXbiEcBG9cg5R5kS__F_mKlp_VaxstNrdTvYM-qPtmcne726L1BGKnVVg |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=On+the+fly+synthesis+of+edit+suggestions&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Miltner%2C+Anders&rft.au=Gulwani%2C+Sumit&rft.au=Le%2C+Vu&rft.au=Leung%2C+Alan&rft.date=2019-10-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=3&rft.issue=OOPSLA&rft.spage=1&rft.epage=29&rft_id=info:doi/10.1145%2F3360569&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3360569 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |