首页 > 最新文献

Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation最新文献

英文 中文
Web question answering with neurosymbolic program synthesis 网络问题回答与神经符号程序合成
Qiaochu Chen, Aaron Lamoreaux, Xinyu Wang, Greg Durrett, O. Bastani, Işıl Dillig
In this paper, we propose a new technique based on program synthesis for extracting information from webpages. Given a natural language query and a few labeled webpages, our method synthesizes a program that can be used to extract similar types of information from other unlabeled webpages. To handle websites with diverse structure, our approach employs a neurosymbolic DSL that incorporates both neural NLP models as well as standard language constructs for tree navigation and string manipulation. We also propose an optimal synthesis algorithm that generates all DSL programs that achieve optimal F1 score on the training examples. Our synthesis technique is compositional, prunes the search space by exploiting a monotonicity property of the DSL, and uses transductive learning to select programs with good generalization power. We have implemented these ideas in a new tool called WebQA and evaluate it on 25 different tasks across multiple domains. Our experiments show that WebQA significantly outperforms existing tools such as state-of-the-art question answering models and wrapper induction systems.
本文提出了一种基于程序合成的网页信息提取技术。给定一个自然语言查询和一些标记的网页,我们的方法合成了一个程序,该程序可用于从其他未标记的网页中提取类似类型的信息。为了处理具有不同结构的网站,我们的方法采用了一种神经符号DSL,它结合了神经NLP模型以及用于树导航和字符串操作的标准语言结构。我们还提出了一种最优合成算法,该算法生成所有在训练样例上达到最优F1分数的DSL程序。我们的合成技术是复合的,利用DSL的单调性对搜索空间进行修剪,并使用换向学习选择具有良好泛化能力的程序。我们已经在一个名为WebQA的新工具中实现了这些想法,并在多个领域的25个不同任务中对其进行了评估。我们的实验表明,WebQA显著优于现有的工具,如最先进的问答模型和包装归纳系统。
{"title":"Web question answering with neurosymbolic program synthesis","authors":"Qiaochu Chen, Aaron Lamoreaux, Xinyu Wang, Greg Durrett, O. Bastani, Işıl Dillig","doi":"10.1145/3453483.3454047","DOIUrl":"https://doi.org/10.1145/3453483.3454047","url":null,"abstract":"In this paper, we propose a new technique based on program synthesis for extracting information from webpages. Given a natural language query and a few labeled webpages, our method synthesizes a program that can be used to extract similar types of information from other unlabeled webpages. To handle websites with diverse structure, our approach employs a neurosymbolic DSL that incorporates both neural NLP models as well as standard language constructs for tree navigation and string manipulation. We also propose an optimal synthesis algorithm that generates all DSL programs that achieve optimal F1 score on the training examples. Our synthesis technique is compositional, prunes the search space by exploiting a monotonicity property of the DSL, and uses transductive learning to select programs with good generalization power. We have implemented these ideas in a new tool called WebQA and evaluate it on 25 different tasks across multiple domains. Our experiments show that WebQA significantly outperforms existing tools such as state-of-the-art question answering models and wrapper induction systems.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78564173","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 19
Gleipnir: toward practical error analysis for Quantum programs Gleipnir:面向量子程序的实际误差分析
Runzhou Tao, Yunong Shi, Jianan Yao, J. Hui, F. Chong, Ronghui Gu
Practical error analysis is essential for the design, optimization, and evaluation of Noisy Intermediate-Scale Quantum(NISQ) computing. However, bounding errors in quantum programs is a grand challenge, because the effects of quantum errors depend on exponentially large quantum states. In this work, we present Gleipnir, a novel methodology toward practically computing verified error bounds in quantum programs. Gleipnir introduces the (ρ,δ)-diamond norm, an error metric constrained by a quantum predicate consisting of the approximate state ρ and its distance δ to the ideal state ρ. This predicate (ρ,δ) can be computed adaptively using tensor networks based on the Matrix Product States. Gleipnir features a lightweight logic for reasoning about error bounds in noisy quantum programs, based on the (ρ,δ)-diamond norm metric. Our experimental results show that Gleipnir is able to efficiently generate tight error bounds for real-world quantum programs with 10 to 100 qubits, and can be used to evaluate the error mitigation performance of quantum compiler transformations.
实际误差分析对于噪声中尺度量子计算的设计、优化和评估至关重要。然而,量子程序中的边界误差是一个巨大的挑战,因为量子误差的影响依赖于指数级大的量子态。在这项工作中,我们提出了Gleipnir,一种用于实际计算量子程序中验证错误界限的新方法。Gleipnir引入了(ρ,δ)-diamond范数,这是一个由近似状态ρ和它到理想状态ρ的距离δ组成的量子谓词约束的误差度量。这个谓词(ρ,δ)可以使用基于矩阵积态的张量网络自适应地计算。Gleipnir具有轻量级逻辑,用于基于(ρ,δ)-钻石范数度量来推理噪声量子程序中的误差界。实验结果表明,Gleipnir能够有效地为10 ~ 100量子位的实际量子程序生成严格的错误边界,并可用于评估量子编译器转换的错误缓解性能。
{"title":"Gleipnir: toward practical error analysis for Quantum programs","authors":"Runzhou Tao, Yunong Shi, Jianan Yao, J. Hui, F. Chong, Ronghui Gu","doi":"10.1145/3453483.3454029","DOIUrl":"https://doi.org/10.1145/3453483.3454029","url":null,"abstract":"Practical error analysis is essential for the design, optimization, and evaluation of Noisy Intermediate-Scale Quantum(NISQ) computing. However, bounding errors in quantum programs is a grand challenge, because the effects of quantum errors depend on exponentially large quantum states. In this work, we present Gleipnir, a novel methodology toward practically computing verified error bounds in quantum programs. Gleipnir introduces the (ρ,δ)-diamond norm, an error metric constrained by a quantum predicate consisting of the approximate state ρ and its distance δ to the ideal state ρ. This predicate (ρ,δ) can be computed adaptively using tensor networks based on the Matrix Product States. Gleipnir features a lightweight logic for reasoning about error bounds in noisy quantum programs, based on the (ρ,δ)-diamond norm metric. Our experimental results show that Gleipnir is able to efficiently generate tight error bounds for real-world quantum programs with 10 to 100 qubits, and can be used to evaluate the error mitigation performance of quantum compiler transformations.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78019289","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
On probabilistic termination of functional programs with continuous distributions 连续分布函数程序的概率终止
Raven Beutner, Luke Ong
We study termination of higher-order probabilistic functional programs with recursion, stochastic conditioning and sampling from continuous distributions. Reasoning about the termination probability of programs with continuous distributions is hard, because the enumeration of terminating executions cannot provide any non-trivial bounds. We present a new operational semantics based on traces of intervals, which is sound and complete with respect to the standard sampling-based semantics, in which (countable) enumeration can provide arbitrarily tight lower bounds. Consequently we obtain the first proof that deciding almost-sure termination (AST) for programs with continuous distributions is Π20-complete (for CbN). We also provide a compositional representation of our semantics in terms of an intersection type system. In the second part, we present a method of proving AST for non-affine programs, i.e., recursive programs that can, during the evaluation of the recursive body, make multiple recursive calls (of a first-order function) from distinct call sites. Unlike in a deterministic language, the number of recursion call sites has direct consequences on the termination probability. Our framework supports a proof system that can verify AST for programs that are well beyond the scope of existing methods. We have constructed prototype implementations of our methods for computing lower bounds on the termination probability, and AST verification.
研究了具有递归、随机条件和连续分布抽样的高阶概率泛函规划的终止问题。关于具有连续分布的程序的终止概率的推理是困难的,因为终止执行的枚举不能提供任何非平凡的界限。我们提出了一种新的基于区间轨迹的运算语义,它相对于标准的基于采样的语义是健全和完备的,其中(可数)枚举可以提供任意紧的下界。因此,我们首次证明了具有连续分布的程序的决定几乎确定终止(AST)为Π20-complete(对于CbN)。我们还根据交集类型系统提供了语义的组合表示。在第二部分中,我们提出了一种证明非仿射程序的AST的方法,即递归程序,在递归体的求值过程中,可以从不同的调用点进行多次递归调用(对一阶函数)。与确定性语言不同,递归调用站点的数量对终止概率有直接影响。我们的框架支持一个证明系统,该系统可以对远远超出现有方法范围的程序进行AST验证。我们已经构造了我们的方法的原型实现,用于计算终止概率的下界,以及AST验证。
{"title":"On probabilistic termination of functional programs with continuous distributions","authors":"Raven Beutner, Luke Ong","doi":"10.1145/3453483.3454111","DOIUrl":"https://doi.org/10.1145/3453483.3454111","url":null,"abstract":"We study termination of higher-order probabilistic functional programs with recursion, stochastic conditioning and sampling from continuous distributions. Reasoning about the termination probability of programs with continuous distributions is hard, because the enumeration of terminating executions cannot provide any non-trivial bounds. We present a new operational semantics based on traces of intervals, which is sound and complete with respect to the standard sampling-based semantics, in which (countable) enumeration can provide arbitrarily tight lower bounds. Consequently we obtain the first proof that deciding almost-sure termination (AST) for programs with continuous distributions is Π20-complete (for CbN). We also provide a compositional representation of our semantics in terms of an intersection type system. In the second part, we present a method of proving AST for non-affine programs, i.e., recursive programs that can, during the evaluation of the recursive body, make multiple recursive calls (of a first-order function) from distinct call sites. Unlike in a deterministic language, the number of recursion call sites has direct consequences on the termination probability. Our framework supports a proof system that can verify AST for programs that are well beyond the scope of existing methods. We have constructed prototype implementations of our methods for computing lower bounds on the termination probability, and AST verification.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90518468","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Provable repair of deep neural networks 深度神经网络的可证明修复
Matthew Sotoudeh, Aditya V. Thakur
Deep Neural Networks (DNNs) have grown in popularity over the past decade and are now being used in safety-critical domains such as aircraft collision avoidance. This has motivated a large number of techniques for finding unsafe behavior in DNNs. In contrast, this paper tackles the problem of correcting a DNN once unsafe behavior is found. We introduce the provable repair problem, which is the problem of repairing a network N to construct a new network N′ that satisfies a given specification. If the safety specification is over a finite set of points, our Provable Point Repair algorithm can find a provably minimal repair satisfying the specification, regardless of the activation functions used. For safety specifications addressing convex polytopes containing infinitely many points, our Provable Polytope Repair algorithm can find a provably minimal repair satisfying the specification for DNNs using piecewise-linear activation functions. The key insight behind both of these algorithms is the introduction of a Decoupled DNN architecture, which allows us to reduce provable repair to a linear programming problem. Our experimental results demonstrate the efficiency and effectiveness of our Provable Repair algorithms on a variety of challenging tasks.
深度神经网络(dnn)在过去十年中越来越受欢迎,现在被用于飞机避碰等安全关键领域。这激发了大量在dnn中发现不安全行为的技术。相比之下,本文解决了一旦发现不安全行为就纠正DNN的问题。引入可证明修复问题,即修复网络N以构造满足给定规范的新网络N '的问题。如果安全规范是在一个有限的点集合上,我们的可证明点修复算法可以找到满足规范的可证明最小修复,而不管使用的激活函数是什么。对于包含无穷多个点的凸多面体的安全规范,我们的可证明多面体修复算法可以使用分段线性激活函数找到满足dnn规范的可证明最小修复。这两种算法背后的关键见解是引入了解耦DNN架构,这使我们能够将可证明的修复减少到线性规划问题。我们的实验结果证明了我们的可证明修复算法在各种具有挑战性的任务上的效率和有效性。
{"title":"Provable repair of deep neural networks","authors":"Matthew Sotoudeh, Aditya V. Thakur","doi":"10.1145/3453483.3454064","DOIUrl":"https://doi.org/10.1145/3453483.3454064","url":null,"abstract":"Deep Neural Networks (DNNs) have grown in popularity over the past decade and are now being used in safety-critical domains such as aircraft collision avoidance. This has motivated a large number of techniques for finding unsafe behavior in DNNs. In contrast, this paper tackles the problem of correcting a DNN once unsafe behavior is found. We introduce the provable repair problem, which is the problem of repairing a network N to construct a new network N′ that satisfies a given specification. If the safety specification is over a finite set of points, our Provable Point Repair algorithm can find a provably minimal repair satisfying the specification, regardless of the activation functions used. For safety specifications addressing convex polytopes containing infinitely many points, our Provable Polytope Repair algorithm can find a provably minimal repair satisfying the specification for DNNs using piecewise-linear activation functions. The key insight behind both of these algorithms is the introduction of a Decoupled DNN architecture, which allows us to reduce provable repair to a linear programming problem. Our experimental results demonstrate the efficiency and effectiveness of our Provable Repair algorithms on a variety of challenging tasks.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90712661","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 39
Beyond the elementary representations of program invariants over algebraic data types 超越代数数据类型上的程序不变量的基本表示
Y. Kostyukov, D. Mordvinov, Grigory Fedyukovich
First-order logic is a natural way of expressing properties of computation. It is traditionally used in various program logics for expressing the correctness properties and certificates. Although such representations are expressive for some theories, they fail to express many interesting properties of algebraic data types (ADTs). In this paper, we explore three different approaches to represent program invariants of ADT-manipulating programs: tree automata, and first-order formulas with or without size constraints. We compare the expressive power of these representations and prove the negative definability of both first-order representations using the pumping lemmas. We present an approach to automatically infer program invariants of ADT-manipulating programs by a reduction to a finite model finder. The implementation called RInGen has been evaluated against state-of-the-art invariant synthesizers and has been experimentally shown to be competitive. In particular, program invariants represented by automata are capable of expressing more complex properties of computation and their automatic construction is often less expensive.
一阶逻辑是表达计算性质的一种自然方式。它传统上用于各种程序逻辑中,用于表示正确性属性和证书。尽管这样的表示对于某些理论是表达性的,但它们不能表达代数数据类型(adt)的许多有趣的性质。在本文中,我们探讨了三种不同的方法来表示adt操作程序的程序不变量:树自动机和一阶公式有或没有大小约束。我们比较了这些表示的表达能力,并利用抽运引理证明了这两种一阶表示的负可定义性。本文提出了一种通过简化为有限模型查找器来自动推断adt操作程序的程序不变量的方法。被称为RInGen的实现已经与最先进的不变合成器进行了评估,并在实验中证明具有竞争力。特别是,由自动机表示的程序不变量能够表达更复杂的计算性质,并且它们的自动构造通常更便宜。
{"title":"Beyond the elementary representations of program invariants over algebraic data types","authors":"Y. Kostyukov, D. Mordvinov, Grigory Fedyukovich","doi":"10.1145/3453483.3454055","DOIUrl":"https://doi.org/10.1145/3453483.3454055","url":null,"abstract":"First-order logic is a natural way of expressing properties of computation. It is traditionally used in various program logics for expressing the correctness properties and certificates. Although such representations are expressive for some theories, they fail to express many interesting properties of algebraic data types (ADTs). In this paper, we explore three different approaches to represent program invariants of ADT-manipulating programs: tree automata, and first-order formulas with or without size constraints. We compare the expressive power of these representations and prove the negative definability of both first-order representations using the pumping lemmas. We present an approach to automatically infer program invariants of ADT-manipulating programs by a reduction to a finite model finder. The implementation called RInGen has been evaluated against state-of-the-art invariant synthesizers and has been experimentally shown to be competitive. In particular, program invariants represented by automata are capable of expressing more complex properties of computation and their automatic construction is often less expensive.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88798940","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
Automatically enforcing fresh and consistent inputs in intermittent systems 在间歇性系统中自动执行新鲜和一致的输入
Milijana Surbatovich, Limin Jia, Brandon Lucia
Intermittently powered energy-harvesting devices enable new applications in inaccessible environments. Program executions must be robust to unpredictable power failures, introducing new challenges in programmability and correctness. One hard problem is that input operations have implicit constraints, embedded in the behavior of continuously powered executions, on when input values can be collected and used. This paper aims to develop a formal framework for enforcing these constraints. We identify two key properties---freshness (i.e., uses of inputs must satisfy the same time constraints as in continuous executions) and temporal consistency (i.e., the collection of a set of inputs must satisfy the same time constraints as in continuous executions). We formalize these properties and show that they can be enforced using atomic regions. We develop Ocelot, an LLVM-based analysis and transformation tool targeting Rust, to enforce these properties automatically. Ocelot provides the programmer with annotations to express these constraints and infers atomic region placement in a program to satisfy them. We then formalize Ocelot's design and show that Ocelot generates correct programs with little performance cost or code changes.
间歇供电的能量收集设备可以在不可访问的环境中实现新的应用。程序执行必须健壮地应对不可预测的电源故障,这会给可编程性和正确性带来新的挑战。一个难题是输入操作具有隐式约束,嵌入到持续执行的行为中,限制何时可以收集和使用输入值。本文旨在开发一个正式的框架来执行这些约束。我们确定了两个关键属性——新鲜度(即,输入的使用必须满足与连续执行相同的时间约束)和时间一致性(即,一组输入的集合必须满足与连续执行相同的时间约束)。我们将形式化这些属性,并说明它们可以使用原子区域来实现。我们开发了Ocelot,一个基于llvm的分析和转换工具,以Rust为目标,自动执行这些属性。Ocelot为程序员提供了表达这些约束的注释,并推断出程序中原子区域的位置以满足这些约束。然后,我们将Ocelot的设计形式化,并展示Ocelot在很少的性能成本或代码更改的情况下生成正确的程序。
{"title":"Automatically enforcing fresh and consistent inputs in intermittent systems","authors":"Milijana Surbatovich, Limin Jia, Brandon Lucia","doi":"10.1145/3453483.3454081","DOIUrl":"https://doi.org/10.1145/3453483.3454081","url":null,"abstract":"Intermittently powered energy-harvesting devices enable new applications in inaccessible environments. Program executions must be robust to unpredictable power failures, introducing new challenges in programmability and correctness. One hard problem is that input operations have implicit constraints, embedded in the behavior of continuously powered executions, on when input values can be collected and used. This paper aims to develop a formal framework for enforcing these constraints. We identify two key properties---freshness (i.e., uses of inputs must satisfy the same time constraints as in continuous executions) and temporal consistency (i.e., the collection of a set of inputs must satisfy the same time constraints as in continuous executions). We formalize these properties and show that they can be enforced using atomic regions. We develop Ocelot, an LLVM-based analysis and transformation tool targeting Rust, to enforce these properties automatically. Ocelot provides the programmer with annotations to express these constraints and infers atomic region placement in a program to satisfy them. We then formalize Ocelot's design and show that Ocelot generates correct programs with little performance cost or code changes.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86914375","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
Sound probabilistic inference via guide types 通过引导类型进行合理的概率推断
Di Wang, Jan Hoffmann, T. Reps
Probabilistic programming languages aim to describe and automate Bayesian modeling and inference. Modern languages support programmable inference, which allows users to customize inference algorithms by incorporating guide programs to improve inference performance. For Bayesian inference to be sound, guide programs must be compatible with model programs. One pervasive but challenging condition for model-guide compatibility is absolute continuity, which requires that the model and guide programs define probability distributions with the same support. This paper presents a new probabilistic programming language that guarantees absolute continuity, and features general programming constructs, such as branching and recursion. Model and guide programs are implemented as coroutines that communicate with each other to synchronize the set of random variables they sample during their execution. Novel guide types describe and enforce communication protocols between coroutines. If the model and guide are well-typed using the same protocol, then they are guaranteed to enjoy absolute continuity. An efficient algorithm infers guide types from code so that users do not have to specify the types. The new programming language is evaluated with an implementation that includes the type-inference algorithm and a prototype compiler that targets Pyro. Experiments show that our language is capable of expressing a variety of probabilistic models with nontrivial control flow and recursion, and that the coroutine-based computation does not introduce significant overhead in actual Bayesian inference.
概率编程语言旨在描述和自动化贝叶斯建模和推理。现代语言支持可编程推理,它允许用户通过结合引导程序来定制推理算法,以提高推理性能。为了使贝叶斯推理可靠,引导程序必须与模型程序兼容。模型-指南兼容性的一个普遍但具有挑战性的条件是绝对连续性,这要求模型和指南程序定义具有相同支持的概率分布。本文提出了一种新的概率编程语言,它保证了绝对连续性,并具有分支和递归等通用编程结构。模型和引导程序被实现为相互通信的协程,以同步它们在执行期间采样的随机变量集。新的指南类型描述和强制协程之间的通信协议。如果模型和指南使用相同的协议是类型良好的,那么它们就保证具有绝对的连续性。一个有效的算法可以从代码中推断出指南类型,这样用户就不必指定类型。新的编程语言是用一个实现来评估的,这个实现包括类型推断算法和一个针对Pyro的原型编译器。实验表明,我们的语言能够表达具有非平凡控制流和递归的各种概率模型,并且基于协程的计算在实际贝叶斯推理中不会引入显着的开销。
{"title":"Sound probabilistic inference via guide types","authors":"Di Wang, Jan Hoffmann, T. Reps","doi":"10.1145/3453483.3454077","DOIUrl":"https://doi.org/10.1145/3453483.3454077","url":null,"abstract":"Probabilistic programming languages aim to describe and automate Bayesian modeling and inference. Modern languages support programmable inference, which allows users to customize inference algorithms by incorporating guide programs to improve inference performance. For Bayesian inference to be sound, guide programs must be compatible with model programs. One pervasive but challenging condition for model-guide compatibility is absolute continuity, which requires that the model and guide programs define probability distributions with the same support. This paper presents a new probabilistic programming language that guarantees absolute continuity, and features general programming constructs, such as branching and recursion. Model and guide programs are implemented as coroutines that communicate with each other to synchronize the set of random variables they sample during their execution. Novel guide types describe and enforce communication protocols between coroutines. If the model and guide are well-typed using the same protocol, then they are guaranteed to enjoy absolute continuity. An efficient algorithm infers guide types from code so that users do not have to specify the types. The new programming language is evaluated with an implementation that includes the type-inference algorithm and a prototype compiler that targets Pyro. Experiments show that our language is capable of expressing a variety of probabilistic models with nontrivial control flow and recursion, and that the coroutine-based computation does not introduce significant overhead in actual Bayesian inference.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89191170","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
High performance correctly rounded math libraries for 32-bit floating point representations 用于32位浮点表示的高性能正确舍入数学库
Jay P. Lim, Santosh Nagarakatte
This paper proposes a set of techniques to develop correctly rounded math libraries for 32-bit float and posit types. It enhances our RLIBM approach that frames the problem of generating correctly rounded libraries as a linear programming problem in the context of 16-bit types to scale to 32-bit types. Specifically, this paper proposes new algorithms to (1) generate polynomials that produce correctly rounded outputs for all inputs using counterexample guided polynomial generation, (2) generate efficient piecewise polynomials with bit-pattern based domain splitting, and (3) deduce the amount of freedom available to produce correct results when range reduction involves multiple elementary functions. The resultant math library for the 32-bit float type is faster than state-of-the-art math libraries while producing the correct output for all inputs. We have also developed a set of correctly rounded elementary functions for 32-bit posits.
本文提出了一套技术来为32位浮点数和浮点数类型开发正确的四舍五入数学库。它增强了我们的RLIBM方法,将在16位类型上下文中生成正确舍入库的问题作为线性规划问题框架,以扩展到32位类型。具体来说,本文提出了新的算法:(1)使用反例引导多项式生成生成多项式,为所有输入生成正确的四舍五入输出;(2)使用基于位模式的域分裂生成有效的分段多项式;(3)当涉及多个初等函数时,推导出可用于产生正确结果的自由度。生成的32位浮点类型的数学库比最先进的数学库更快,同时为所有输入生成正确的输出。我们还为32位的位置开发了一组正确舍入的初等函数。
{"title":"High performance correctly rounded math libraries for 32-bit floating point representations","authors":"Jay P. Lim, Santosh Nagarakatte","doi":"10.1145/3453483.3454049","DOIUrl":"https://doi.org/10.1145/3453483.3454049","url":null,"abstract":"This paper proposes a set of techniques to develop correctly rounded math libraries for 32-bit float and posit types. It enhances our RLIBM approach that frames the problem of generating correctly rounded libraries as a linear programming problem in the context of 16-bit types to scale to 32-bit types. Specifically, this paper proposes new algorithms to (1) generate polynomials that produce correctly rounded outputs for all inputs using counterexample guided polynomial generation, (2) generate efficient piecewise polynomials with bit-pattern based domain splitting, and (3) deduce the amount of freedom available to produce correct results when range reduction involves multiple elementary functions. The resultant math library for the 32-bit float type is faster than state-of-the-art math libraries while producing the correct output for all inputs. We have also developed a set of correctly rounded elementary functions for 32-bit posits.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81440110","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
Proving non-termination by program reversal 通过程序反转证明非终止
K. Chatterjee, Ehsan Kafshdar Goharshady, Petr Novotný, Dorde Zikelic
We present a new approach to proving non-termination of non-deterministic integer programs. Our technique is rather simple but efficient. It relies on a purely syntactic reversal of the program's transition system followed by a constraint-based invariant synthesis with constraints coming from both the original and the reversed transition system. The latter task is performed by a simple call to an off-the-shelf SMT-solver, which allows us to leverage the latest advances in SMT-solving. Moreover, our method offers a combination of features not present (as a whole) in previous approaches: it handles programs with non-determinism, provides relative completeness guarantees and supports programs with polynomial arithmetic. The experiments performed with our prototype tool RevTerm show that our approach, despite its simplicity and stronger theoretical guarantees, is at least on par with the state-of-the-art tools, often achieving a non-trivial improvement under a proper configuration of its parameters.
提出了一种证明非确定性整数规划的非终止性的新方法。我们的技术很简单,但很有效。它依赖于程序转换系统的纯粹语法反转,然后是基于约束的不变量综合,约束来自原始转换系统和反转转换系统。后一项任务是通过对现成的smt求解器的简单调用来执行的,它允许我们利用smt求解的最新进展。此外,我们的方法提供了以前的方法所没有的(作为一个整体)特性的组合:它处理具有非确定性的程序,提供相对完备性保证,并支持具有多项式算法的程序。使用我们的原型工具RevTerm进行的实验表明,尽管我们的方法简单且有更强的理论保证,但至少可以与最先进的工具相提并论,在适当配置参数的情况下,通常可以实现重要的改进。
{"title":"Proving non-termination by program reversal","authors":"K. Chatterjee, Ehsan Kafshdar Goharshady, Petr Novotný, Dorde Zikelic","doi":"10.1145/3453483.3454093","DOIUrl":"https://doi.org/10.1145/3453483.3454093","url":null,"abstract":"We present a new approach to proving non-termination of non-deterministic integer programs. Our technique is rather simple but efficient. It relies on a purely syntactic reversal of the program's transition system followed by a constraint-based invariant synthesis with constraints coming from both the original and the reversed transition system. The latter task is performed by a simple call to an off-the-shelf SMT-solver, which allows us to leverage the latest advances in SMT-solving. Moreover, our method offers a combination of features not present (as a whole) in previous approaches: it handles programs with non-determinism, provides relative completeness guarantees and supports programs with polynomial arithmetic. The experiments performed with our prototype tool RevTerm show that our approach, despite its simplicity and stronger theoretical guarantees, is at least on par with the state-of-the-art tools, often achieving a non-trivial improvement under a proper configuration of its parameters.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88421912","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Demanded abstract interpretation 要求抽象的解释
Benno Stein, B. E. Chang, Manu Sridharan
We consider the problem of making expressive static analyzers interactive. Formal static analysis is seeing increasingly widespread adoption as a tool for verification and bug-finding, but even with powerful cloud infrastructure it can take minutes or hours to get batch analysis results after a code change. While existing techniques offer some demand-driven or incremental aspects for certain classes of analysis, the fundamental challenge we tackle is doing both for arbitrary abstract interpreters. Our technique, demanded abstract interpretation, lifts program syntax and analysis state to a dynamically evolving graph structure, in which program edits, client-issued queries, and evaluation of abstract semantics are all treated uniformly. The key difficulty addressed by our approach is the application of general incremental computation techniques to the complex, cyclic dependency structure induced by abstract interpretation of loops with widening operators. We prove that desirable abstract interpretation meta-properties, including soundness and termination, are preserved in our approach, and that demanded analysis results are equal to those computed by a batch abstract interpretation. Experimental results suggest promise for a prototype demanded abstract interpretation framework: by combining incremental and demand-driven techniques, our framework consistently delivers analysis results at interactive speeds, answering 95% of queries within 1.2 seconds.
我们考虑使具有表现力的静态分析器具有交互性的问题。正式的静态分析作为一种验证和发现错误的工具被越来越广泛地采用,但是即使使用强大的云基础设施,在代码更改后也可能需要几分钟或几小时才能获得批处理分析结果。虽然现有技术为某些类型的分析提供了一些需求驱动或增量方面,但我们解决的基本挑战是为任意抽象解释器同时做到这两点。我们的技术要求抽象解释,将程序语法和分析状态提升到动态发展的图结构,其中程序编辑,客户端发出的查询和抽象语义的评估都被统一处理。我们的方法解决的关键困难是将一般增量计算技术应用于复杂的循环依赖结构,这些结构是由带扩展算子的循环的抽象解释引起的。我们证明了我们的方法保留了理想的抽象解释元性质,包括稳健性和终止性,并且所需的分析结果与批量抽象解释计算的结果相等。实验结果表明,原型需求抽象解释框架有望实现:通过结合增量和需求驱动技术,我们的框架始终以交互速度提供分析结果,在1.2秒内回答95%的查询。
{"title":"Demanded abstract interpretation","authors":"Benno Stein, B. E. Chang, Manu Sridharan","doi":"10.1145/3453483.3454044","DOIUrl":"https://doi.org/10.1145/3453483.3454044","url":null,"abstract":"We consider the problem of making expressive static analyzers interactive. Formal static analysis is seeing increasingly widespread adoption as a tool for verification and bug-finding, but even with powerful cloud infrastructure it can take minutes or hours to get batch analysis results after a code change. While existing techniques offer some demand-driven or incremental aspects for certain classes of analysis, the fundamental challenge we tackle is doing both for arbitrary abstract interpreters. Our technique, demanded abstract interpretation, lifts program syntax and analysis state to a dynamically evolving graph structure, in which program edits, client-issued queries, and evaluation of abstract semantics are all treated uniformly. The key difficulty addressed by our approach is the application of general incremental computation techniques to the complex, cyclic dependency structure induced by abstract interpretation of loops with widening operators. We prove that desirable abstract interpretation meta-properties, including soundness and termination, are preserved in our approach, and that demanded analysis results are equal to those computed by a batch abstract interpretation. Experimental results suggest promise for a prototype demanded abstract interpretation framework: by combining incremental and demand-driven techniques, our framework consistently delivers analysis results at interactive speeds, answering 95% of queries within 1.2 seconds.","PeriodicalId":20557,"journal":{"name":"Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2021-04-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76315876","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
期刊
Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1