English

From Low-Level Pointers to High-Level Containers

Programming Languages 2015-10-28 v1

Abstract

We propose a method that transforms a C program manipulating containers using low-level pointer statements into an equivalent program where the containers are manipulated via calls of standard high-level container operations like push_back or pop_front. The input of our method is a C program annotated by a special form of shape invariants which can be obtained from current automatic shape analysers after a slight modification. The resulting program where the low-level pointer statements are summarized into high-level container operations is more understandable and (among other possible benefits) better suitable for program analysis. We have implemented our approach and successfully tested it through a number of experiments with list-based containers, including experiments with simplification of program analysis by separating shape analysis from analysing data-related properties.

Cite

@article{arxiv.1510.07995,
  title  = {From Low-Level Pointers to High-Level Containers},
  author = {Kamil Dudka and Lukáš Holík and Petr Peringer and Marek Trtík and Tomáš Vojnar},
  journal= {arXiv preprint arXiv:1510.07995},
  year   = {2015}
}

Comments

An extended version of a VMCAI'16 paper

R2 v1 2026-06-22T11:30:16.061Z