Computer programming language statement building and information tool
First Claim
1. A computer-readable medium containing computer-executable instructions to perform a method for assisting a computer programmer in real-time to modify a present programming language statement of a computer program, the method comprising:
- enabling a programming language editor having a character position cursor and a randomly positionable pointer;
partially compiling available ones of a plurality of programming language statements in said computer program;
defining a finite set of programming language statement information that is relevant to at least one segment of the present programming language statement from among said plurality of programming language statements that is proximate to said character position which allows modification of the programming language statement;
automatically generating a passive assist window that contains said finite set of programming language statement information in a location proximate to said character position cursor that does not obstruct the current view of said programming language statement;
modifying the present programming language statement based at least in part on the selected programming language statement information; and
automatically removing the passive assist window when the programming language statement has been amended.
1 Assignment
0 Petitions
Accused Products
Abstract
An intelligent real time tool to assist a computer programmer during the writing and/or maintenance of a computer program. The tool generates assist windows that contain program related information that the programmer can use to construct a programming language statement and/or to obtain real time information about a programming language statement. An assist window can be automatically displayed as determined by the tool itself, and/or manually displayed on demand in response to a user input command. An assist window displays two general categories of information including but not limited to selection menu information based on a partial compilation of all programming language statements, and informational displays based on a partial compilation and a reverse parse of an immediate programming language statement. The statement generating tool assist windows are non-intrusive to programmer input and can be ignored by the programmer by merely continuing to type an immediate programming language statement without interacting with the assist windows that are proximate the programming language statement being constructed by the programmer.
98 Citations
37 Claims
-
1. A computer-readable medium containing computer-executable instructions to perform a method for assisting a computer programmer in real-time to modify a present programming language statement of a computer program, the method comprising:
-
enabling a programming language editor having a character position cursor and a randomly positionable pointer;
partially compiling available ones of a plurality of programming language statements in said computer program;
defining a finite set of programming language statement information that is relevant to at least one segment of the present programming language statement from among said plurality of programming language statements that is proximate to said character position which allows modification of the programming language statement;
automatically generating a passive assist window that contains said finite set of programming language statement information in a location proximate to said character position cursor that does not obstruct the current view of said programming language statement;
modifying the present programming language statement based at least in part on the selected programming language statement information; and
automatically removing the passive assist window when the programming language statement has been amended. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
generating an informational display assist window based on an argument list;
distinguishing a mandatory argument from an optional argument within the argument list; and
highlighting a present argument within the argument list that corresponds to a present location within the present programming language statement.
-
-
6. The computer-readable medium of claim 1, the step of generating the set of programming language statement information includes having further computer-readable instructions for:
-
generating an argument list for the present programming language statement; and
identifying an argument type for at least one argument in the argument list selected from at least one of a group comprised of;
a mandatory argument and an optional argument.
-
-
7. The computer-readable medium of claim 6, having further computer-executable instructions for:
-
reverse parsing the present programming language statement into a plurality of tokens that each represent an individual component selected from at least one of a group comprised of;
an object entity segment and a delimiter, in response to a real time request by the computer programmer;
distinguishing the plurality of tokens between a procedure call token and any argument token in the argument list; and
binding the argument list.
-
-
8. The computer-readable medium of claim 1, wherein the generating step includes displaying a selectable list of items for modifying the present programming language statement.
-
9. The computer-readable medium of claim 8, wherein the selectable list of items are displayed in a selection menu assist window;
- and having further computer-executable instructions for enabling window control features for the selection menu assist window.
-
10. The computer-readable medium of claim 8, having further computer-executable instructions for replacing at least a portion of the present programming language statement with one of the list items in response to an input command by the computer programmer.
-
11. A system for passively assisting a user in real-time to modify a programming language statement, the system comprising:
-
a programming language editor having a character position cursor and a randomly positionable pointer;
means for partially compiling, in an automatic manner, available ones of a plurality of programming language statements in the computer program;
means for automatically generating an assist window that contains a set of programming language statement information in a location proximate to the character position cursor, the assist window being selected from a group consisting of a selection menu assist window and an informational display assist window;
means for automatically receiving a selection by the user from the set of programming language statement information; and
means for modifying a present programming language statement based at least in part on the selected programming language statement information. - View Dependent Claims (12, 13, 14, 15)
means for identifying a desired menu item from the selection menu assist window; and
means for replacing a segment of the present programming language statement at a present location of the character position cursor with the desired menu item in response to the means for identifying.
-
-
13. The system of claim 11 further comprising a means for displaying information in an informational display assist window, the information being related to at least one segment of the present programming language statement and selected from a group consisting of a symbol definition, a defined constant, a procedure call map, and an enumerated list.
-
14. The system of claim 11, wherein the contents of the assist window are automatically updated in response to a change in the current program statement.
-
15. The system of claim 11, including:
- means for specifying the present programming language statement and means for generating the assist window on a selected one of the plurality of programming language statements in response to a request by the user.
-
16. A real-time method for assisting a user to modify a programming language statement in a computer program, the real-time method comprising:
-
enabling a programming language editor having a character position cursor;
automatically determining an identity of input to the programming language editor by the user;
identifying a present programming language statement and at least one segment of the present programming language statement based on a location of the character position cursor;
automatically resolving symbolic portions of available ones of a plurality of programming language statements by means of a reverse parse evaluation into a partial program compilation that generates identifiable tokens for each of the at least one segment therein in response to the input being an on-demand request by the user;
determining a finite set of information related to the present programming language statement and the at least one segment of the present programming language statement based on the automatically generated partial program compilation;
automatically generating an assist window of the finite set of information;
receiving a representation of a selection by the computer programmer from the finite set of information;
modifying the present programming language statement based at least in part on the selected information;
enabling execution of an editing task in response to the input being a programming language editor command;
enabling a first type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the step of enabling a first type of commit includes;
identifying the commit key as a non-delimiter type commit key; and
discarding the commit key;
enabling a second type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the second type of commit includes;
identifying the commit key as a delimiter type commit key; and
inserting the commit key after the identified menu item in the present programming language statement; and
adding to the present programming language statement at a location of the character position cursor in response to the input being a non-commit key type input character. - View Dependent Claims (17, 18)
determining an identity of input to the programming language editor by the user;
enabling a reverse parse evaluation of the present programming language statement into identifiable tokens for each of the at least one segment therein in response to the input being an on-demand request by the user;
enabling execution of a editing task in response to the input being a programming language editor command;
enabling a first type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the step of enabling a first type of commit includes;
identifying the commit key as a non-delimiter type commit key; and
discarding the commit key;
enabling a second type of commit of an identified menu item from a selection menu assist window in response to the input being a commit key, wherein the second type of commit includes;
identifying the commit key as a delimiter type commit key; and
inserting the commit key after the identified menu item in the present programming language statement; and
adding to the present programming language statement at a location of the character position cursor in response to the input being anon-commit key type input character.
-
-
18. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 17.
-
19. An apparatus for supplementing an incomplete computer programming statement, comprising;
-
a display device automatically displaying an incomplete computer programming statement, the display device further displaying automatically, proximate to the display of the incomplete computer programming statement, a dynamic list of one or more textual programming entities;
an input device that receives user input selecting one of the textual programmatic entities displayed by the display device; and
a processor for automatically modifying the incomplete computer programming statement by adding to the incomplete programming statement the selected textual programmatic entity.
-
-
20. A method in a computer system for supplementing an incomplete computer programming statement, the method comprising the steps of:
-
(a) automatically displaying the incomplete computer programming statement;
(b) proximate to the display of an incomplete computer programming statement, displaying a dynamic list of one or more textual programmatic entities;
(c) receiving a user input selection of one of the displayed textual programmatic entities; and
(d) adding the selected textural programmatic entities to the displayed statement. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
(e) receiving user input entering the incomplete programming statement, and wherein step (b) is performed in response to step (e).
-
-
22. The method of claim 20, further comprising the step of:
-
(e) receiving user input specifying a supplement command, and wherein step (b) is performed in response to step (e).
-
-
23. The method of claim 22 wherein step (e) includes the step of receiving the keystroke combination {Ctrl-Space}.
-
24. The method of claim 20 wherein step (b) displays textual programmatic entities that can validly be included in a partial statement.
-
25. The method of claim 24 wherein the partial statement includes an object identifier, and step (b) displays members of an object identified by an object identifier.
-
26. The method of claim 24 wherein the partial statement includes a portion of a symbol, and wherein step (b) displays complete symbols in which the portion of a symbol is contained.
-
27. The method of claim 24 wherein the partial statement is a partial assignment statement identifying a variable to which a value is to be assigned, and wherein the identified variable has a type, and wherein the type has possible values, and wherein step (b) displays possible values of the type.
-
28. The method of claim 24 wherein the partial statement is a partial function call statement identifying a function, and wherein the identified function has one or more parameters, and wherein step (b) displays parameters of the identified function.
-
29. A computer-readable medium whose contents cause a computer system to supplement a computer programming statement by performing the steps of:
-
(a) automatically displaying the computer programming statement;
(b) proximate to the display of an incomplete computer programming statement, displaying a dynamic list of one or more textual programmatic entities;
(c) receiving a user input selection of one or more of the displayed textual programmatic entities; and
(d) adding the selected textual programmatic entities to the displayed statement. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37)
(e) receiving user input entering the programming statement, and wherein step (b) is performed in response to step (e).
-
-
31. The computer-readable medium of claim 29 wherein the contents of the computer-readable medium further cause the computer system to perform the step of:
-
(e) displaying in conjunction with the statement a position indicator indicating a position within the incomplete statement, and wherein step (b) displays textual programmatic entities that can validly be included in the statement at the position indicated by the position indicator.
-
-
32. The computer-readable medium of claim 29 wherein the statement includes an object identifier, and wherein step (b) displays members of an object identified by the object identifier.
-
33. A computer-readable medium of claim 29 wherein the statement includes a portion of a symbol, and wherein step (b) displays complete symbols in which the portion of a symbol is contained.
-
34. The computer-readable medium of claim 29 wherein the statement is an assignment statement identifying a variable to which a value is to be assigned, and wherein the identified variable has a type, and wherein the type has possible values, and wherein the step (b) displays possible values of the type.
-
35. The computer-readable medium of claim 29 wherein the statement is a function call statement identifying a function, and wherein the identified function has one or more parameters, and wherein step (b) displays parameters of the identified function.
-
36. The computer-readable medium of claim 29 wherein the contents of the computer-readable medium further cause the computer system to perform the step of:
(e) receiving user input specifying a supplement command, and wherein step (b) is performed in response to step (e).
-
37. The computer-readable medium of claim 36 wherein step (e) includes the step of receiving the keystroke combination {Ctrl-Space}.
Specification