Program Slicing Based on Monadic Semantics
نویسنده
چکیده
Syntax: p :: = program ide is b b :: = d begin c end d :: = const ide = l.e | var ide : t | d1; d2 c :: = ide := l.e | c1; c2| skip | read ide | write l.e |while l.e do c endwhile | if l.e then c1 else c2 endif
منابع مشابه
Towards a Formal Semantics-Based Technique for Interprocedural Slicing
Interprocedural slicing is a technique applied on programs with procedures which relies on how the information is passed at procedure call/return sites. Such a technique computes program slices (i.e. program fragments restricted w.r.t. a given criterion). The existing approaches to interprocedural slicing exploit the particularities of the underlying language semantics in order to compute progr...
متن کاملA trajectory-based strict semantics for program slicing
We define a program semantics that is preserved by dependence-based slicing algorithms. It is a natural extension, to non-terminating programs, of the semantics introduced by Weiser (which only considered terminating ones) and, as such, is an accurate characterisation of the semantic relationship between a program and the slice produced by these algorithms. Unlike other approaches, apart from W...
متن کاملA Generic Program Slicing Technique Based on Language Definitions
A formal executable semantics of a programming language has the necessary information to develop program debugging and reasoning techniques. In this paper we choose such a particular technique called program slicing and we introduce a generic algorithm which extracts a set of side-effects inducing constructs, directly from the formal executable semantics of a programming language. These constru...
متن کاملAn Analysis of the Current Program Slicing and Algorithmic Debugging Based Techniques
slice provides additional information: it says for each statement in the slice if the condition c =‘\n’ will be satisfied or not. (1) read(text); [false] (2) read(n); [false] (3) lines = 1; [c!=‘\n’] (4) chars = 1; [false] (5) subtext = ""; [false] (6) c = getChar(text); [false] (7) while (c != ‘\eof’) [false] (8) if (c == ‘\n’) [false] (9) then lines = lines + 1; [false] (10) chars = chars + 1...
متن کاملAbstract program slicing on dependence condition graphs
Program Slicing on Dependence Condition Graphs Raju Halder and Agostino Cortesi Università Ca’ Foscari Venezia, Italy {halder, cortesi}@unive.it Abstract Many slicing techniques have been proposed based on the traditional Program Dependence Graph (PDG) representation. In traditional PDGs, the notion of dependency between statements is based on syntactic presence of a variable in the definition ...
متن کامل