Imperative functional programs that explain their work

Abstract

Program slicing provides explanations that illustrate how program outputs were produced from inputs. We build on an approach introduced in prior work, 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.

Document Details

Document Type
Pub Defense Publication
Publication Date
Aug 29, 2017
Source ID
10.1145/3110258

Entities

People

  • James Cheney
  • Jan Stolarek
  • Roly Perera
  • Wilmer Ricciotti

Organizations

  • Air Force Office of Scientific Research
  • Engineering and Physical Sciences Research Council
  • European Research Council
  • University of Edinburgh

Tags

Fields of Study

  • Computer science

Readers

  • Computer Programming and Software Development.
  • Neural Network Machine Learning.
  • Parallel and Distributed Computing.