An Incremental Slicing Method for Functional Programs

09/23/2017
by   Prasanna Kumar K., et al.
0

Several applications of slicing require a program to be sliced with respect to more than one slicing criterion. Program specialization, parallelization and cohesion measurement are examples of such applications. These applications can benefit from an incremental static slicing method in which a significant extent of the computations for slicing with respect to one criterion could be reused for another. In this paper, we consider the problem of incremental slicing of functional programs. We first present a non-incremental version of the slicing algorithm which does a polyvariant analysis 1 of functions. Since polyvariant analyses tend to be costly, we compute a compact context-independent summary of each function and then use this summary at the call sites of the function. The construction of the function summary is non-trivial and helps in the development of the incremental version. The incremental method, on the other hand, consists of a one-time pre-computation step that uses the non-incremental version to slice the program with respect to a fixed default slicing criterion and processes the results further to a canonical form. Presented with an actual slicing criterion, the incremental step involves a low-cost computation that uses the results of the pre-computation to obtain the slice. We have implemented a prototype of the slicer for a pure subset of Scheme, with pairs and lists as the only algebraic data types. Our experiments show that the incremental step of the slicer runs orders of magnitude faster than the non-incremental version. We have also proved the correctness of our incremental algorithm with respect to the non-incremental version.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/20/2018

Fungi: Typed incremental computation with names

Incremental computations attempt to exploit input similarities over time...
research
05/13/2021

Verification of the Incremental Merkle Tree Algorithm with Dafny

The Deposit Smart Contract (DSC) is an instrumental component of the Eth...
research
05/07/2021

lazybvtoint at the SMT Competition 2020

lazybvtoint is a new prototype SMT-solver, that will participate in the ...
research
10/11/2022

Stateful Realizers for Nonstandard Analysis

In this paper we propose a new approach to realizability interpretations...
research
06/09/2021

Incremental space-filling design based on coverings and spacings: improving upon low discrepancy sequences

The paper addresses the problem of defining families of ordered sequence...
research
11/14/2018

Fixing Incremental Computation: Derivatives of Fixpoints, and the Recursive Semantics of Datalog

Incremental computation has recently been studied using the concepts of ...
research
06/24/2015

Incremental RANSAC for Online Relocation in Large Dynamic Environments

Vehicle relocation is the problem in which a mobile robot has to estimat...

Please sign up or login with your details

Forgot password? Click here to reset