IP Library Granted Patent US 7,562,343
Granted Patent B2
US 7,562,343 · App. 10/731,970 · Granted Jul 14, 2009

User configurable language independent code assist engine method, system, article of manufacture, and computer program product

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,562,343
App. No.
10/731,970
Granted
Jul 14, 2009
Kind
B2
Abstract

A code assist function which suggests candidates responsive to a parsing of a partial program instruction statement is provided by parsing a program containing the partial program instruction statement to identify variables contained in the program; parsing the partial program instruction statement to generate proposals; and providing proposals to append to the partial program instruction statement to a user responsive to both the parsing of the program and the parsing of the partial program instruction statement. The code assist function may be performed according to a user-selected programming language dependent file selected from a plurality of programming language dependent files. Candidates may be proposed responsive to a verb of the partial program instruction statement, responsive to a variable type of a variable, or responsive to a portion of the program containing the partial program instruction statement.

Claims (59)

1. A method of providing a code assist function which suggests candidates responsive to a parsing of a partial program instruction statement, said method comprising:

parsing a partial program instruction statement into tokens, wherein the tokens are identified and divided into keywords and variables according to a computer language in which the partial program instruction statement is written;

determining whether the tokens match syntax statement tokens in a syntax library for the computer language by comparing the keywords against keywords of the syntax statement tokens or comparing the variables against symbols of the syntax statement tokens;

moving a cursor positioned on one of the tokens for which the match is determined to a following token in response to determining that the token matches one of the syntax statement tokens in the syntax library;

in response to determining that the token on which the cursor is positioned does not match one of the syntax statement tokens generating proposals from the cursor position based on previous tokens in the partial program instruction that matched syntax statement tokens in the syntax library;

providing proposals to append to the partial program instruction statement to a user responsive to the parsing of the partial program instruction statement.

2. The method of claim 1 further comprising:

proposing one of the identified variables as a proposal responsive to the previous token of the partial program instruction statement, wherein the previous token is a verb.

3. The method of claim 1 further comprising:

proposing one of the identified variables as a proposal responsive to a variable type of the variable.

4. The method of claim 1 further comprising:

proposing one of the identified variables as a proposal responsive to the previous token of the partial program instruction statement, wherein the previous token is a verb, or responsive to a variable type of the variable.

5. The method of claim 1 further comprising:

proposing one of the identified variables as a proposal responsive to a portion of the program containing the partial program instruction statement.

6. The method of claim 1 wherein the parsing of the program and the parsing of the partial program instruction statement are performed according to a user-selected programming language dependent file selected from a plurality of programming language dependent files.

7. The method of claim 1 , further comprising:

determining whether an end of the partial program instruction statement is reached; and

in response to determining that the end of the program instruction statement is reached, generating proposals.

8. The method of claim 1 , further comprising:

determining the computer language in which the partial program instruction statement is written; and

selecting one of a plurality of syntax libraries to use to determine whether the tokens match one of the plurality of syntax statements in the syntax library specific to the determined computer language.

9. The method of claim 1 , wherein the partial program instruction statement is parsed based upon syntax statements from the syntax library.

10. The method of claim 1 , further comprising:

generating a cursor index when moving the cursor indicating last matching tokens in the partial program instruction; and

wherein generating proposals comprises generating proposals from the cursor index position for the last matched token.

11. The method of claim 10 , wherein generating proposals comprises:

generating proposals from the last matching token; and

adding the proposals to a proposal vector.

12. The method or claim 11 , wherein proposal vectors are generated from multiple cursor engines parsing different parts of the program statements;

concatenating the proposal vectors to create a combined proposal vector that is returned;

matching the combined proposal vector to determine an image;

displaying a window containing the determined image from which the user select a keyword, identifier or constant to continue entry of the partial program statement.

13. An article of manufacture for use in a computer system for providing assistance to a programmer writing computer programming code, said assistance comprising suggested candidates responsive to a parsing of a partial program instruction statement, said article of manufacture comprising a computer-useable storage medium having a computer program embodied in said medium which causes the computer system to execute operations comprising:

parsing a partial program instruction statement into tokens, wherein the tokens are identified and divided into keywords and variables according to a computer language in which the partial program instruction statement is written;

determining whether the tokens match syntax statement tokens in a syntax library for the computer language by comparing the keywords against keywords of the syntax statement tokens or comparing the variables against symbols of the syntax statement tokens;

moving a cursor positioned on one of the tokens for which the match is determined to a following token in response to determining that the token matches one of the syntax statement tokens in the syntax library;

in response to determining that the token on which the cursor is positioned does not match one of the syntax statement tokens generating proposals from the cursor position based on previous tokens in the partial program instruction that matched syntax statement tokens in the syntax library;

providing proposals to append to the partial program instruction statement to a user responsive to the parsing of the partial program instruction statement.

14. The article of manufacture of claim 13 , wherein the operations further comprise:

proposing one of the identified variables as a proposal responsive to the previous token a of the partial program instruction statement, wherein the previous token is a verb.

15. The article of manufacture of claim 13 , wherein the operations further comprise:

proposing one of the identified variables as a proposal responsive to a variable type of the variable.

16. The article of manufacture of claim 13 , wherein the operations further comprise:

proposing one of the identified variables as a proposal responsive to the previous token of the partial program instruction statement, wherein the previous token is a verb, or responsive to a variable type of the variable.

17. A computer system for providing a code assist function which suggests candidates responsive to a parsing of a partial program instruction statement, said computer system comprising:

a processor;

a computer readable storage medium;

a code assist engine in the computer readable storage medium executed by the processor to perform operation comprising:

parsing a partial program instruction statement into tokens, wherein the tokens are identified and divided into keywords and variables according to a computer language in which the partial program instruction statement is written;

determining whether the tokens match syntax statement tokens in a syntax library for the computer language by comparing the keywords against keywords of the syntax statement tokens or comparing the variables against symbols of the syntax statement tokens;

moving a cursor positioned on one of the tokens for which the match is determined to a following token in response to determining that the token matches one of the syntax statement tokens in the syntax library;

in response to determining that the token on which the cursor is positioned does not match one of the syntax statement tokens generating proposals from the cursor position based on previous tokens in the partial program instruction that matched syntax statement tokens in the syntax library;

providing proposals to append to the partial program instruction statement to a user responsive to the parsing of the partial program instruction statement.

18. The computer system of claim 17 , wherein the operations further comprise:

proposing one of the identified variables as a proposal responsive to the previous token of the partial program instruction statement, wherein the previous token is a verb.

19. The computer system of claim 17 , wherein the operations further comprise:

proposing one of the identified variables as a proposal responsive to a variable type of the variable.

20. The computer system of claim 17 , wherein the operations further comprise;

proposing one of the identified variables as a proposal responsive to the previous token of the partial program instruction statement, wherein the previous token is a verb, or responsive to a variable type of the variable.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2013
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: INTELLECTUAL DISCOVERY, INC.
Reel/Frame 030628/0554 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2003
From: HAWLEY, ALLEN K.; IMMANENI, PAVAN K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014802/0460 →