Feedback-driven semi-supervised synthesis of program transformations

While editing code, it is common for developers to make multiple related repeated edits that are all instances of a more general program transformation. Since this process can be tedious and error-prone, we study the problem of automatically learning program transformations from past edits, which ca...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Proceedings of ACM on programming languages Ročník 4; číslo OOPSLA; s. 1 - 30
Hlavní autori: Gao, Xiang, Barke, Shraddha, Radhakrishna, Arjun, Soares, Gustavo, Gulwani, Sumit, Leung, Alan, Nagappan, Nachiappan, Tiwari, Ashish
Médium: Journal Article
Jazyk:English
Vydavateľské údaje: New York, NY, USA ACM 13.11.2020
Predmet:
ISSN:2475-1421, 2475-1421
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Abstract While editing code, it is common for developers to make multiple related repeated edits that are all instances of a more general program transformation. Since this process can be tedious and error-prone, we study the problem of automatically learning program transformations from past edits, which can then be used to predict future edits. We take a novel view of the problem as a semi-supervised learning problem: apart from the concrete edits that are instances of the general transformation, the learning procedure also exploits access to additional inputs (program subtrees) that are marked as positive or negative depending on whether the transformation applies on those inputs. We present a procedure to solve the semi-supervised transformation learning problem using anti-unification and programming-by-example synthesis technology. To eliminate reliance on access to marked additional inputs, we generalize the semi-supervised learning procedure to a feedback-driven procedure that also generates the marked additional inputs in an iterative loop. We apply these ideas to build and evaluate three applications that use different mechanisms for generating feedback. Compared to existing tools that learn program transformations from edits, our feedback-driven semi-supervised approach is vastly more effective in successfully predicting edits with significantly lesser amounts of past edit data.
AbstractList While editing code, it is common for developers to make multiple related repeated edits that are all instances of a more general program transformation. Since this process can be tedious and error-prone, we study the problem of automatically learning program transformations from past edits, which can then be used to predict future edits. We take a novel view of the problem as a semi-supervised learning problem: apart from the concrete edits that are instances of the general transformation, the learning procedure also exploits access to additional inputs (program subtrees) that are marked as positive or negative depending on whether the transformation applies on those inputs. We present a procedure to solve the semi-supervised transformation learning problem using anti-unification and programming-by-example synthesis technology. To eliminate reliance on access to marked additional inputs, we generalize the semi-supervised learning procedure to a feedback-driven procedure that also generates the marked additional inputs in an iterative loop. We apply these ideas to build and evaluate three applications that use different mechanisms for generating feedback. Compared to existing tools that learn program transformations from edits, our feedback-driven semi-supervised approach is vastly more effective in successfully predicting edits with significantly lesser amounts of past edit data.
ArticleNumber 219
Author Soares, Gustavo
Tiwari, Ashish
Gao, Xiang
Radhakrishna, Arjun
Barke, Shraddha
Gulwani, Sumit
Leung, Alan
Nagappan, Nachiappan
Author_xml – sequence: 1
  givenname: Xiang
  surname: Gao
  fullname: Gao, Xiang
  email: gaoxiang@comp.nus.edu.sg
  organization: National University of Singapore, Singapore
– sequence: 2
  givenname: Shraddha
  surname: Barke
  fullname: Barke, Shraddha
  email: sbarke@eng.ucsd.edu
  organization: University of California at San Diego, USA
– sequence: 3
  givenname: Arjun
  surname: Radhakrishna
  fullname: Radhakrishna, Arjun
  email: arradha@microsoft.com
  organization: Microsoft, USA
– sequence: 4
  givenname: Gustavo
  surname: Soares
  fullname: Soares, Gustavo
  email: gustavo.soares@microsoft.com
  organization: Microsoft, USA
– sequence: 5
  givenname: Sumit
  surname: Gulwani
  fullname: Gulwani, Sumit
  email: sumitg@microsoft.com
  organization: Microsoft, USA
– sequence: 6
  givenname: Alan
  surname: Leung
  fullname: Leung, Alan
  email: alleu@microsoft.com
  organization: Microsoft, USA
– sequence: 7
  givenname: Nachiappan
  surname: Nagappan
  fullname: Nagappan, Nachiappan
  email: nachin@microsoft.com
  organization: Microsoft Research, USA
– sequence: 8
  givenname: Ashish
  surname: Tiwari
  fullname: Tiwari, Ashish
  email: ashish.tiwari@microsoft.com
  organization: Microsoft, USA
BookMark eNptj71PwzAUxC1UJEqp2JmyMRmeHX8kIyoUkCqxwBw5iQ2Gxo78QqX-9wRaEEJM93Tvp9PdMZmEGCwhpwwuGBPyMhe84IU-IFMutKRMcDb5dR-ROeIrALAyF0VeTsn10tq2Ns0bbZPf2JCh7TzF996mjUfbZrgNw4tFj1l0WZ_iczJdNiQT0MXUmcHHgCfk0Jk12vleZ-RpefO4uKOrh9v7xdWKGq71QLUta2hBKcEAZFkr2UjQyqka6laVkBfCMe2Y4UoryYVUljNwxWg7BYblM3K-y21SREzWVX3ynUnbikH1ub_a7x9J-ods_PBVdqzu1__wZzveNN1P6PfzA06eZPc
CitedBy_id crossref_primary_10_1145_3607185
crossref_primary_10_1109_TSE_2023_3269500
crossref_primary_10_1109_TSE_2022_3218859
crossref_primary_10_1016_j_infsof_2021_106611
crossref_primary_10_1145_3563302
crossref_primary_10_1145_3485538
crossref_primary_10_1145_3527330
crossref_primary_10_1109_TSE_2025_3565387
crossref_primary_10_1145_3485477
Cites_doi 10.1007/978-3-642-22110-1_20
10.1007/978-3-642-39799-8_68
10.1007/978-3-319-21668-3_12
10.1145/357084.357090
10.1145/1706299.1706338
10.14778/2977797.2977807
10.1145/2594291.2594321
10.1007/s11219-009-9074-y
10.1109/ICSE.2007.30
10.1109/ICSE.2012.6227190
10.1145/2807442.2807459
10.1145/1065010.1065045
10.1145/2025113.2025153
10.1007/978-3-319-21668-3_10
10.1109/ASE.2013.6693078
10.1109/TSE.2004.1265817
10.1145/2737924.2737977
10.5555/2486788.2486855
10.1109/FMCAD.2013.6679385
10.1145/75277.75293
10.1145/2837614.2837629
10.1145/3360585
10.1145/3187009.3177735
10.1145/2950290.2983955
10.1145/3385412.3386027
10.1109/ICSE.2017.44
10.1145/2254064.2254098
10.1145/2814270.2814310
10.1145/1646353.1646374
10.1007/978-3-319-13338-6_7
10.1145/1806799.1806833
10.1145/2351676.2351726
10.1145/1168857.1168907
10.1090/S0002-9947-1969-0280205-0
10.1145/1375581.1375599
10.1145/1250734.1250754
10.1145/1926385.1926423
10.1007/978-3-662-54577-5_18
10.1145/2491956.2462192
10.1145/2393596.2393655
ContentType Journal Article
Copyright Owner/Author
Copyright_xml – notice: Owner/Author
DBID AAYXX
CITATION
DOI 10.1145/3428287
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 30
ExternalDocumentID 10_1145_3428287
3428287
GroupedDBID AAKMM
AAYFX
ACM
ADPZR
AIKLT
ALMA_UNASSIGNED_HOLDINGS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
AEFXT
AEJOY
AKRVB
CITATION
ID FETCH-LOGICAL-a277t-7e9b0d066410059b65c5076f6b0bd690384f17f1a267652456e210f884ff60a13
ISICitedReferencesCount 13
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000685203900096&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 Sat Nov 29 07:49:08 EST 2025
Tue Nov 18 21:05:27 EST 2025
Fri Feb 21 01:11:52 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue OOPSLA
Keywords Programming by Example
Program synthesis
Refactoring
Program transformation
Language English
License This work is licensed under a Creative Commons Attribution International 4.0 License.
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a277t-7e9b0d066410059b65c5076f6b0bd690384f17f1a267652456e210f884ff60a13
OpenAccessLink https://dl.acm.org/doi/10.1145/3428287
PageCount 30
ParticipantIDs crossref_primary_10_1145_3428287
crossref_citationtrail_10_1145_3428287
acm_primary_3428287
PublicationCentury 2000
PublicationDate 2020-11-13
PublicationDateYYYYMMDD 2020-11-13
PublicationDate_xml – month: 11
  year: 2020
  text: 2020-11-13
  day: 13
PublicationDecade 2020
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationTitle Proceedings of ACM on programming languages
PublicationTitleAbbrev ACM PACMPL
PublicationYear 2020
Publisher ACM
Publisher_xml – name: ACM
References S. Jha, S. Gulwani, S. A. Seshia, and A. Tiwari. Oracle-guided component-based program synthesis. In 2010 ACM/IEEE 32nd International Conference on Software Engineering, volume 1, pages 215-224. IEEE, 2010.
D. Perelman, S. Gulwani, T. Ball, and D. Grossman. Type-directed completion of partial expressions. In Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation, pages 275-286, 2012.
A. Reynolds, M. Deters, V. Kuncak, C. Tinelli, and C. Barrett. Counterexample-guided quantifier instantiation for synthesis in smt. In International Conference on Computer Aided Verification, pages 198-216. Springer, 2015.
J. K. Feser, S. Chaudhuri, and I. Dillig. Synthesizing data structure transformations from input-output examples. In D. Grove and S. Blackburn, editors, Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, Portland, OR, USA, June 15-17, 2015, pages 229-239. ACM, 2015. doi: 10.1145/2737924.2737977. URL https://doi.org/10.1145/2737924.2737977. 10.1145/2737924.2737977
H. A. Nguyen, A. T. Nguyen, T. T. Nguyen, T. N. Nguyen, and H. Rajan. A study of repetitiveness of code changes in software evolution. In 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 180-190. IEEE, 2013.
O. Polozov and S. Gulwani. Flashmeta: a framework for inductive program synthesis. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 107-126, 2015.
A. Solar-Lezama, C. G. Jones, and R. Bodík. Sketching concurrent data structures. In R. Gupta and S. P. Amarasinghe, editors, Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, Tucson, AZ, USA, June 7-13, 2008, pages 136-148. ACM, 2008. doi: 10.1145/1375581.1375599. URL https://doi.org/10.1145/1375581.1375599. 10.1145/1375581.1375599
P. Cerný, T. A. Henzinger, A. Radhakrishna, L. Ryzhyk, and T. Tarrach. Eficient synthesis for concurrency by semanticspreserving transformations. In N. Sharygina and H. Veith, editors, 25th International Conference on Computer Aided Verification (CAV), volume 8044 of Lecture Notes in Computer Science, pages 951-967. Springer, 2013. doi: 10.1007/978-3-642-39799-8_68. URL https://doi.org/10.1007/978-3-642-39799-8_68. 10.1007/978-3-642-39799-8_68
N. Meng, M. Kim, and K. S. McKinley. Lase: locating and applying systematic edits by learning from examples. In 2013 35th International Conference on Software Engineering (ICSE), pages 502-511. IEEE, 2013.
V. Raychev, M. Vechev, and E. Yahav. Code completion with statistical language models. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 419-428, 2014.
R. Rolim, G. Soares, R. Gheyi, T. Barik, and L. D'Antoni. Learning quick fixes from code repositories, 2018.
T. Mens and T. Tourwe. A survey of software refactoring. IEEE Transactions on Software Engineering, 30 ( 2 ): 126-139, Feb 2004. ISSN 0098-5589. doi: 10.1109/TSE. 2004. 1265817.
R. Alur, M. M. K. Martin, M. Raghothaman, C. Stergiou, S. Tripakis, and A. Udupa. Synthesizing finite-state protocols from scenarios and requirements. In E. Yahav, editor, 10th International Haifa Verification Conference, volume 8855 of Lecture Notes in Computer Science, pages 75-91. Springer, 2014. doi: 10.1007/978-3-319-13338-6_7. URL https: //doi.org/10.1007/978-3-319-13338-6_7. 10.1007/978-3-319-13338-6_7
J. Bader, A. Scott, M. Pradel, and S. Chandra. Getafix: Learning to fix bugs automatically. Proc. ACM Program. Lang., 3 (OOPSLA), Oct. 2019. doi: 10.1145/3360585. URL https://doi.org/10.1145/3360585. 10.1145/3360585
A. Miltner, S. Gulwani, V. Le, A. Leung, A. Radhakrishna, G. Soares, A. Tiwari, and A. Udupa. On the fly synthesis of edit suggestions. Proceedings of the ACM on Programming Languages, 3 (OOPSLA): 1-29, 2019.
A. Solar-Lezama, R. M. Rabbah, R. Bodík, and K. Ebcioglu. Programming by sketching for bit-streaming programs. In V. Sarkar and M. W. Hall, editors, Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation, Chicago, IL, USA, June 12-15, 2005, pages 281-294. ACM, 2005. doi: 10.1145/1065010.1065045. URL https://doi.org/10.1145/1065010.1065045. 10.1145/1065010.1065045
W. S. Evans, C. W. Fraser, and F. Ma. Clone detection via structural abstraction. Software Quality Journal, 17 ( 4 ): 309-330, 2009.
S. Gulwani. Automating string processing in spreadsheets using input-output examples. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '11). ACM New York, NY, USA, 2011.
N. Yaghmazadeh, X. Wang, and I. Dillig. Automated migration of hierarchical data to relational tables using programmingby-example. Proc. VLDB Endow., 11 ( 5 ): 580-593, 2018. doi: 10.1145/3187009.3177735. URL http://www.vldb.org/pvldb/ vol11/p580-yaghmazadeh.pdf.
M. Kim, T. Zimmermann, and N. Nagappan. A field study of refactoring challenges and benefits. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE '12, pages 50 : 1-50 : 11, New York, NY, USA, 2012. ACM. ISBN 978-1-4503-1614-9. doi: 10.1145/2393596.2393655. URL http://doi.acm.org/10.1145/2393596.2393655. 10.1145/2393596.2393655
R. Singh. Blinkfill: Semi-supervised programming by example for syntactic string transformations. Proc. VLDB Endow., 9 ( 10 ): 816-827, June 2016. ISSN 2150-8097. doi: 10.14778/2977797.2977807. URL https://doi.org/10.14778/2977797.2977807. 10.14778/2977797.2977807
R. Singh and A. Solar-Lezama. Synthesizing data structure manipulations from storyboards. In T. Gyimóthy and A. Zeller, editors, SIGSOFT/FSE'11 19th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-19) and ESEC'11: 13th European Software Engineering Conference (ESEC-13), Szeged, Hungary, September 5-9, 2011, pages 289-299. ACM, 2011. doi: 10.1145/2025113.2025153. URL https://doi.org/10.1145/2025113.2025153. 10.1145/2025113.2025153
S. An, R. Singh, S. Misailovic, and R. Samanta. Augmented example-based synthesis using relational perturbation properties. Proceedings of the ACM on Programming Languages, 4 (POPL): 1-24, 2019.
W. F. Opdyke. Refactoring Object-oriented Frameworks. PhD thesis, Champaign, IL, USA, 1992. UMI Order No. GAX93-05645.
JetBrains. ReSharper. At https://www.jetbrains.com/resharper/, 2020b.
R. Alur, P. Černy`, and A. Radhakrishna. Synthesis through unification. In International Conference on Computer Aided Verification, pages 163-179. Springer, 2015.
JetBrains. IntelliJ. At https://www.jetbrains.com/idea/, 2020a.
P. Cerný, K. Chatterjee, T. A. Henzinger, A. Radhakrishna, and R. Singh. Quantitative synthesis for concurrent programs. In G. Gopalakrishnan and S. Qadeer, editors, 23rd International Conference on Computer Aided Verification (CAV), volume 6806 of Lecture Notes in Computer Science, pages 243-259. Springer, 2011. doi: 10.1007/978-3-642-22110-1_20. URL https://doi.org/10.1007/978-3-642-22110-1_20. 10.1007/978-3-642-22110-1_20
R. Alur, A. Radhakrishna, and A. Udupa. Scaling enumerative program synthesis via divide and conquer. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 319-336. Springer, 2017.
L. Jiang, G. Misherghi, Z. Su, and S. Glondu. Deckard: Scalable and accurate tree-based detection of code clones. In 29th International Conference on Software Engineering (ICSE'07), pages 96-105. IEEE, 2007.
R. Rolim, G. Soares, L. D'Antoni, O. Polozov, S. Gulwani, R. Gheyi, R. Suzuki, and B. Hartmann. Learning syntactic program transformations from examples. In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE), pages 404-415. IEEE, 2017.
M. Mayer, G. Soares, M. Grechkin, V. Le, M. Marron, O. Polozov, R. Singh, B. Zorn, and S. Gulwani. User interaction models for disambiguation in programming by example. In Proceedings of the 28th Annual ACM Symposium on User Interface Software & Technology, pages 291-301, 2015.
A. Pnueli and R. Rosner. On the synthesis of a reactive module. In Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 179-190, 1989.
H. Zhang, A. Jain, G. Khandelwal, C. Kaushik, S. Ge, and W. Hu. Bing developer assistant: improving developer productivity by recommending sample code. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 956-961, 2016.
M. T. Vechev, E. Yahav, and G. Yorsh. Abstraction-guided synthesis of synchronization. In M. V. Hermenegildo and J. Palsberg, editors, Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2010, Madrid, Spain, January 17-23, 2010, pages 327-338. ACM, 2010. doi: 10.1145/1706299.1706338. URL https: //doi.org/10.1145/1706299.1706338. 10.1145/1706299.1706338
N. Meng, M. Kim, and K. S. McKinley. Systematic editing: generating program transformations from an example. ACM SIGPLAN Notices, 46 ( 6 ): 329-342, 2011.
A. Udupa, A. Raghavan, J. V. Deshmukh, S. Mador-Haim, M. M. Martin, and R. Alur. Transit: specifying protocols with concolic snippets. ACM SIGPLAN Notices, 48 ( 6 ): 287-296, 2013.
X. J. Zhu. Semi-supervised learning literature survey. Technical report, University of Wisconsin-Madison Department of Computer Sciences, 2005.
Eclipse Foundation. Eclipse. At https://www.eclipse.org/, 2020.
X. Zhu and A. B. Goldberg. Introduction to semi-supervised learning. Synthesis lectures on artificial intelligence and machine learning, 3 ( 1 ): 1-130, 2009.
A. Bessey, K. Block, B. Chelf, A. Chou, B. Fulton, S. Hallem, C. Henri-Gros, A. Kamsky, S. McPeak, and D. Engler. A few billion lines of code later. Commun. ACM, 53 ( 2 ), 2010. ISSN 0001-0782. doi: 10.1145/1646353.1646374. URL https://doi.org/10.1145/1646353.1646374. 10.1145/1646353.1646374
A. Solar-Lezama, L. Tancau, R. Bodik, S. Seshia, and V. Saraswat. Combinatorial sketching for fin
e_1_2_2_4_1
e_1_2_2_24_1
e_1_2_2_49_1
e_1_2_2_6_1
e_1_2_2_22_1
Udupa A. (e_1_2_2_50_1) 2013
e_1_2_2_20_1
e_1_2_2_2_1
e_1_2_2_43_1
e_1_2_2_8_1
e_1_2_2_28_1
e_1_2_2_45_1
e_1_2_2_47_1
e_1_2_2_13_1
e_1_2_2_38_1
Miltner A. (e_1_2_2_31_1) 2019; 3
Studio Visual (e_1_2_2_29_1) 2019
e_1_2_2_51_1
e_1_2_2_53_1
e_1_2_2_17_1
e_1_2_2_55_1
e_1_2_2_15_1
e_1_2_2_36_1
Zhu X. (e_1_2_2_56_1) 2009
Le V. (e_1_2_2_23_1) 2017
(e_1_2_2_30_1) 2020
e_1_2_2_25_1
e_1_2_2_48_1
e_1_2_2_7_1
e_1_2_2_21_1
e_1_2_2_1_1
Yessenov K. (e_1_2_2_54_1) 2011
e_1_2_2_3_1
e_1_2_2_40_1
An S. (e_1_2_2_5_1) 2019; 4
Mitchell T. M. (e_1_2_2_32_1) 1982
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
Meng N. (e_1_2_2_26_1) 2011
(e_1_2_2_19_1) 2020
e_1_2_2_14_1
e_1_2_2_37_1
e_1_2_2_12_1
e_1_2_2_39_1
e_1_2_2_10_1
e_1_2_2_52_1
Foundation Eclipse (e_1_2_2_11_1) 2020
e_1_2_2_33_1
e_1_2_2_16_1
e_1_2_2_35_1
J. (e_1_2_2_18_1) 2020
Rolim R. (e_1_2_2_41_1) 2018
Zhu X. J. (e_1_2_2_57_1) 2005
References_xml – reference: N. Meng, M. Kim, and K. S. McKinley. Lase: locating and applying systematic edits by learning from examples. In 2013 35th International Conference on Software Engineering (ICSE), pages 502-511. IEEE, 2013.
– reference: Microsoft. Visual Studio. At https://www.visualstudio.com, 2019.
– reference: R. Singh. Blinkfill: Semi-supervised programming by example for syntactic string transformations. Proc. VLDB Endow., 9 ( 10 ): 816-827, June 2016. ISSN 2150-8097. doi: 10.14778/2977797.2977807. URL https://doi.org/10.14778/2977797.2977807. 10.14778/2977797.2977807
– reference: W. S. Evans, C. W. Fraser, and F. Ma. Clone detection via structural abstraction. Software Quality Journal, 17 ( 4 ): 309-330, 2009.
– reference: Microsoft. Intellicode suggestions. At https://docs.microsoft.com/en-us/visualstudio/intellicode/intellicode-suggestions, 2020.
– reference: J. Frankle, P. Osera, D. Walker, and S. Zdancewic. Example-directed synthesis: a type-theoretic interpretation. In R. Bodík and R. Majumdar, editors, Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2016, St. Petersburg, FL, USA, January 20-22, 2016, pages 802-815. ACM, 2016. doi: 10.1145/2837614. 2837629. URL https://doi.org/10.1145/2837614.2837629. 10.1145/2837614.2837629
– reference: N. Meng, M. Kim, and K. S. McKinley. Systematic editing: generating program transformations from an example. ACM SIGPLAN Notices, 46 ( 6 ): 329-342, 2011.
– reference: A. Pnueli and R. Rosner. On the synthesis of a reactive module. In Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 179-190, 1989.
– reference: A. Solar-Lezama, C. G. Jones, and R. Bodík. Sketching concurrent data structures. In R. Gupta and S. P. Amarasinghe, editors, Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, Tucson, AZ, USA, June 7-13, 2008, pages 136-148. ACM, 2008. doi: 10.1145/1375581.1375599. URL https://doi.org/10.1145/1375581.1375599. 10.1145/1375581.1375599
– reference: R. Alur, P. Černy`, and A. Radhakrishna. Synthesis through unification. In International Conference on Computer Aided Verification, pages 163-179. Springer, 2015.
– reference: T. Mens and T. Tourwe. A survey of software refactoring. IEEE Transactions on Software Engineering, 30 ( 2 ): 126-139, Feb 2004. ISSN 0098-5589. doi: 10.1109/TSE. 2004. 1265817.
– reference: S. Jha, S. Gulwani, S. A. Seshia, and A. Tiwari. Oracle-guided component-based program synthesis. In 2010 ACM/IEEE 32nd International Conference on Software Engineering, volume 1, pages 215-224. IEEE, 2010.
– reference: V. Le, D. Perelman, O. Polozov, M. Raza, A. Udupa, and S. Gulwani. Interactive program synthesis. arXiv preprint arXiv:1703.03539, 2017.
– reference: X. Zhu and A. B. Goldberg. Introduction to semi-supervised learning. Synthesis lectures on artificial intelligence and machine learning, 3 ( 1 ): 1-130, 2009.
– reference: X. J. Zhu. Semi-supervised learning literature survey. Technical report, University of Wisconsin-Madison Department of Computer Sciences, 2005.
– reference: R. Alur, R. Bodik, G. Juniwal, M. M. K. Martin, M. Raghothaman, S. A. Seshia, R. Singh, A. Solar-Lezama, E. Torlak, and A. Udupa. Syntax-guided synthesis. In 2013 Formal Methods in Computer-Aided Design, pages 1-8, 2013.
– reference: R. Singh and A. Solar-Lezama. Synthesizing data structure manipulations from storyboards. In T. Gyimóthy and A. Zeller, editors, SIGSOFT/FSE'11 19th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-19) and ESEC'11: 13th European Software Engineering Conference (ESEC-13), Szeged, Hungary, September 5-9, 2011, pages 289-299. ACM, 2011. doi: 10.1145/2025113.2025153. URL https://doi.org/10.1145/2025113.2025153. 10.1145/2025113.2025153
– reference: S. An, R. Singh, S. Misailovic, and R. Samanta. Augmented example-based synthesis using relational perturbation properties. Proceedings of the ACM on Programming Languages, 4 (POPL): 1-24, 2019.
– reference: R. Alur, M. M. K. Martin, M. Raghothaman, C. Stergiou, S. Tripakis, and A. Udupa. Synthesizing finite-state protocols from scenarios and requirements. In E. Yahav, editor, 10th International Haifa Verification Conference, volume 8855 of Lecture Notes in Computer Science, pages 75-91. Springer, 2014. doi: 10.1007/978-3-319-13338-6_7. URL https: //doi.org/10.1007/978-3-319-13338-6_7. 10.1007/978-3-319-13338-6_7
– reference: JetBrains. IntelliJ. At https://www.jetbrains.com/idea/, 2020a.
– reference: V. Raychev, M. Vechev, and E. Yahav. Code completion with statistical language models. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 419-428, 2014.
– reference: A. Reynolds, M. Deters, V. Kuncak, C. Tinelli, and C. Barrett. Counterexample-guided quantifier instantiation for synthesis in smt. In International Conference on Computer Aided Verification, pages 198-216. Springer, 2015.
– reference: H. Zhang, A. Jain, G. Khandelwal, C. Kaushik, S. Ge, and W. Hu. Bing developer assistant: improving developer productivity by recommending sample code. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 956-961, 2016.
– reference: H. A. Nguyen, A. T. Nguyen, T. T. Nguyen, T. N. Nguyen, and H. Rajan. A study of repetitiveness of code changes in software evolution. In 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 180-190. IEEE, 2013.
– reference: J. K. Feser, S. Chaudhuri, and I. Dillig. Synthesizing data structure transformations from input-output examples. In D. Grove and S. Blackburn, editors, Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, Portland, OR, USA, June 15-17, 2015, pages 229-239. ACM, 2015. doi: 10.1145/2737924.2737977. URL https://doi.org/10.1145/2737924.2737977. 10.1145/2737924.2737977
– reference: A. Solar-Lezama, L. Tancau, R. Bodík, S. A. Seshia, and V. A. Saraswat. Combinatorial sketching for finite programs. In J. P. Shen and M. Martonosi, editors, Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2006, San Jose, CA, USA, October 21-25, 2006, pages 404-415. ACM, 2006. doi: 10.1145/1168857.1168907. URL https://doi.org/10.1145/1168857.1168907. 10.1145/1168857.1168907
– reference: R. Alur, A. Radhakrishna, and A. Udupa. Scaling enumerative program synthesis via divide and conquer. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 319-336. Springer, 2017.
– reference: P. Cerný, T. A. Henzinger, A. Radhakrishna, L. Ryzhyk, and T. Tarrach. Eficient synthesis for concurrency by semanticspreserving transformations. In N. Sharygina and H. Veith, editors, 25th International Conference on Computer Aided Verification (CAV), volume 8044 of Lecture Notes in Computer Science, pages 951-967. Springer, 2013. doi: 10.1007/978-3-642-39799-8_68. URL https://doi.org/10.1007/978-3-642-39799-8_68. 10.1007/978-3-642-39799-8_68
– reference: M. T. Vechev, E. Yahav, and G. Yorsh. Abstraction-guided synthesis of synchronization. In M. V. Hermenegildo and J. Palsberg, editors, Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2010, Madrid, Spain, January 17-23, 2010, pages 327-338. ACM, 2010. doi: 10.1145/1706299.1706338. URL https: //doi.org/10.1145/1706299.1706338. 10.1145/1706299.1706338
– reference: T. Gvero, V. Kuncak, I. Kuraj, and R. Piskac. Complete completion using types and weights. In Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation, pages 27-38, 2013.
– reference: M. Mayer, G. Soares, M. Grechkin, V. Le, M. Marron, O. Polozov, R. Singh, B. Zorn, and S. Gulwani. User interaction models for disambiguation in programming by example. In Proceedings of the 28th Annual ACM Symposium on User Interface Software & Technology, pages 291-301, 2015.
– reference: K. Yessenov, Z. Xu, and A. Solar-Lezama. Data-driven synthesis for object-oriented frameworks. ACM SIGPLAN Notices, 46 ( 10 ): 65-82, 2011.
– reference: T. M. Mitchell. Generalization as search. Artificial intelligence, 18 ( 2 ): 203-226, 1982.
– reference: A. Udupa, A. Raghavan, J. V. Deshmukh, S. Mador-Haim, M. M. Martin, and R. Alur. Transit: specifying protocols with concolic snippets. ACM SIGPLAN Notices, 48 ( 6 ): 287-296, 2013.
– reference: R. Rolim, G. Soares, L. D'Antoni, O. Polozov, S. Gulwani, R. Gheyi, R. Suzuki, and B. Hartmann. Learning syntactic program transformations from examples. In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE), pages 404-415. IEEE, 2017.
– reference: O. Polozov and S. Gulwani. Flashmeta: a framework for inductive program synthesis. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 107-126, 2015.
– reference: K. Huang, X. Qiu, P. Shen, and Y. Wang. Reconciling enumerative and deductive program synthesis. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 1159-1174, 2020.
– reference: Eclipse Foundation. Eclipse. At https://www.eclipse.org/, 2020.
– reference: JetBrains. ReSharper. At https://www.jetbrains.com/resharper/, 2020b.
– reference: A. Bessey, K. Block, B. Chelf, A. Chou, B. Fulton, S. Hallem, C. Henri-Gros, A. Kamsky, S. McPeak, and D. Engler. A few billion lines of code later. Commun. ACM, 53 ( 2 ), 2010. ISSN 0001-0782. doi: 10.1145/1646353.1646374. URL https://doi.org/10.1145/1646353.1646374. 10.1145/1646353.1646374
– reference: A. Solar-Lezama, R. M. Rabbah, R. Bodík, and K. Ebcioglu. Programming by sketching for bit-streaming programs. In V. Sarkar and M. W. Hall, editors, Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation, Chicago, IL, USA, June 12-15, 2005, pages 281-294. ACM, 2005. doi: 10.1145/1065010.1065045. URL https://doi.org/10.1145/1065010.1065045. 10.1145/1065010.1065045
– reference: N. Yaghmazadeh, X. Wang, and I. Dillig. Automated migration of hierarchical data to relational tables using programmingby-example. Proc. VLDB Endow., 11 ( 5 ): 580-593, 2018. doi: 10.1145/3187009.3177735. URL http://www.vldb.org/pvldb/ vol11/p580-yaghmazadeh.pdf.
– reference: S. Gulwani. Automating string processing in spreadsheets using input-output examples. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '11). ACM New York, NY, USA, 2011.
– reference: A. Solar-Lezama, L. Tancau, R. Bodik, S. Seshia, and V. Saraswat. Combinatorial sketching for finite programs. In Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, pages 404-415, 2006.
– reference: R. Rolim, G. Soares, R. Gheyi, T. Barik, and L. D'Antoni. Learning quick fixes from code repositories, 2018.
– reference: A. Solar-Lezama, G. Arnold, L. Tancau, R. Bodík, V. A. Saraswat, and S. A. Seshia. Sketching stencils. In J. Ferrante and K. S. McKinley, editors, Proceedings of the ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation, San Diego, California, USA, June 10-13, 2007, pages 167-178. ACM, 2007. doi: 10.1145/1250734.1250754. URL https://doi.org/10.1145/1250734.1250754. 10.1145/1250734.1250754
– reference: J. Bader, A. Scott, M. Pradel, and S. Chandra. Getafix: Learning to fix bugs automatically. Proc. ACM Program. Lang., 3 (OOPSLA), Oct. 2019. doi: 10.1145/3360585. URL https://doi.org/10.1145/3360585. 10.1145/3360585
– reference: P. Cerný, K. Chatterjee, T. A. Henzinger, A. Radhakrishna, and R. Singh. Quantitative synthesis for concurrent programs. In G. Gopalakrishnan and S. Qadeer, editors, 23rd International Conference on Computer Aided Verification (CAV), volume 6806 of Lecture Notes in Computer Science, pages 243-259. Springer, 2011. doi: 10.1007/978-3-642-22110-1_20. URL https://doi.org/10.1007/978-3-642-22110-1_20. 10.1007/978-3-642-22110-1_20
– reference: L. Jiang, G. Misherghi, Z. Su, and S. Glondu. Deckard: Scalable and accurate tree-based detection of code clones. In 29th International Conference on Software Engineering (ICSE'07), pages 96-105. IEEE, 2007.
– reference: F. Steimann and J. von Pilgrim. Refactorings without names. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, ASE 2012, pages 290-293, New York, NY, USA, 2012. ACM. ISBN 978-1-4503-1204-2. doi: 10.1145/2351676.2351726. URL http://doi.acm.org/10.1145/2351676.2351726. 10.1145/2351676.2351726
– reference: A. Miltner, S. Gulwani, V. Le, A. Leung, A. Radhakrishna, G. Soares, A. Tiwari, and A. Udupa. On the fly synthesis of edit suggestions. Proceedings of the ACM on Programming Languages, 3 (OOPSLA): 1-29, 2019.
– reference: W. F. Opdyke. Refactoring Object-oriented Frameworks. PhD thesis, Champaign, IL, USA, 1992. UMI Order No. GAX93-05645.
– reference: D. Perelman, S. Gulwani, T. Ball, and D. Grossman. Type-directed completion of partial expressions. In Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation, pages 275-286, 2012.
– reference: J. R. Buchi and L. H. Landweber. Solving sequential conditions by finite-state strategies. Transactions of the American Mathematical Society, 138 : 295-311, 1969. ISSN 00029947. URL http://www.jstor.org/stable/1994916.
– reference: Z. Manna and R. J. Waldinger. A deductive approach to program synthesis. ACM Transactions on Programming Languages and Systems, 2 ( 1 ): 90-121, 1980. doi: 10.1145/357084.357090. URL https://doi.org/10.1145/357084.357090. 10.1145/357084.357090
– reference: M. Vakilian, N. Chen, S. Negara, B. A. Rajkumar, B. P. Bailey, and R. E. Johnson. Use, disuse, and misuse of automated refactorings. In 2012 34th International Conference on Software Engineering (ICSE), pages 233-243. IEEE, 2012.
– reference: M. Kim, T. Zimmermann, and N. Nagappan. A field study of refactoring challenges and benefits. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE '12, pages 50 : 1-50 : 11, New York, NY, USA, 2012. ACM. ISBN 978-1-4503-1614-9. doi: 10.1145/2393596.2393655. URL http://doi.acm.org/10.1145/2393596.2393655. 10.1145/2393596.2393655
– ident: e_1_2_2_9_1
  doi: 10.1007/978-3-642-22110-1_20
– ident: e_1_2_2_10_1
  doi: 10.1007/978-3-642-39799-8_68
– ident: e_1_2_2_39_1
  doi: 10.1007/978-3-319-21668-3_12
– volume-title: Interactive program synthesis. arXiv preprint arXiv:1703.03539
  year: 2017
  ident: e_1_2_2_23_1
– ident: e_1_2_2_24_1
  doi: 10.1145/357084.357090
– ident: e_1_2_2_52_1
  doi: 10.1145/1706299.1706338
– ident: e_1_2_2_42_1
  doi: 10.14778/2977797.2977807
– ident: e_1_2_2_38_1
  doi: 10.1145/2594291.2594321
– ident: e_1_2_2_12_1
  doi: 10.1007/s11219-009-9074-y
– ident: e_1_2_2_21_1
  doi: 10.1109/ICSE.2007.30
– ident: e_1_2_2_51_1
  doi: 10.1109/ICSE.2012.6227190
– ident: e_1_2_2_25_1
  doi: 10.1145/2807442.2807459
– ident: e_1_2_2_44_1
  doi: 10.1145/1065010.1065045
– ident: e_1_2_2_43_1
  doi: 10.1145/2025113.2025153
– volume-title: At https://www.eclipse.org/
  year: 2020
  ident: e_1_2_2_11_1
– ident: e_1_2_2_3_1
  doi: 10.1007/978-3-319-21668-3_10
– volume: 4
  start-page: 1
  year: 2019
  ident: e_1_2_2_5_1
  publication-title: Augmented example-based synthesis using relational perturbation properties. Proceedings of the ACM on Programming Languages
– ident: e_1_2_2_33_1
  doi: 10.1109/ASE.2013.6693078
– ident: e_1_2_2_28_1
  doi: 10.1109/TSE.2004.1265817
– volume: 3
  start-page: 1
  year: 2019
  ident: e_1_2_2_31_1
  publication-title: On the fly synthesis of edit suggestions. Proceedings of the ACM on Programming Languages
– ident: e_1_2_2_13_1
  doi: 10.1145/2737924.2737977
– ident: e_1_2_2_27_1
  doi: 10.5555/2486788.2486855
– ident: e_1_2_2_1_1
  doi: 10.1109/FMCAD.2013.6679385
– ident: e_1_2_2_36_1
  doi: 10.1145/75277.75293
– volume-title: Generalization as search. Artificial intelligence, 18 ( 2 ): 203-226
  year: 1982
  ident: e_1_2_2_32_1
– ident: e_1_2_2_14_1
  doi: 10.1145/2837614.2837629
– ident: e_1_2_2_6_1
  doi: 10.1145/3360585
– ident: e_1_2_2_53_1
  doi: 10.1145/3187009.3177735
– volume-title: Data-driven synthesis for object-oriented frameworks. ACM SIGPLAN Notices, 46 ( 10 ): 65-82
  year: 2011
  ident: e_1_2_2_54_1
– ident: e_1_2_2_55_1
  doi: 10.1145/2950290.2983955
– ident: e_1_2_2_17_1
  doi: 10.1145/3385412.3386027
– ident: e_1_2_2_40_1
  doi: 10.1109/ICSE.2017.44
– volume-title: Technical report
  year: 2005
  ident: e_1_2_2_57_1
– volume-title: Transit: specifying protocols with concolic snippets. ACM SIGPLAN Notices, 48 ( 6 ): 287-296
  year: 2013
  ident: e_1_2_2_50_1
– ident: e_1_2_2_35_1
  doi: 10.1145/2254064.2254098
– ident: e_1_2_2_37_1
  doi: 10.1145/2814270.2814310
– ident: e_1_2_2_7_1
  doi: 10.1145/1646353.1646374
– ident: e_1_2_2_2_1
  doi: 10.1007/978-3-319-13338-6_7
– ident: e_1_2_2_20_1
  doi: 10.1145/1806799.1806833
– ident: e_1_2_2_49_1
  doi: 10.1145/2351676.2351726
– volume-title: Learning quick fixes from code repositories
  year: 2018
  ident: e_1_2_2_41_1
– ident: e_1_2_2_45_1
  doi: 10.1145/1168857.1168907
– ident: e_1_2_2_8_1
  doi: 10.1090/S0002-9947-1969-0280205-0
– ident: e_1_2_2_48_1
  doi: 10.1145/1375581.1375599
– volume-title: At https://www.visualstudio.com
  year: 2019
  ident: e_1_2_2_29_1
– volume-title: At https://www.jetbrains.com/resharper/
  year: 2020
  ident: e_1_2_2_19_1
– ident: e_1_2_2_47_1
  doi: 10.1145/1250734.1250754
– volume-title: Intellicode suggestions. At https://docs.microsoft.com/en-us/visualstudio/intellicode/intellicode-suggestions
  year: 2020
  ident: e_1_2_2_30_1
– ident: e_1_2_2_15_1
  doi: 10.1145/1926385.1926423
– ident: e_1_2_2_4_1
  doi: 10.1007/978-3-662-54577-5_18
– ident: e_1_2_2_46_1
  doi: 10.1145/1168857.1168907
– volume-title: Introduction to semi-supervised learning. Synthesis lectures on artificial intelligence and machine learning, 3 ( 1 ): 1-130
  year: 2009
  ident: e_1_2_2_56_1
– ident: e_1_2_2_16_1
  doi: 10.1145/2491956.2462192
– volume-title: Systematic editing: generating program transformations from an example. ACM SIGPLAN Notices, 46 ( 6 ): 329-342
  year: 2011
  ident: e_1_2_2_26_1
– ident: e_1_2_2_22_1
  doi: 10.1145/2393596.2393655
– volume-title: At https://www.jetbrains.com/idea/
  year: 2020
  ident: e_1_2_2_18_1
SSID ssj0001934839
Score 2.2740455
Snippet While editing code, it is common for developers to make multiple related repeated edits that are all instances of a more general program transformation. Since...
SourceID crossref
acm
SourceType Enrichment Source
Index Database
Publisher
StartPage 1
SubjectTerms Artificial intelligence
Automatic programming
Computing methodologies
Development frameworks and environments
Integrated and visual development environments
Software and its engineering
Software creation and management
Software development techniques
Software maintenance tools
Software notations and tools
SubjectTermsDisplay Computing methodologies -- Artificial intelligence
Software and its engineering -- Software creation and management -- Software development techniques -- Automatic programming
Software and its engineering -- Software notations and tools -- Development frameworks and environments -- Integrated and visual development environments
Software and its engineering -- Software notations and tools -- Software maintenance tools
Title Feedback-driven semi-supervised synthesis of program transformations
URI https://dl.acm.org/doi/10.1145/3428287
Volume 4
WOSCitedRecordID wos000685203900096&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/eLvHCXMwtV3Nb9MwFLfK4MAFxgBRYMgHxAUF4nw5PlZjGwe2VWxIvVWOY9PCmlZJW40L_wL_Mu8ljhsFJODAJYosPyvye3nv5_fhR8hLpZSQqfQ9FmqGrhsffikMsRtfqiyQPs9k3WyCn5-nk4kYDwY_2lqY7TUvivTmRqz-K6thDJiNpbP_wG63KAzAOzAdnsB2eP4V40_AHmVSffXyEjXZ60ov5l61WaFSqABeVt8KAH32HhKbnoWdIhx-bR14FrKOnYmrKUZHZxhgsIQL9DS0Pk8Hz09l7YCdgOh93rlK2zygWQnabubMwUeZY2rBvJo15Wmj8svGSezlEuujauc9Vnptl10vBRxJMVMu3CmzIOKxx6KmGvqN_s2Y1cZRR-guLsaXH0Yd9co6droJ5_xqASK8LCOM8CjJd0auDez3bJ_LSGzqs-OpJbxFbgc8Fqgmz753nHYijNK6O5379qYQG2nfWlrEOWrRwTkdwHK1T-7ZkwYdNRLygAx0cUDut108qFXqD8m7nsDQnsBQJzB0aajlO-0JzCPy6eT46ui9Z3treDLgfO1xLTI_B7wZMaw_zpJYwckgMUnmZ3ki_DCNDOOGySDhSYzRcR0w36QwbBJfsvAx2SuWhX5CqDa50QCGdGyw7XMsWCq0jFQisiwIBBuSA9iP6aq5PaXd4SF51e7PVNnr6LEryvW0x4ohoW5iu0ZvytM_T3lG7u7E8jnZW5cbfUjuqO16XpUvai7_BLr3eRE
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=Feedback-driven+semi-supervised+synthesis+of+program+transformations&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Gao%2C+Xiang&rft.au=Barke%2C+Shraddha&rft.au=Radhakrishna%2C+Arjun&rft.au=Soares%2C+Gustavo&rft.date=2020-11-13&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=4&rft.issue=OOPSLA&rft.spage=1&rft.epage=30&rft_id=info:doi/10.1145%2F3428287&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3428287
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