Higher-Order and Symbolic Computation, 16(4)297-339
Non-standard semantics for program slicing
Roberto Giacobazzi, Dipartimento di Informatica, Universita di
Verona, Strada Le Grazie 15, 37134 Verona, Italy
Isabella Mastroeni, Dipartimento di Informatica, Universita di
Verona, Strada Le Grazie 15, 37134 Verona, Italy
Abstract: In this paper we generalize the notion of
compositional semantics to cope with transfinite reductions of a
transition system. Standard denotational and predicate transformer
semantics, even though compositional, provide inadequate models for
some known program manipulation techniques. We are interested in the
systematic design of extended compositional semantics, observing
possible transfinite computations, i.e. computations that may occur
after a given number of infinite loops. This generalization is
necessary to deal with program manipulation techniques modifying the
termination status of programs, such as program slicing. We include
the transfinite generalization of semantics in the hierarchy developed
in 1997 by P. Cousot, where semantics at different levels of
abstraction are related with each other by abstract interpretation. We
prove that a specular hierarchy of non-standard semantics modeling
transfinite computations of programs can be specified in such a way
that the standard hierarchy can be derived by abstract interpretation.
We prove that non-standard transfinite denotational and predicate
transformer semantics can be both systematically derived as solutions
of simple abstract domain equations involving the basic operation of
reduced power of abstract domains. This allows us to prove the
optimality of these semantics, i.e. they are the most abstract
semantics in the hierarchy which are compositional and observe
respectively the terminating and initial states of transfinite
computations, providing an adequate mathematical model for program
manipulation.
Keywords: Abstract interpretation, semantics, reduced power,
compositional semantics, transfinite semantics, program manipulation,
program slicing
|
This article can be downloaded [here].
|
|