Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability
Reexamination Certificate
1998-08-20
2001-06-26
Hua, Ly V. (Department: 2131)
Error detection/correction and fault detection/recovery
Data processing system error or fault handling
Reliability and availability
C707S793000, C713S152000
Reexamination Certificate
active
06253336
ABSTRACT:
TECHNICAL FIELD
The present invention relates generally to computer system diagnostics and, in particular, to a computer-implemented capability for detecting and predicting the presence of individual year-2000 instruction failures within a compiled computer program.
BACKGROUND OF THE INVENTION
Computer systems used in various processing applications, such as processing insurance information, account information, inventory information, investment information, retirement information, as well as many other applications, often operate with records and data containing date-dependent information. In many computing systems, date information relating to years has been represented in two-digit year format, wherein the two digits represent a year between 1900 and 1999. Thus, for example, the digits “98” would represent the year 1998. Popular usage of this simplified date information format throughout the computer industry has resulted in an industry-recognized problem, often referred to as the “year 2000 problem” or the “y2k” problem.
The problem results from this simplification of date information. Namely, upon the turn-of-the-century (i.e., year 2000) two-digit year information intended to represent a year within the 21st Century will be indistinguishable within such computer systems from a year within the 20th Century. For example, a two-digit year value of “08” which is intended to represent the year 2008 will be indistinguishable from the year 1908 by such systems. More specifically, year-2000 problems occur when calculations cross the year-2000 boundary. For example, calculating two years beyond the year 1999 (represented as “99”) yields an arithmetically correct result of 101, but a computer program may truncate this to 01 since only two digits have traditionally been allowed. As a further example, the comparison of the year 1999 (represented as “99”) against 2000 (represented as “00”) may yield the result that a date in the year 1999 is after (i.e., arithmetically greater) than the year 2000.
Various solutions to the “year-2000 problem” have been suggested. Defining the term “year-2000 compliant” as the ability to recognize accurately dates both before and after Jan. 1, 2000, there are essentially four methods of achieving software compliance that have been commonly recognized. They are: (1) date expansion; (2) clock modification; (3) windowing; and (4) date modification. Briefly, described “date expansion” directs a user to survey each computer program and database to identify every location where dates or equivalent data compressions are in use and reformat each instance to use four instead of two digits. “Clock modification” involves changing all years in an existing database and the system clock by deducting 28 years. The reason for the use of 28 is that the calendar resets itself completely every 28 years. The “windowing” technique assumes the century of a two-digit year by comparing it to an arbitrary window of 100 years. Finally, “date modification” involves changing the symbolic system used to represent different years so as to accommodate more than the traditional 100 numbers in the two digits allocated for that purpose. For example, letters of the alphabet can be selectively substituted for numbers to expand the representation of the two digits.
The above-summarized tools currently used in the year-2000 remediation efforts are predominantly source-based and focus on identifying date variables. For example, the variable names in the application source code are examined seeking names that contain date-related parts such as YEAR, YR, YY, MONTH, MM, DAY, DD, DDD, etc. Such tools list all variables and indicate which statements possess them, however, they often miss any date variable that has a non-descriptive or obscure name, and they do not indicate which instructions will fail when confronted by year-2000 dates.
Therefore, a need exists in the “y2k problem” art for a new technique for identifying specific object-code instructions that may fail when confronted by a year-2000 date, instead of identifying source statements that process such dates, and secondly, for such a technique which does not rely on the use of appropriate variable names to identify the dates, but rather uses execution characteristics of the data itself.
DISCLOSURE OF THE INVENTION
Briefly described, the invention comprises in one aspect an article of manufacture which includes at least one computer usable medium having computer readable program code means embodied therein for causing evaluating of instructions of an application program. The computer readable program code means in the article of manufacture includes computer readable program code means for causing a computer to effect: evaluating an instruction of the application program to identify whether the instruction may fail when confronted with a year-2000 date, the evaluating including employing execution characteristics embodied by at least one trace record of the instruction in a trace file produced from execution of the instruction; and assigning a failure-pattern descriptor to the instruction of the application program if the evaluating determines that the instruction may fail when confronted by the year-2000 date, the failure-pattern descriptor being useful in bringing the application program into year-2000 compliance.
In another aspect, an article of manufacture is provided which includes at least one computer usable medium having computer readable program code means embodied therein for causing evaluating of instructions of an application program. The computer readable program code means in the article of manufacture includes computer readable program code means for causing a computer to effect: evaluating an instruction of the application program to identify whether the instruction may fail when confronted with a year-2000 date; determining whether the instruction has a characteristic of a predefined false-positive pattern; and assigning a failure-pattern descriptor to the instruction of the application program if the computer readable program code means for causing a computer to effect evaluating determines that the instruction may fail when confronted by the year-2000 date, wherein the failure-pattern descriptor is indicative of a possible false-positive instruction when the computer readable program code means for causing a computer to effect determining determines that the instruction has the characteristic of the predefined false-positive pattern, wherein the failure-pattern descriptor is useful in bringing the application program into year-2000 compliance.
In a further aspect, an article of manufacture is provided which includes at least one computer usable medium having computer readable program code means embodied therein for causing evaluating of object-code instructions of an application program. The computer readable program code means in the article of manufacture includes computer readable program code means for causing a computer to effect: providing at least one of a run-control value and a filter-specification value for use in evaluating an object-code instruction of the application program; and evaluating the object-code instruction of the application program to identify whether the instruction may fail when confronted with a year-2000 date, the evaluating including employing at least one of the run-control value and the filter-specification value in determining whether the instruction may fail when confronted with the year-2000 date.
To restate, a detection technique in accordance with the present invention analyzes object-code instruction traces, and therefore fills a void not presently being addressed by source-based tools. The object-code instruction traces are used to identify instructions that may fail when confronted by year-2000 dates instead of identifying all statements that process such dates, and secondly, does not rely on the use of an appropriate variable name or names to identify the dates. Rather, the present invention employs execution characteristics of the data itself.
Thus, a post-processor implemen
Esq. Lily Neff
Heslin & Rothenberg, P.C.
Hua Ly V.
International Business Machines - Corporation
LandOfFree
Predicting year-2000 instruction failures does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Predicting year-2000 instruction failures, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Predicting year-2000 instruction failures will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2507923