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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Proceedings of ACM on programming languages Ročník 3; číslo OOPSLA; s. 1 - 29
Hlavní autoři: Miltner, Anders, Gulwani, Sumit, Le, Vu, Leung, Alan, Radhakrishna, Arjun, Soares, Gustavo, Tiwari, Ashish, Udupa, Abhishek
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