Tangible Program Histories

We propose a new language feature, a program history, that significantly reduces bookkeeping code in imperative programs. A history represents previous program state that is not explicitly recorded by the programmer. By reducing bookkeeping, programs are more convenient to write and less error-prone. Example program histories include a list that represents all the values previously assigned to a given variable, an accumulator that represents the sum of values assigned to a given variable, and a counter that represents the number of times a given loop has iterated. Many program histories can be implemented with low overhead.

tr-2000-54.ps
PostScript file

Details

TypeTechReport
NumberMSR-TR-2000-54
Pages8
InstitutionMicrosoft Research
> Publications > Tangible Program Histories