Patent ID: 8250546

Claim:
A process for assisting a user to write an ordered sequence of new lines of code (L 0 , L 1 , L 2 , . . . ) of a computer program, said process using a plurality of code examples such that each code example comprises an ordered sequence of lines of code (X 0 , X 1 , X 2 , . . . ), said process implemented by execution of instructions by a processor of a computer system, said instructions being stored on computer readable storage media of the computer system, said process utilizing an index R that points to line L R (R=0, 1, 2, . . . ) and initially points to the first line L 0 of the new lines of code, said process utilizing an index K that points to line X K (K=0, 1, 2, . . . ) and initially points to the first line X 0 of the ordered sequence of lines of code, said process comprising: receiving and storing line L 0 , wherein L 0 is an anchor line; after said receiving and storing line L 0 , selecting the plurality of code examples based on line X 0 in each selected code example matching line L 0 due to a method in line X 0 of each code example being of a same type and having a same signature as a method in line L 0 ; after said selecting the plurality of code examples, ascertaining whether a custom line of code is inputted after said storing line L R is performed; if said ascertaining ascertains that a custom line of code is inputted after said storing line L R is performed, then incrementing R by 1, followed by establishing line L R as a new custom line of code, and followed by storing line L R ; if said ascertaining ascertains that a custom line of code is not inputted after said storing line L R is performed, then incrementing K by 1 and determining N=F(R) such that F(R) is a specified function of R, followed by identifying a set of assist lines (X K , X K+1 , . . . , X NMIN ) in each code example X such that NMIN is a minimum of N and the highest line number in each code example, followed by translating the assist lines to a user context in each code example, followed by determining a set of preferred lines sequenced in an order of preference such that the preferred lines are selected from the translated assist lines in the code examples, followed by presenting to the user the set of preferred lines sequenced in the order of preference, followed by receiving a selected line selected by the user from the set of preferred lines, followed by incrementing R by 1, followed by establishing line L R to be the edited selected line, and followed by storing line L R ; and after storing line L R , stopping the process if a stopping criterion is satisfied, otherwise looping back to said ascertaining.