English

What Programs Want: Automatic Inference of Input Data Specifications

Programming Languages 2020-07-22 v1 Logic in Computer Science

Abstract

Nowadays, as machine-learned software quickly permeates our society, we are becoming increasingly vulnerable to programming errors in the data pre-processing or training software, as well as errors in the data itself. In this paper, we propose a static shape analysis framework for input data of data-processing programs. Our analysis automatically infers necessary conditions on the structure and values of the data read by a data-processing program. Our framework builds on a family of underlying abstract domains, extended to indirectly reason about the input data rather than simply reasoning about the program variables. The choice of these abstract domain is a parameter of the analysis. We describe various instances built from existing abstract domains. The proposed approach is implemented in an open-source static analyzer for Python programs. We demonstrate its potential on a number of representative examples.

Keywords

Cite

@article{arxiv.2007.10688,
  title  = {What Programs Want: Automatic Inference of Input Data Specifications},
  author = {Caterina Urban},
  journal= {arXiv preprint arXiv:2007.10688},
  year   = {2020}
}
R2 v1 2026-06-23T17:16:30.168Z