Results 1 
5 of
5
Equivalence of linear, free, liberal, structured program schemas is decidable in polynomial time
, 2004
"... A program schema defines a class of programs, all of which have identical statement structure, but whose expressions may differ. We define a class of syntactic similarity binary relations between linear structured schemas and show that these relations characterise schema equivalence for structured s ..."
Abstract

Cited by 6 (6 self)
 Add to MetaCart
A program schema defines a class of programs, all of which have identical statement structure, but whose expressions may differ. We define a class of syntactic similarity binary relations between linear structured schemas and show that these relations characterise schema equivalence for structured schemas which are linear, free and liberal. In this paper we prove that similarity implies equivalence for linear schemas; the proof of a nearconverse for schemas that are linear, free and liberal (LFL), which is much longer, is given in a Technical Report, which also contains the results of this paper. Our main result considerably extends the class of program schemas for which equivalence is known to be decidable, and suggests that linearity is a constraint worthy of further investigation. Key words: structured program schemas, conservative schemas, liberal schemas, free schemas, linear schemas, schema equivalence, static analysis, program slicing Preprint submitted to Elsevier Science 2 August 2006 1
Characterizing Minimal Semanticspreserving Slices of predicatelinear, Free, Liberal Program Schemas
"... Aprogramschemadefinesaclassofprograms,allofwhichhaveidenticalstatement structure, but whose functions and predicates may differ. A schema thus defines an entire class of programs according to how its symbols are interpreted. A slice of a schema is obtained from a schema by deleting some of its state ..."
Abstract
 Add to MetaCart
Aprogramschemadefinesaclassofprograms,allofwhichhaveidenticalstatement structure, but whose functions and predicates may differ. A schema thus defines an entire class of programs according to how its symbols are interpreted. A slice of a schema is obtained from a schema by deleting some of its statements. We prove that given a schema S which is predicatelinear, free and liberal, such that the true and false parts of every if predicate satisfy a simple additional condition, and a slicing Preprint submitted to Elsevier Sciencecriterion defined by the final value of a given variable after execution of any program defined by S, theminimalsliceofSwhich respects this slicing criterion contains all the symbols ‘needed ’ by the variable according to the data dependence and control dependence relations used in program slicing, which is the symbol set given by Weiser’s static slicing algorithm. Thus this algorithm gives predicateminimal slices for classes of programs represented by schemas satisfying our set of conditions. We also give an example to show that the corresponding result with respect to the slicing criterion defined by termination behaviour is incorrect. This strengthens a recent result in which S was required to be linear, free and liberal, and termination behaviour as a slicing criterion was not considered.
Under consideration for publication in Math. Struct. in Comp. Science On the computational complexity of dynamic slicing problems for program schemas
, 2010
"... Given a program, a quotient can be obtained from it by deleting zero or more statements. The field of program slicing is concerned with computing a quotient of a program which preserves part of the behaviour of the original program. All program slicing algorithms take account of the structural prope ..."
Abstract
 Add to MetaCart
Given a program, a quotient can be obtained from it by deleting zero or more statements. The field of program slicing is concerned with computing a quotient of a program which preserves part of the behaviour of the original program. All program slicing algorithms take account of the structural properties of a program such as control dependence and data dependence rather than the semantics of its functions and predicates, and thus work, in effect, with program schemas. The dynamic slicing criterion of Korel and Laski requires only that program behaviour is preserved in cases where the original program follows a particular path, and that the slice/quotient follows this path. In this paper we formalise Korel and Laski’s definition of a dynamic slice as applied to linear schemas, and also formulate a less restrictive definition in which the path through the original program need not be preserved by the slice. The less restrictive definition has the benefit of leading to smaller slices. For both definitions, we compute complexity bounds for the problems of establishing whether a given slice of a linear schema is a dynamic slice and whether a linear schema has a nontrivial dynamic slice and prove that the latter problem is NPhard in both cases. We also give an example to prove that minimal dynamic slices (whether or not they preserve the original path) need not be unique. 1.
A Very Efficient and Scalable Forward Static Slicing Approach
"... Abstract—A highly efficient lightweight forward static slicing method is introduced. The method is implemented as a tool on top of srcML, an XML representation of source code. The approach does not compute the program dependence graph but instead dependency information is computed as needed while co ..."
Abstract
 Add to MetaCart
Abstract—A highly efficient lightweight forward static slicing method is introduced. The method is implemented as a tool on top of srcML, an XML representation of source code. The approach does not compute the program dependence graph but instead dependency information is computed as needed while computing the slice on a variable. The result is a list of line numbers, dependent variables, aliases, and function calls that are part of the slice for a given variable. The tool produces the slice in this manner for all variables in a given system. The approach is highly scalable and can generate the slices for all variables of the Linux kernel in less than 13 minutes. Benchmark results are compared with the CodeSurfer slicing tool and the approach compares well with regards to accuracy of slices. Keywords program slicing; software maintenance; impact analysis; minimal slice I.