  Spreadsheets are one of the most widely used programming environments, and
are widely deployed in domains like finance where errors can have catastrophic
consequences. We present a static analysis specifically designed to find
spreadsheet formula errors. Our analysis directly leverages the rectangular
character of spreadsheets. It uses an information-theoretic approach to
identify formulas that are especially surprising disruptions to nearby
rectangular regions. We present ExceLint, an implementation of our static
analysis for Microsoft Excel. We demonstrate that ExceLint is fast and
effective: across a corpus of 70 spreadsheets, ExceLint takes a median of 5
seconds per spreadsheet, and it significantly outperforms the state of the art
analysis.
