-N Programming Languages Seminar
-S Thomas Reps
-F University of Wisconsin
-T The Use of Program Profiling for Software Maintenance with Applications to the Year 2000 Problem
-D 2/20/97
-W Thursday
-M 4:00 PM
-P 2310 CS
-A "The world faces cataclysmic breakdown at the turn of the millennium!"

While this alarm may be old news to anyone who was present at the turn of the last millennium, there are significant reasons for residents of the (first) world to be concerned this time around: Because many computer programs use only two digits to record year values in date-valued data, they may process a year value of 00 as 1900 in cases where 2000 was intended. If the intended value is 2000 --- such as when 00 represents the value of the current year in a computation performed after the calendar rolls over on January 1, 2000 --- then a faulty computation may be carried out. Because computations can involve dates in the future, the phenomenon can occur well before the calendar rolls over on January 1, 2000. For example, if the (approximate) age of someone born in 1956 were calculated for January 1, 2000, he would appear to be 00 - 56 = -56 years old!

Last summer, I was asked by the Defense Advanced Research Projects Agency (DARPA) to help them plan a project aimed at reducing the impact of the Year 2000 (Y2K) problem on the Department of Defense. DARPA was particularly interested in whether there were "any techniques in the research community that could be applied to the Y2K problem and have impact beyond present commercial Y2K products and services". The most exciting of the ideas that turned up concerns a method for using path profiling as a heuristic to locate some of the sites in a program where there are problematic date manipulations. The technique is actually applicable to a much wider range of software-maintenance problems than just the Y2K problem, and offers new perspectives on testing, on the task of creating test data, and on what tools can be created to support program testing.

This is joint work with T. Ball, M. Das, and J. Larus. A paper describing the work is available over the World Wide Web at URL "http://www.cs.wisc.edu/wpis/papers/tr1335.ps".