Computer system and method for verifying functional equivalence
AssigneeCisco Technology, Inc.
InventorsVinod Pandarinathan, Richard Livingston, VanniaRajan Chellappan, James Lambert, Balachander Chandrasekaran
Life of this patent
Estimating the term…
Abstract
A computer system and method are provided for the verification of functional equivalence between at least two source codes residing on at least one computer. A comparison is carried out between a source code and a modified version of the source code. The comparison is performed to determine the functional equivalence between the two source codes. The functional equivalence is determined on the basis of type, scope and linkage of identifiers of the source codes. The identifiers are extracted from the assembly codes of the source codes.
Claims23
A method for verifying functional equivalence of source codes, comprising:
- providing a source code;
- modifying the source code to produce a modified source code;
- and
- verifying the functional equivalence between the source code and the modified source code.
A method for verifying the functional equivalence between a source code and a modified source code in a computer, comprising
- identifying the assembly code structure for the computer;
- generating assembly codes for the source code and the modified source code based on the assembly code structure for the computer;
- parsing the assembly codes for obtaining identifiers in the source code and the modified source code;
- extracting relationships between corresponding identifiers in the assembly codes, the relationships being extracted on the basis of type, scope and linkage of the identifiers;
- comparing the assembly codes for the functional equivalence on the basis of the extracted relationships;
- and
- reporting the reasons for functional inequality between the source code and the modified source code.
A system for verifying functional equivalence between at least two source codes residing in at least one computer, comprising:
- at least one CPU templates for identifying the assembly code structure for the computer on which the source codes reside;
- a generator for generating an assembly code for each of the source codes based on the identified assembly code structure;
- a parser for parsing the assembly codes for each of the source codes for obtaining identifiers in the source codes;
- an extractor for extracting relationships between corresponding identifiers in the assembly codes, the relationships being extracted on the basis of type, scope and linkage of the identifiers;
- and
- a comparator for comparing the assembly codes on the basis of the extracted relationships.
A system for verifying functional equivalence between at least two source codes in a computer, comprising:
- a processor;
- a machine-readable medium stored in the computer, the machine-readable medium capable of performing the steps of:
- modifying a source code to produce a modified source code;
- and
- verifying the functional equivalence between the source code and the modified source code.
A machine-readable medium having stored thereon instructions for:
- modifying a source code to produce a modified source code;
- and
- verifying the functional equivalence between the source code and the modified source code.
A method for verifying functional equivalence of a system comprising:
- providing a system;
- modifying the system to produce a modified system;
- and
- verifying if the modified system is a functional equivalence of the system.
A computer assembly for verifying functional equivalence of systems comprising:
- means for modifying a system to produce a modified system;
- and
- means for verifying if the modified system is a functional equivalence of the system.
Dependencies are inferred from the claim text.