OUTPUT PREFIX SPECIFICATION TRANSFORMERS
First Claim
1. A method for synthesizing programs using a prefix of an output, the method comprising operations performed using an electronic processor, the operations comprising:
- receiving a specification of a task to synthesize a program in a domain specific language (DSL), wherein the specification comprises an input and a corresponding prefix of the output;
synthesizing a plurality of programs for the task, wherein the synthesizing comprises;
generating a plurality of sub-goals based on the specification, wherein each of the plurality of synthesized programs comprise a solved subset of the plurality of the sub-goals, and wherein a sub-goal comprises a symbol in the DSL;
transforming the symbol based on the DSL and the prefix of the output, andsolving the plurality of sub-goals based on the transforming of the symbol using the input and the corresponding prefix of the output to generate the plurality of synthesized programs, wherein the prefix of the output matches a prefix of an output from each of the plurality of synthesized programs.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and computer-executable instructions for synthesizing programs using a prefix of an output. A specification of a task to synthesize a program in a domain specific language (DSL) is received. The specification includes an input and a corresponding prefix of the output. Programs for the task are synthesized. The synthesizing includes generating sub-goals based on the specification. Each of the synthesized programs include a solved subset of sub-goals and each sub-goal includes a symbol in the DSL. The symbol is transformed based on the DSL. The sub-goals are solved based on the transforming of the symbol using the input and the corresponding prefix of the output to generate the synthesized programs. The prefix of the output matches a prefix of an output from each of the plurality of synthesized programs.
-
Citations
20 Claims
-
1. A method for synthesizing programs using a prefix of an output, the method comprising operations performed using an electronic processor, the operations comprising:
-
receiving a specification of a task to synthesize a program in a domain specific language (DSL), wherein the specification comprises an input and a corresponding prefix of the output; synthesizing a plurality of programs for the task, wherein the synthesizing comprises; generating a plurality of sub-goals based on the specification, wherein each of the plurality of synthesized programs comprise a solved subset of the plurality of the sub-goals, and wherein a sub-goal comprises a symbol in the DSL; transforming the symbol based on the DSL and the prefix of the output, and solving the plurality of sub-goals based on the transforming of the symbol using the input and the corresponding prefix of the output to generate the plurality of synthesized programs, wherein the prefix of the output matches a prefix of an output from each of the plurality of synthesized programs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for synthesizing programs using a prefix of an output, the system comprising:
a program synthesizer configured to; receive a specification of a task to synthesize a program in a domain specific language (DSL), wherein the specification comprises an input and a corresponding prefix of the output; synthesize a plurality of programs for the task, wherein to synthesize the program synthesizer is further configured to; generate a plurality of sub-goals based on the specification, wherein each of the plurality of synthesized programs comprise a solved subset of the plurality of the sub-goals, and wherein a sub-goal comprises a symbol in the DSL; transform the symbol based on the DSL; and solve the plurality of sub-goals based on the transformation of the symbol using the input and the corresponding prefix of the output to generate the plurality of synthesized programs, wherein the prefix of the output matches a prefix of an output from each of the plurality of synthesized programs. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
17. A computer-readable storage medium storing computer-executable instructions for synthesizing programs using a prefix of an output, the stored instructions comprising:
-
instructions to receive a specification of a task to synthesize a program in a domain specific language (DSL), wherein the specification comprises an input and a corresponding prefix of the output; instructions to synthesize a plurality of programs for the task, wherein the instructions to synthesize the program comprise; instructions to generate a plurality of sub-goals based on the specification, wherein each of the plurality of synthesized programs comprise a solved subset of the plurality of the sub-goals, and wherein a sub-goal comprises a symbol in the DSL; instructions to transform the symbol based on the DSL; and instructions to solve the plurality of sub-goals based on the transformation of the symbol using the input and the corresponding prefix of the output to generate the plurality of synthesized programs, wherein the prefix of the output matches a prefix of an output from each of the plurality of synthesized programs. - View Dependent Claims (18, 19, 20)
-
Specification