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)
- 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.
- 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.
- Alur, R., Radhakrishna, A., Udupa, A. Scaling enumerative program synthesis via divide and conquer. In Proc. TACAS, LNCS 10205, 2017, 319-336.
- Clarke, E., Grumberg, O., Peled, D. Model Checking. MIT Press, 2000.
- de Moura, L., Bjørner, N. Satisfiability Modulo Theories: Introduction and applications. Commun. ACM 54, 9 (2011), 69-77.
- 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.
- Eldib, H., Wu, M., Wang, C. Synthesis of fault-attack countermeasures for cryptographic circuits. In Proc. CAV, LNCS 9780, 2016, 343-363.
- Garg, P., Löding, C., Madhusudan, P., Neider, D. ICE: A robust framework for learning invariants. In Proc. CAV, LNCS 8559, 2014, 69-87.
- Ghalaty, N., Aysu, A., Schaumont, P. Analyzing and eliminating the causes of fault sensitivity analysis. In Proc. DATE, 2014, 1-6.
- Gulwani, S. Automating string processing in spreadsheets using input-output examples. In Proc. POPL, 2011, 317-330.
- Gulwani, S., Harris, W.R., Singh, R. Spreadsheet data manipulation using examples. Commun. ACM, 55, 8 (2012), 97-105.
- Gulwani, S., Jha, S., Tiwari, A., Venkatesan, R. Synthesis of loop-free programs. In Proc. PLDI, 2011, 62-73.
- Jha, S., Gulwani, S., Seshia, S.A., Tiwari, A. Oracle-guided component-based program synthesis. In Proc. ICSE, 2010, 215-224.
- Kuncak, V., Mayer, M., Piskac, R., Suter, P. Software synthesis procedures. Commun. ACM, 55, 2.
- 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.
- Malik, S., Zhang, L. Boolean satisfiability: From theoretical hardness to practical success. Commun. ACM, 52, 8 (2009), 76-82.
- Manna, Z., Waldinger, R. Fundamentals of deductive program synthesis. IEEE Trans. Softw. Eng. 18, 8 (1992), 674-704.
- Massalin, H. Superoptimizer -A look at the smallest program. In Proc. ASPLOS, 1987, 122-126.
- Mechtaev, S., Yi, J., Roychoudhury, A. Angelix: Scalable multiline program patch synthesis via symbolic analysis. In Proc. ICSE, 2016, 691-701.
- Mitchell, T. Machine Learning. McGraw-Hill, 1997.
- Osera, P., Zdancewic, S. Type-and-example-directed program synthesis. In Proc. PLDI, 2015, 619-630.
- Polikarpova, N., Kuraj, I., Solar-Lezama, A. Program synthesis from polymorphic refinement types. In Proc. PLDI, 2016, 522-538.
- Quinlan, J. Introduction to decision trees. Mach. Learn. 1, 1 (1986), 81-106.
- Raychev, V., Vechev, M.T., Yahav, E. Code completion with statistical language models. In Proc. PLDI, 2014, 419-428.
- 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.
- Schkufza, E., Sharma, R., Aiken, A. Stochastic program optimization. Commun. ACM 59, 2 (2016), 114-122.
- Seshia, S.A. Combining induction, deduction, and structure for verification and synthesis. Proc. IEEE 103, 11 (2015), 2036-2051.
- Solar-Lezama, A. Program sketching. STTT 15, 5-6 (2013), 475-495.
- Solar-Lezama, A., Rabbah, R., Bodík, R., Ebcioglu, K. Programming by sketching for bit-streaming programs. In Proc. PLDI, 2005, 281-294.
- Srivastava, S., Gulwani, S., Foster, J.S. Template- based program verification and program synthesis. STTT 15, 5-6 (2013), 497-518.
- Stump, A., Sutcliffe, G., Tinelli, C. Starexec: A cross-community infrastructure for logic solving. In Proc. IJCAR, 2014, 367-373.
- 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.
- 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.
- Rishabh Singh is a research scientist at Google Brain, Mountain View, CA, USA.
- Dana Fisman is a senior lecturerat Ben Gurion University, Be'er Shera, Israel.
- 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.