# Imperative Functional Programs that Explain their Work

**Authors:** Wilmer Ricciotti, Jan Stolarek, Roly Perera, James Cheney

arXiv: 1705.07678 · 2017-09-12

## TL;DR

This paper extends dynamic program slicing techniques to imperative functional programs with references and exceptions, providing correctness proofs, an implementation, and experimental results.

## Contribution

It introduces a novel slicing approach for imperative functional programs, combining higher-order features with mutable state and control flow.

## Key findings

- Correctness and optimality of the slicing approach proven
- Implementation demonstrates practical applicability
- Experimental evaluation shows effectiveness

## Abstract

Program slicing provides explanations that illustrate how program outputs were produced from inputs. We build on an approach introduced in prior work by Perera et al., where dynamic slicing was defined for pure higher-order functional programs as a Galois connection between lattices of partial inputs and partial outputs. We extend this approach to imperative functional programs that combine higher-order programming with references and exceptions. We present proofs of correctness and optimality of our approach and a proof-of-concept implementation and experimental evaluation.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1705.07678/full.md

---
Source: https://tomesphere.com/paper/1705.07678