Academia.eduAcademia.edu

Outline

Search-based program synthesis

2018, Communications of The ACM

https://doi.org/10.1145/3208071

Abstract

BY RAJEEV ALUR, RISHABH SINGH, DANA FISMAN, AND ARMANDO SOLAR-LEZAMA key insights ˽ Syntex-guided synthesis formalizes the computational problem of searching for a program expression that meets both syntactic and logical constraints. ˽ A wide variety of problems, such as programming by examples, program superoptimization, and program repair, naturally map to syntax-guided synthesis. ˽ Standardization, benchmark collection, and solver competition have led to significant advances in solution strategies and new applications.

References (36)

  1. Akiba, T., Imajo, K., Iwami, H., Iwata, Y., Kataoka, T., Takahashi, N., Mmoskal, M., Swamy, N. Calibrating research in program synthesis using 72,000 hours of programmer time. Technical Report, MSR, 2013.
  2. Alur, R., Bodík, R., Juniwal, G., Martin, M.M.K., Raghothaman, M., Seshia, S.A., Singh, R., Solar-Lezama, A., Torlak, E., Udupa, A. Syntax-guided synthesis. In Proc. FMCAD, 2013, 1-17.
  3. Alur, R., Radhakrishna, A., Udupa, A. Scaling enumerative program synthesis via divide and conquer. In Proc. TACAS, LNCS 10205, 2017, 319-336.
  4. Clarke, E., Grumberg, O., Peled, D. Model Checking. MIT Press, 2000.
  5. de Moura, L., Bjørner, N. Satisfiability Modulo Theories: Introduction and applications. Commun. ACM 54, 9 (2011), 69-77.
  6. Devlin, J., Uesato, J., Bhupatiraju, S., Singh, R., Mohamed, A., Kohli, P. Robustfill: Neural program learning under noisy I/O. In Proc. ICML, 2017, 990-998.
  7. Eldib, H., Wu, M., Wang, C. Synthesis of fault-attack countermeasures for cryptographic circuits. In Proc. CAV, LNCS 9780, 2016, 343-363.
  8. Garg, P., Löding, C., Madhusudan, P., Neider, D. ICE: A robust framework for learning invariants. In Proc. CAV, LNCS 8559, 2014, 69-87.
  9. Ghalaty, N., Aysu, A., Schaumont, P. Analyzing and eliminating the causes of fault sensitivity analysis. In Proc. DATE, 2014, 1-6.
  10. Gulwani, S. Automating string processing in spreadsheets using input-output examples. In Proc. POPL, 2011, 317-330.
  11. Gulwani, S., Harris, W.R., Singh, R. Spreadsheet data manipulation using examples. Commun. ACM, 55, 8 (2012), 97-105.
  12. Gulwani, S., Jha, S., Tiwari, A., Venkatesan, R. Synthesis of loop-free programs. In Proc. PLDI, 2011, 62-73.
  13. Jha, S., Gulwani, S., Seshia, S.A., Tiwari, A. Oracle-guided component-based program synthesis. In Proc. ICSE, 2010, 215-224.
  14. Kuncak, V., Mayer, M., Piskac, R., Suter, P. Software synthesis procedures. Commun. ACM, 55, 2.
  15. Le, X.D., Chu, D., Lo, D., Le Goues, C., Visser, W. S3: Syntax-and semantic-guided repair synthesis via programming by examples. In Proc. FSE, 2017, 593-604.
  16. Malik, S., Zhang, L. Boolean satisfiability: From theoretical hardness to practical success. Commun. ACM, 52, 8 (2009), 76-82.
  17. Manna, Z., Waldinger, R. Fundamentals of deductive program synthesis. IEEE Trans. Softw. Eng. 18, 8 (1992), 674-704.
  18. Massalin, H. Superoptimizer -A look at the smallest program. In Proc. ASPLOS, 1987, 122-126.
  19. Mechtaev, S., Yi, J., Roychoudhury, A. Angelix: Scalable multiline program patch synthesis via symbolic analysis. In Proc. ICSE, 2016, 691-701.
  20. Mitchell, T. Machine Learning. McGraw-Hill, 1997.
  21. Osera, P., Zdancewic, S. Type-and-example-directed program synthesis. In Proc. PLDI, 2015, 619-630.
  22. Polikarpova, N., Kuraj, I., Solar-Lezama, A. Program synthesis from polymorphic refinement types. In Proc. PLDI, 2016, 522-538.
  23. Quinlan, J. Introduction to decision trees. Mach. Learn. 1, 1 (1986), 81-106.
  24. Raychev, V., Vechev, M.T., Yahav, E. Code completion with statistical language models. In Proc. PLDI, 2014, 419-428.
  25. Reynolds, A., Deters, M., Kuncak, V., Tinelli, C., Barrett, C.W. Counterexample-guided quantifier instantiation for synthesis in SMT. In Proc. CAV, 2015, 198-216.
  26. Schkufza, E., Sharma, R., Aiken, A. Stochastic program optimization. Commun. ACM 59, 2 (2016), 114-122.
  27. Seshia, S.A. Combining induction, deduction, and structure for verification and synthesis. Proc. IEEE 103, 11 (2015), 2036-2051.
  28. Solar-Lezama, A. Program sketching. STTT 15, 5-6 (2013), 475-495.
  29. Solar-Lezama, A., Rabbah, R., Bodík, R., Ebcioglu, K. Programming by sketching for bit-streaming programs. In Proc. PLDI, 2005, 281-294.
  30. Srivastava, S., Gulwani, S., Foster, J.S. Template- based program verification and program synthesis. STTT 15, 5-6 (2013), 497-518.
  31. Stump, A., Sutcliffe, G., Tinelli, C. Starexec: A cross-community infrastructure for logic solving. In Proc. IJCAR, 2014, 367-373.
  32. Udupa, A., Raghavan, A., Deshmukh, J., Mador-Haim, S., Martin, M., Alur, R. TRANSIT: Specifying protocols with concolic snippets. In Proc. PLDI, 2013, 287-296.
  33. Warren, H.S. Hacker's Delight. Addison-Wesley, 2002. Rajeev Alur is the Zisman Family Professor in the Department of Computer and Information Sciences at the University of Pennsylvania, Philadelpha, PA, USA.
  34. Rishabh Singh is a research scientist at Google Brain, Mountain View, CA, USA.
  35. Dana Fisman is a senior lecturerat Ben Gurion University, Be'er Shera, Israel.
  36. Armando Solar-Lezama is an associate professor and leader of the Computer Assisted Programming Group at MIT, Cambridge, MA, USA. ©2018 ACM 0001-0782/18/12 $15.00.