SymPas: Symbolic Program Slicing

  title={SymPas: Symbolic Program Slicing},
  author={Yingzhou Zhang},
  journal={Journal of Computer Science and Technology},
  • Yingzhou Zhang
  • Published 13 March 2019
  • Computer Science
  • Journal of Computer Science and Technology
Program slicing is a technique for simplifying programs by focusing on selected aspects of their behaviour. [] Key Method Instead of re-analysing a procedure multiple times to find its slices for each callling context, SymPas calculates a single symbolic (or parameterized) slice which can be instantiated at call sites avoiding re-analysis; it is implemented in LLVM to perform slicing on its intermediate representation (IR).

Computing Dynamic Slices of Concurrent Feature-Oriented Programs

This paper proposes a dynamic slicing algorithm for concurrent feature-oriented programs that is based on marking and unmarking of the executed nodes in CCFDG appropriately during runtime and can be extracted in O(1) i.e., in constant time.

DG: Analysis and Slicing of LLVM Bitcode

What analyses are implemented in DG and its use cases with the focus on program slicing are described and the project includes several tools built around the analyses.

The improved dynamic slicing for spectrum-based fault localization

An improved dynamic slicing for spectrum-based fault localization under a general framework is proposed and Experimental results show that this approach achieves significant improvement than the compared techniques.

SATURN - Software Deobfuscation Framework Based On LLVM

A generic approach for deobfuscation and recompilation of obfuscated code based on the compiler framework LLVM that uses strong compiler optimizations available in LLVM and Souper Optimizer to simplify away the obfuscation.

Deobfuscation Framework Based on LLVM

A generic approach for deobfuscation and recompilation of obfuscated code based on the compiler framework LLVM that uses strong compiler optimizations available in LLVM and Souper Optimizer to simplify away the obfuscation.



Static Backward Demand-Driven Slicing

This work presents a light-weight interprocedural algorithm for backward static slicing where the data dependence analysis is done using a variant of the Strongly Live Variables (SLV) analysis, and implemented its slicing algorithms, and made an experimental evaluation comparing them with the standard PDG-based algorithm for a number of example programs.

Conditioned program slicing

Improved interprocedural slicing algorithm

A one pass algorithm which traverses each edge in the slice at most once, improves upon the HRB algorithm which in the worst case traverses an edge twice and is optimal.

ORBS: language-independent program slicing

Five variants of ORBS are evaluated on ten programs of different sizes and languages showing that it is less expensive than similar existing techniques and able to handle systems written in multiple languages without specialist analysis tools.

Program Slicing

  • M. Weiser
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1984
In particular, finding statement-minimal slices is in general unsolvable, but using data flow analysis is sufficient to find approximate slices.

Modular monadic program slicing

Modular monadic slicing is proposed, basing on modular monadic semantics of the program analysed, that computes program slices on abstract syntax directly without intermediate structures such as dependence graphs.

A precise monadic dynamic slicing method

A survey of program slicing techniques

  • F. Tip
  • Computer Science
    J. Program. Lang.
  • 1995
An overview of the applications of program slicing, which include debugging, program integration, dataflow testing, and software maintenance is presented, including the various general approaches used to compute slices.

A new algorithm for the calculation of transitive dependences

A new method for calculating transitive dependencies in the presence of recursion is described, which requires neither the (explicit) calculation of the GMOD and GREF sets nor the construction of a linkage grammar and the corresponding subordinate characteristic graphs of the linkage grammar's nonterminals.

A novel formal approach to program slicing

  • Yingzhou Zhang
  • Computer Science
    Science in China Series F: Information Sciences
  • 2007
A novel formal method is presented, modular monadic program slicing, which abstracts the computation of program slicing as a slice monad transformer, and applies it to semantic descriptions of the program analyzed in a modular way, forming the corresponding monadic slicing algorithms.