Program slicing aims to simplify programs by identifying and removing non-essential parts while preserving program behavior. It is widely used for program understanding, debugging, and software maintenance. This paper provides an overview of slicing techniques for probabilistic programs, which blend traditional programming constructs with random sampling and conditioning. These programs have experienced a notable resurgence in recent years due to new applications in fields such as differential privacy and artificial intelligence. We particularly focus on backward static slicing techniques, the most traditional form of program slicing. We review the foundational technique by Hur et al. and the subsequent developments by Amtoft and Banerjee, based on probabilistic control flow graphs. Through motivating examples and sketches of key definitions and results, we provide a clear, accessible, and self-contained presentation of slicing techniques for probabilistic programs.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Static Slicing for Probabilistic Programs: An Overview

  • Federico Olmedo

摘要

Program slicing aims to simplify programs by identifying and removing non-essential parts while preserving program behavior. It is widely used for program understanding, debugging, and software maintenance. This paper provides an overview of slicing techniques for probabilistic programs, which blend traditional programming constructs with random sampling and conditioning. These programs have experienced a notable resurgence in recent years due to new applications in fields such as differential privacy and artificial intelligence. We particularly focus on backward static slicing techniques, the most traditional form of program slicing. We review the foundational technique by Hur et al. and the subsequent developments by Amtoft and Banerjee, based on probabilistic control flow graphs. Through motivating examples and sketches of key definitions and results, we provide a clear, accessible, and self-contained presentation of slicing techniques for probabilistic programs.