Generating program fragments using keywords and context information
First Claim
1. A method performed by one or more computing devices, the method comprising:
- receiving one or more keywords from a user for generating a program fragment as part of a program being created, to thereby provide keyword information;
identifying a context in which the user is generating the program fragment, to thereby provide context information;
generating a set of candidate program fragments based on at least the keyword information and the context information;
ranking the candidate program fragments to provide a set of ranked program fragments, the ranking being based at least on a prevalence of data flow in previously-created programs that include program elements appearing in the candidate program fragments, the data flow being from outputs of individual program elements in the previously-created programs that are used as inputs by other program elements in the previously-created programs; and
presenting an output presentation to the user identifying at least some of the set of ranked program fragments.
2 Assignments
0 Petitions
Accused Products
Abstract
A program development framework (PDF) is described herein which allows a user to produce a program in piecemeal fashion by successively specifying program fragments. The PDF creates a new program fragment by receiving keyword information from the user that describes a new program fragment, and then identifies context information that pertains to a programmatic context in which the new program fragment appears within the overall program being created. The PDF then generates a set of candidate program fragments that satisfy the keyword information and the context information, and ranks those candidate program fragments based on ranking information. At least part of the ranking information may be based on statistical information that is produced by analyzing a corpus of previous programs produced by one or more users. The PDF then provides the ranked program fragments to the user using various user-friendly presentation strategies.
-
Citations
20 Claims
-
1. A method performed by one or more computing devices, the method comprising:
-
receiving one or more keywords from a user for generating a program fragment as part of a program being created, to thereby provide keyword information; identifying a context in which the user is generating the program fragment, to thereby provide context information; generating a set of candidate program fragments based on at least the keyword information and the context information; ranking the candidate program fragments to provide a set of ranked program fragments, the ranking being based at least on a prevalence of data flow in previously-created programs that include program elements appearing in the candidate program fragments, the data flow being from outputs of individual program elements in the previously-created programs that are used as inputs by other program elements in the previously-created programs; and presenting an output presentation to the user identifying at least some of the set of ranked program fragments. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
at least one processing device; and at least one computer readable storage medium storing computer readable instructions which, when executed by the at least one processing device, cause the at least one processing device to; receive one or more keywords from a user who wishes to generate a program fragment as part of a program being created, to thereby provide keyword information; identify a context in which the user is generating the program fragment, to thereby provide context information, the context information specifying one or more of; at least one global variable which affects the program fragment, said at least one global variable having been previously defined in the program being created; at least one local variable which affects the program fragment, said at least one local variable having been previously defined in the program being created;
orat least one function which affects the program fragment, said at least one function having been previously defined in the program being created; generate a set of candidate program fragments based at least on the keyword information and the context information; rank the candidate program fragments to provide a set of ranked program fragments, the candidate program fragments being ranked based at least on a prevalence of data flow in previously-created programs that include program elements appearing in the candidate program fragments, the data flow being from outputs of individual program elements in the previously-created programs that are used as inputs by other program elements in the previously-created programs; and present an output presentation to the user identifying at least some of the set of ranked program fragments. - View Dependent Claims (16, 17)
-
-
18. A program creation system, implemented using one or more computing devices, the program creation system comprising:
-
an interface module configured to receive one or more keywords from a user who wishes to generate a program fragment as part of a program being created, to thereby provide keyword information; a context analysis module configured to identify a context in which the user is generating the program fragment, to thereby provide context information; a candidate program identification module configured to generate a set of candidate program fragments based on at least the keyword information and the context information; and a ranking module configured to rank the candidate program fragments to provide a set of ranked program fragments, the candidate program fragments being ranked based at least on a prevalence of data flow in previously-created programs that include program elements appearing in the candidate program fragments, the data flow being from outputs of individual program elements in the previously-created programs that are used as inputs by other program elements in the previously-created programs, the interface module being configured to present an output presentation to the user identifying at least some of the set of ranked program fragments. - View Dependent Claims (19, 20)
-
Specification