A logic for information flow analysis with an application to forward slicing of simple imperative programs

  • Authors:
  • Torben Amtoft;Anindya Banerjee

  • Affiliations:
  • Department of Computing and Information Sciences, Kansas State University, Manhattan, KS 66506, USA;Department of Computing and Information Sciences, Kansas State University, Manhattan, KS 66506, USA

  • Venue:
  • Science of Computer Programming
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

We specify an information flow analysis for a simple imperative language, using a Hoare-like logic. The logic facilitates static checking of a larger class of programs than can be checked by extant type-based approaches in which a program is deemed insecure when it contains an insecure subprogram. The logic is based on an abstract interpretation of a ''prelude'' semantics which makes independence between program variables explicit. Unlike other, more precise, approaches based on Hoare logics, our approach does not require a theorem prover to generate invariants. We demonstrate the modularity of our approach by showing that a frame rule holds in our logic. Finally, we show how our logic can be applied to a program transformation, namely, forward slicing: given a derivation of a program in the logic, with the information that variable l is independent of variable h, the slicing transformation systematically creates the forward l-slice of the program: the slice contains all the commands independent of h. We show that the slicing transformation is semantics preserving.