The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Dec. 09, 1997
Filed:
Feb. 17, 1995
Rakesh Agrawal, San Jose, CA (US);
Linda Gail DeMichiel, Los Altos, CA (US);
Bruce Gilbert Lindsay, San Jose, CA (US);
International Business Machines Corporation, Armonk, NY (US);
Abstract
Programming language systems commonly allow for the use of function calls within a body of program source code. Since function names are generally descriptive, it is sometimes the case that two different functions ('function instances') will have the same name, and be distinguishable by having either a different number of arguments ('arity'), or arguments of different types. Both at compile time and at run time, the possibility of error exists if there is a mismatch between the arguments required by a function and the arguments provided to the function by the function call. Methods and related apparatus, for use in programming language systems, are set forth which support compile-time type checking and run-time dispatch for overloaded functions in an environment supporting subtypes with multiple inheritance. At both compile time and run time, the method of the invention takes into consideration the types of all arguments of a function call, to select a proper function instance to execute, for a given function invocation. In accordance with the invention, a precedence ordering is made from among multiple function instances having the same name and arity. Furthermore, the methods contemplated by the invention identify at compile time the set of function instances which might be invoked due to subtype substitutions for the actual arguments. Since type errors on function invocations or variable assignments are usually indicative of a programming error, program reliability can be improved and faults that would otherwise result in run-time errors can be corrected through the use of the invention prior to program deployment.