Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1999-09-07
2001-10-30
Elmore, Reba I. (Department: 2187)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S152000, C717S152000, C345S215000, C345S215000
Reexamination Certificate
active
06311323
ABSTRACT:
FIELD OF THE INVENTION
This invention relates to the field of computer programming tools and in particular to an intelligent real time tool to assist a computer programmer during the writing, evaluation, and/or maintenance of a computer program.
PROBLEM
Two related problems exist in the field of computer programming that include, but are not limited to, generating a computer program quickly and accurately on a first attempt, and maintaining a computer program with a minimal amount of effort once a computer program exists. The two related problems exist due to many factors that include, but are not limited to, the increasing complexity of computer programs generally, the architectural modularity of computer programs, and the increasing distribution of programmers that are contributing to a common program across campuses, countries, and even continents. Each of these factors places a premium on the efficiency of a programmer whose role is to develop and/or maintain a computer program.
It is a problem for a computer programmer to generate a computer program in a high level programming language quickly and accurately on a first attempt. To generate a large and/or complex computer program, the programmer must be able to enter computer programming language statements quickly and accurately in a traditionally manual process that is also referred to as “writing code” or “coding”. The process of entering computer programming language statements is typically done one keystroke and one statement at a time by way of a typewriter style keyboard input system that commonly accompanies most computing systems.
As a computer program evolves during the coding process, accuracy becomes a particular problem due in part to the arcane syntax of programming languages in addition to the often cryptic grammar and/or spelling that is characteristic of programmer-declared object entities in a computer program, such as variable names, parameter names, structure names, structure members, object names, object property types, and the like. Not only must references to a declared entity be spelled correctly, the declared entity must also be used in the correct context and syntax if the resulting computer program is expected to compile without errors and/or execute as intended.
Examples of commercially available and widely used programming languages include, but are not limited to, object oriented programming languages such Visual Basic or C++. Object oriented programming languages, as with most traditionally used high level programming languages, contain types of programming language statements that can be grouped into two basic categories. The basic categories include, but are not limited to, operator embedded statements and procedure calls. For example purposes only, object oriented programming language examples are the focus of the remaining discussion.
An operator embedded statement includes at least one defined object entity that is used with varying combinations of unary, binary, and/or assignment operators. An object entity is a basic building block of an object oriented programming language statement and typically includes a hierarchical object name and member name format such as the following:
<object name> <operator> <member name>
where <object name> and <member name> are discrete hierarchical segments of an object oriented programming language structure. An <operator> is a character defined by the programming language syntax that in the present example separates, delineates and/or indicates a syntactic relationship, between an object and a member of the object. Common examples of these delimiting type operator characters include the dot “.” and the pointer “→” characters, in addition to the parenthesis “( )” and the square brackets “[ ]”.
There are typically multiple objects defined in an object oriented computer program, any one of which can be used for the <object name> segment of a programming language statement. For any given object identified by <object name>, there can be multiple members and/or levels of members that can be validly used for the <member name> segment of a programming language statement. A named member is often referred to as a property or method. A valid combination of <object name> and <member name> together define an object entity that may be of any type including, but not limited to, a variable of some data type, a symbolic constant of some data type, or an array or structure or union, or any portion thereof.
Sets of <object name> and <member name> object entities can be separated by or used in conjunction with operators that can include, but are not limited to, logical, bitwise logical, relational, arithmetic, or character manipulation operators, from the well known sets of unary, binary, and assignment operators that are common among programming languages. Unary, binary, and assignment operators can include the above identified delimiter operators in addition to any one or combination of the set of characters {=−+*{circumflex over ( )}!:<>/}. One example of object entities used in an expression is the following simple assignment statement:
<object name>. <member name>=<value>
where <value> is some object entity or constant having a data type that is compatible with the object entity defined by <object name> and <member name>. Another example of object entities used in an expression can include:
<object entity 1>=<object entity 2>+<object entity 3>
However, with any of the above exemplary constructions of programming language statements, in addition to the variety of constructions not shown herein, at least one object entity must be constructed somewhere within the programming language statement. It is the construction of even one object entity that presents the opportunity for typographical errors, incorrect syntax, and other human programmer introduced problems.
Another fundamental category of programming language statement is the procedure call, also referred to as a function call. A procedure call can, but is not required to, include at least one argument in an argument list. The terms argument and argument list are often used as synonyms with and/or mixed and matched with the terms parameter and parameter list. For purposes of this discussion the terms argument and argument list are used. An argument is another type of object entity in a programming language. The basic format of a procedure call typically includes a procedure name followed by a comma-separated argument list within parentheses as follows:
<procedure name>(<argument 1>, . . . , <argument n>)
The argument list may include mandatory or optional arguments or no arguments at all. If no arguments exist the paretheses may be present but empty or the parentheses may not exist at all. An argument can be an individual object entity or an expression as discussed above with embedded operators, or the argument can itself be a procedure call or an object having a selection of members to choose from. A common requirement of nested procedure calls is that the return value of the lowest level nested call must be returned so that a value exists for the argument that is the procedure call.
However, regardless of the number of arguments or the type of argument in an argument list for a given procedure call, each argument must resolve to a value of a specific type that is compatible with the argument definition. Further, each value for each argument must be located in a specific position in an argument list to avoid errors. It is the procedure name and the type, order, and mandatory or optional nature of arguments for the procedure that present numerous opportunities for typographical errors, incorrect syntax, and other human programmer introduced problems.
The difficulty in writing programming language statements is that the programmer must remember the statement syntax in addition to the spe
Cibulka Martin
Curland Matthew James
Shulman Matthew
Sobeski David Anthony
Elmore Reba I.
Leydig , Voit & Mayer, Ltd.
Microsoft Corporation
LandOfFree
Computer programming language statement building and... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Computer programming language statement building and..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Computer programming language statement building and... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2568958