Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
1997-02-24
2001-07-17
Banankhah, Majid (Department: 2151)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
C717S152000, C707S793000
Reexamination Certificate
active
06263376
ABSTRACT:
TECHNICAL FIELD
The present invention relates generally to a method and apparatus for implementing programs, and will be specifically disclosed as a method and apparatus for calling and executing functions.
BACKGROUND
Computers have become an integral part of modern society. In fact, it is hard to image a day where we are not touched by computer related technology. Many applications for computers require a gateway or interface for humans and computers to interact. Through computer interfaces, humans can receive information processed by computers and/or instruct computers to perform tasks. The hardware aspect of interfaces include common input/output devices, such as keypads, pointer devices, monitors, printers, microphones, speakers, etc. Behind hardware is an electronic aspect which is driven and controlled by software.
The software that instructs a computer or microprocessor to perform tasks is called a program. One type of program is a function, which usually performs a particular service or a series of discrete tasks. For instance, a function named DISPLAY could instruct a computer to display a value on a monitor. Functions are typically compiled within a larger program or are compiled within a library or collection of functions. Generally, a function is invoked by calling the function. When a function is called, parameter values are typically passed to the function to tailor the task that the function will perform. For instance, the DISPLAY function could be passed the value MYNAME (a string containing my name), which would result in the computer displaying that particular name on the screen. Parameter values usually come in a variety of different types, such as pointers, integers, strings, etc. While some functions have no parameters (i.e. no parameter values can be passed to the function), many functions have a variety of parameters to tailor the execution of the tasks therein.
Languages typically require function calls to be in a specific syntax for the function to work properly. Traditionally, parameter values must be listed in a specific order so that the function will know which parameter in the function will be associated with which value. A function call of this type is sometimes referred to as being sequentially dependent. If the values are passed in the wrong order, the function will either crash due to incompatible value types or an unintentional outcome will result. Additionally, many function syntaxes require that values be passed for all the parameters recognized in the function, even if those values are null or default values. When preparing function calls with such syntax, the human user has the burden of remembering all of the parameters and their types for each of the functions the user wishes to call. In the case of sequentially dependent functions, the user must additionally remember the order of the parameters. As such, the task of handling and instructing the computer to execute functions can be complicated and potentially fraught with errors.
The development of functions has traditionally been inflexible and required extensive coordination. As indicated earlier, functions are typically compiled into a program or a library. Once compiled, any modification or addition of functions requires recompilation. Therefore, it is very desirable to have a complete software package that will not need modification after compilation. This is particularly challenging when a team of software developers are each creating a series of functions since all of the developers must coordinate their efforts to develop the desired programs or libraries.
Therefore, there is a need for a method and apparatus which overcomes the problems in traditional function calls and their implementation.
SUMMARY OF THE INVENTION
Accordingly, an object of the invention is to provided flexible and generic method for implementing programs.
Another object of the invention is to provide a modular and extendable method and apparatus for executing and developing software.
Additional objects, advantages, and novel features of the invention will be set forth in part in the description that follows and in part will become apparent to those skilled in the art upon examining or practicing the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims.
One embodiment of the present invention is a method in a computer system comprising the step of receiving a command having zero or more sequentially independent parameter values. The command corresponds to a program having a number of recognized parameters equal to or greater than the number of parameter values in the command. Next, the parameter values in the command are parsed based at least in part on demarcations in the command. Then, the parsed parameter values are associated with the corresponding parameters recognized in the program. Any recognized parameters in the program which did not have corresponding parameter values in the command are set to default values. The program is then executed to perform one or more tasks using the parameter values and the default values.
Another aspect of the invention is a computer readable medium comprising one or more function modules. Each function module has one or more functions that each have a plurality of instructions. The computer readable medium also comprises a map containing information for determining the correspondence between the function modules and the functions. A parser is adapted to receive a script command having zero or more parameter values and to parse the script command. The parser is further adapted to place the parsed command into a buffer. The computer readable medium also comprises a flow control module adapted to receive the buffer and determine from the map the function module having the function corresponding to the command. The flow control module is further adapted to pass the buffer to the corresponding function for execution of the instructions therein.
A further aspect of the invention is a method in the computer system involving the step of receiving a command having zero or more sequentially independent parameter tags with each parameter tag having an associated value set. The command is parsed based at least in part on demarcations in the command. Next, the parsed command is encapsulated into a buffer comprising the zero or more parameter tags and the associated value sets. The buffer is then passed to a function corresponding to the command, which is then processed.
Yet another aspect of the present invention is a computer system comprising a plurality of function modules each having one or more functions. All of the functions are able to receive a buffer of a predetermined type. A map has an index of the correspondence between functions and the function modules. A parser is adapted to receive a function call corresponding to one of the functions. The function call has zero or more parameter tags with associated value sets. The parser is further adapted to parse the function call and place the parsed function call into a buffer of the predetermined type. A flow control module is adapted to receive the buffer and reference the map to determine which function module has the function corresponding to the function call. The flow control module is further adapted to pass the buffer to the function for execution.
Still other aspects of the present invention will become apparent to those skilled in the art from the following description of a preferred embodiment, which is simply by way of illustration one of the best modes contemplated for carrying out the invention. As will be realized, the invention is capable of other different obvious aspects all without departing from the invention. Accordingly, the drawings and descriptions are illustrative in nature and not restrictive.
REFERENCES:
patent: 4937864 (1990-06-01), Caseiras et al.
patent: 5075847 (1991-12-01), Fromme
patent: 5157779 (1992-10-01), Washburn et al.
patent: 5193178 (1993-03-01), Chillarege
Fisher Kamika L.
Hatch Charles A.
Mullins Timothy W.
Thurgood Brent W.
Vincent Robert Jeffrey
Banankhah Majid
Caldwell P
Dinsmore & Shohl LLP
Novell Inc.
LandOfFree
Generic run-time binding interpreter does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Generic run-time binding interpreter, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Generic run-time binding interpreter will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2484601