{"title":"概率程序的切片:对现有方法的回顾","authors":"Federico Olmedo","doi":"10.1145/3764581","DOIUrl":null,"url":null,"abstract":"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 article 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 artificial intelligence and differential privacy. Concretely, we review the three major slicing techniques currently available for probabilistic programs: the foundational technique by Hur et al., the subsequent development by Amtoft and Banerjee based on probabilistic control flow graphs, and the more recent approach by Navarro and Olmedo based on program specifications. We provide a clear, accessible, and self-contained presentation of these techniques, and compare them across multiple dimensions to provide a deeper insight into the current state-of-the-art in probabilistic program slicing.","PeriodicalId":50926,"journal":{"name":"ACM Computing Surveys","volume":"8 1","pages":""},"PeriodicalIF":28.0000,"publicationDate":"2025-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Slicing of Probabilistic Programs: A Review of Existing Approaches\",\"authors\":\"Federico Olmedo\",\"doi\":\"10.1145/3764581\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"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 article 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 artificial intelligence and differential privacy. Concretely, we review the three major slicing techniques currently available for probabilistic programs: the foundational technique by Hur et al., the subsequent development by Amtoft and Banerjee based on probabilistic control flow graphs, and the more recent approach by Navarro and Olmedo based on program specifications. We provide a clear, accessible, and self-contained presentation of these techniques, and compare them across multiple dimensions to provide a deeper insight into the current state-of-the-art in probabilistic program slicing.\",\"PeriodicalId\":50926,\"journal\":{\"name\":\"ACM Computing Surveys\",\"volume\":\"8 1\",\"pages\":\"\"},\"PeriodicalIF\":28.0000,\"publicationDate\":\"2025-08-28\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ACM Computing Surveys\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://doi.org/10.1145/3764581\",\"RegionNum\":1,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q1\",\"JCRName\":\"COMPUTER SCIENCE, THEORY & METHODS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Computing Surveys","FirstCategoryId":"94","ListUrlMain":"https://doi.org/10.1145/3764581","RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, THEORY & METHODS","Score":null,"Total":0}
Slicing of Probabilistic Programs: A Review of Existing Approaches
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 article 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 artificial intelligence and differential privacy. Concretely, we review the three major slicing techniques currently available for probabilistic programs: the foundational technique by Hur et al., the subsequent development by Amtoft and Banerjee based on probabilistic control flow graphs, and the more recent approach by Navarro and Olmedo based on program specifications. We provide a clear, accessible, and self-contained presentation of these techniques, and compare them across multiple dimensions to provide a deeper insight into the current state-of-the-art in probabilistic program slicing.
期刊介绍:
ACM Computing Surveys is an academic journal that focuses on publishing surveys and tutorials on various areas of computing research and practice. The journal aims to provide comprehensive and easily understandable articles that guide readers through the literature and help them understand topics outside their specialties. In terms of impact, CSUR has a high reputation with a 2022 Impact Factor of 16.6. It is ranked 3rd out of 111 journals in the field of Computer Science Theory & Methods.
ACM Computing Surveys is indexed and abstracted in various services, including AI2 Semantic Scholar, Baidu, Clarivate/ISI: JCR, CNKI, DeepDyve, DTU, EBSCO: EDS/HOST, and IET Inspec, among others.