Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1109/ICSE-NIER.2017.7acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

At the end of synthesis: narrowing program candidates

Published: 20 May 2017 Publication History

Abstract

Program synthesis is succeeding in supporting the generation of programs within increasingly complex domains. The use of weaker specifications, such as those consisting of input/output examples or test cases, has helped to fuel the success of program synthesis by lowering adoption barriers. Yet, employing weaker specifications has the side effect of generating a potentially large number of candidate programs. This was not a problem for simpler and smaller program domains, but it is becoming evident that differentiating among many synthesized programs is a challenge that needs addressing. We sketch an approach to mitigate this challenge, requiring less effort from the user while automatically identifying inputs that can differentiate clusters of synthesized programs. The approach has the potential to more cost-effectively narrow the space of candidate programs in a range of synthesis applications.

References

[1]
E. Kitzelmann, Inductive Programming: A Survey of Program Synthesis Techniques. Springer Berlin Heidelberg, 2010, pp. 50--73.
[2]
W. R. Harris and S. Gulwani, "Spreadsheet table transformations from examples," in Proceedings of the Conference on Programming Language Design and Implementation. ACM, 2011, pp. 317--328.
[3]
S. Gulwani, "Automating string processing in spreadsheets using input-output examples," in Proceedings of the Symposium on Principles of Programming Languages. ACM, 2011, pp. 317--330.
[4]
S. Mechtaev, J. Yi, and A. Roychoudhury, "Angelix: Scalable multiline program patch synthesis via symbolic analysis," in Proceedings of the International Conference on Software Engineering. ACM, 2016, pp. 691--701.
[5]
S. Mechtaev, "Directfix: Looking for simple program repairs," in Proceedings of the International Conference on Software Engineering - Volume 1. IEEE, 2015, pp. 448--458.
[6]
F. Long and M. Rinard, "Automatic patch generation by learning correct code," SIGPLAN Not., vol. 51, no. 1, pp. 298--312, Jan. 2016.
[7]
R. Singh and S. Gulwani, "Synthesizing number transformations from input-output examples," in Proceedings of the International Conference on Computer Aided Verification. Springer-Verlag, 2012, pp. 634--651.
[8]
A. Leung, J. Sarracino, and S. Lerner, "Interactive parser synthesis by example," SIGPLAN Not., vol. 50, no. 6, pp. 565--574, Jun. 2015.
[9]
A. Solar-Lezama, R. Rabbah, R. Bodík, and K. Ebcioğlu, "Programming by sketching for bit-streaming programs," SIGPLAN Not., vol. 40, no. 6, pp. 281--294, Jun. 2005.
[10]
J. Galenson, P. Reames, R. Bodik, B. Hartmann, and K. Sen, "Codehint: Dynamic and interactive synthesis of code snippets," in Proceedings of the International Conference on Software Engineering. ACM, 2014, pp. 653--663.
[11]
K. T. Stolee, S. Elbaum, and D. Dobos, "Solving the search for source code," ACM Transactions on Software Engineering Methodology, vol. 23, no. 3, pp. 26:1--26:45, May 2014.
[12]
P. J. Guo, S. Kandel, J. M. Hellerstein, and J. Heer, "Proactive wrangling: Mixed-initiative end-user programming of data transformation scripts," in Proceedings of the Symposium on User Interface Software and Technology. ACM, 2011, pp. 65--74.
[13]
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 Symposium on User Interface Software; Technology. ACM, 2015, pp. 291--301.
[14]
K. T. Stolee, S. G. Elbaum, and M. B. Dwyer, "Code search with input/output queries: Generalizing, ranking, and assessment," Journal of Systems and Software, vol. 116, pp. 35--48, 2016.
[15]
S. Jha, S. Gulwani, S. A. Seshia, and A. Tiwari, "Oracle-guided component-based program synthesis," in International Conference on Software Engineering, vol. 1. IEEE, 2010, pp. 215--224.

Cited By

View all
  • (2024)Towards Reliable SQL Synthesis: Fuzzing-Based Evaluation and DisambiguationFundamental Approaches to Software Engineering10.1007/978-3-031-57259-3_11(232-254)Online publication date: 6-Apr-2024
  • (2019)Automated program repairCommunications of the ACM10.1145/331816262:12(56-65)Online publication date: 21-Nov-2019
  • (2019)Crash-avoiding program repairProceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3293882.3330558(8-18)Online publication date: 10-Jul-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE-NIER '17: Proceedings of the 39th International Conference on Software Engineering: New Ideas and Emerging Results Track
May 2017
75 pages
ISBN:9781538626757

Sponsors

Publisher

IEEE Press

Publication History

Published: 20 May 2017

Check for updates

Author Tags

  1. input generation
  2. program synthesis
  3. pruning

Qualifiers

  • Research-article

Conference

ICSE '17
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Towards Reliable SQL Synthesis: Fuzzing-Based Evaluation and DisambiguationFundamental Approaches to Software Engineering10.1007/978-3-031-57259-3_11(232-254)Online publication date: 6-Apr-2024
  • (2019)Automated program repairCommunications of the ACM10.1145/331816262:12(56-65)Online publication date: 21-Nov-2019
  • (2019)Crash-avoiding program repairProceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3293882.3330558(8-18)Online publication date: 10-Jul-2019
  • (2019)Explainable software bot contributionsProceedings of the 1st International Workshop on Bots in Software Engineering10.1109/BotSE.2019.00010(12-15)Online publication date: 27-May-2019
  • (2018)Test-Equivalence Analysis for Automatic Patch GenerationACM Transactions on Software Engineering and Methodology10.1145/324198027:4(1-37)Online publication date: 22-Oct-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media