首页 > 最新文献

ACM Transactions on Programming Languages and Systems最新文献

英文 中文
Contextual Linear Types for Differential Privacy 差分隐私的上下文线性类型
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-04-06 DOI: 10.1145/3589207
Matías Toro, David Darais, Chiké Abuah, Joseph P. Near, Damián Árquez, Federico Olmedo, É. Tanter
Language support for differentially private programming is both crucial and delicate. While elaborate program logics can be very expressive, type-system-based approaches using linear types tend to be more lightweight and amenable to automatic checking and inference, and in particular in the presence of higher-order programming. Since the seminal design of Fuzz, which is restricted to ϵ-differential privacy in its original design, significant progress has been made to support more advanced variants of differential privacy, like (ϵ, δ)-differential privacy. However, supporting these advanced privacy variants while also supporting higher-order programming in full has proven to be challenging. We present Jazz, a language and type system that uses linear types and latent contextual effects to support both advanced variants of differential privacy and higher-order programming. Latent contextual effects allow delaying the payment of effects for connectives such as products, sums, and functions, yielding advantages in terms of precision of the analysis and annotation burden upon elimination, as well as modularity. We formalize the core of Jazz, prove it sound for privacy via a logical relation for metric preservation, and illustrate its expressive power through a number of case studies drawn from the recent differential privacy literature.
对差异化私有编程的语言支持既至关重要又微妙。虽然精心设计的程序逻辑可能非常有表现力,但使用线性类型的基于类型系统的方法往往更轻量级,更易于自动检查和推理,尤其是在存在高阶编程的情况下。自Fuzz的开创性设计以来,在最初的设计中仅限于微分隐私,在支持更先进的微分隐私变体方面取得了重大进展,如(ε,δ)-微分隐私。然而,事实证明,在完全支持高阶编程的同时支持这些高级隐私变体是具有挑战性的。我们介绍了Jazz,一种使用线性类型和潜在上下文效果来支持差分隐私和高阶编程的高级变体的语言和类型系统。潜在的上下文效应允许延迟对连接词(如乘积、总和和函数)的效果的支付,从而在消除后的分析精度和注释负担以及模块化方面产生优势。我们将Jazz的核心形式化,通过度量保护的逻辑关系证明它对隐私是合理的,并通过从最近的差异隐私文献中提取的一些案例研究来说明它的表达能力。
{"title":"Contextual Linear Types for Differential Privacy","authors":"Matías Toro, David Darais, Chiké Abuah, Joseph P. Near, Damián Árquez, Federico Olmedo, É. Tanter","doi":"10.1145/3589207","DOIUrl":"https://doi.org/10.1145/3589207","url":null,"abstract":"Language support for differentially private programming is both crucial and delicate. While elaborate program logics can be very expressive, type-system-based approaches using linear types tend to be more lightweight and amenable to automatic checking and inference, and in particular in the presence of higher-order programming. Since the seminal design of Fuzz, which is restricted to ϵ-differential privacy in its original design, significant progress has been made to support more advanced variants of differential privacy, like (ϵ, δ)-differential privacy. However, supporting these advanced privacy variants while also supporting higher-order programming in full has proven to be challenging. We present Jazz, a language and type system that uses linear types and latent contextual effects to support both advanced variants of differential privacy and higher-order programming. Latent contextual effects allow delaying the payment of effects for connectives such as products, sums, and functions, yielding advantages in terms of precision of the analysis and annotation burden upon elimination, as well as modularity. We formalize the core of Jazz, prove it sound for privacy via a logical relation for metric preservation, and illustrate its expressive power through a number of case studies drawn from the recent differential privacy literature.","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"45 1","pages":"1 - 69"},"PeriodicalIF":1.3,"publicationDate":"2023-04-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"44513273","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Omnisemantics: Smooth Handling of Nondeterminism 全义:平滑处理不确定性
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-03-08 DOI: https://dl.acm.org/doi/10.1145/3579834
Arthur Charguéraud, Adam Chlipala, Andres Erbsen, Samuel Gruetter

This article gives an in-depth presentation of the omni-big-step and omni-small-step styles of semantic judgments. These styles describe operational semantics by relating starting states to sets of outcomes rather than to individual outcomes. A single derivation of these semantics for a particular starting state and program describes all possible nondeterministic executions (hence the name omni), whereas in traditional small-step and big-step semantics, each derivation only talks about one single execution. This restructuring allows for straightforward modeling of both nondeterminism and undefined behavior as commonly encountered in sequential functional and imperative programs. Specifically, omnisemantics inherently assert safety (i.e., they guarantee that none of the execution branches gets stuck), while traditional semantics need either a separate judgment or additional error markers to specify safety in the presence of nondeterminism.

Omnisemantics can be understood as an inductively defined weakest-precondition semantics (or more generally, predicate-transformer semantics) that does not involve invariants for loops and recursion but instead uses unrolling rules like in traditional small-step and big-step semantics. Omnisemantics were previously described in association with several projects, but we believe the technique has been underappreciated and deserves a well-motivated, extensive, and pedagogical presentation of its benefits. We also explore several novel aspects associated with these semantics, in particular, their use in type-safety proofs for lambda calculi, partial-correctness reasoning, and forward proofs of compiler correctness for terminating but potentially nondeterministic programs being compiled to nondeterministic target languages. All results in this article are formalized in Coq.

本文对语义判断的全-大-步和全-小-步风格进行了深入的介绍。这些风格通过将起始状态与结果集而不是单个结果关联来描述操作语义。针对特定启动状态和程序的这些语义的单个派生描述了所有可能的不确定性执行(因此称为omni),而在传统的小步骤和大步骤语义中,每个派生只讨论一次执行。这种重构允许直接建模不确定性和未定义行为,这在顺序函数式和命令式程序中很常见。具体来说,全义语义固有地断言安全性(即,它们保证没有一个执行分支被卡住),而传统语义需要单独的判断或额外的错误标记来指定存在不确定性时的安全性。全义语义可以理解为归纳定义的最弱先决条件语义(或者更一般地说,谓词转换语义),它不涉及循环和递归的不变量,而是使用传统的小步骤和大步骤语义中的展开规则。以前在几个项目中描述了全义语义,但我们认为该技术没有得到充分的重视,应该对其好处进行充分的、广泛的和教学性的展示。我们还探讨了与这些语义相关的几个新方面,特别是它们在lambda演算的类型安全证明、部分正确性推理和编译器正确性的前向证明中的使用,这些证明用于终止编译为不确定性目标语言的但可能不确定的程序。本文中的所有结果都在Coq中进行了形式化。
{"title":"Omnisemantics: Smooth Handling of Nondeterminism","authors":"Arthur Charguéraud, Adam Chlipala, Andres Erbsen, Samuel Gruetter","doi":"https://dl.acm.org/doi/10.1145/3579834","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3579834","url":null,"abstract":"<p>This article gives an in-depth presentation of the omni-big-step and omni-small-step styles of semantic judgments. These styles describe operational semantics by relating starting states to sets of outcomes rather than to individual outcomes. A single derivation of these semantics for a particular starting state and program describes all possible nondeterministic executions (hence the name <i>omni</i>), whereas in traditional small-step and big-step semantics, each derivation only talks about one single execution. This restructuring allows for straightforward modeling of both nondeterminism and undefined behavior as commonly encountered in sequential functional and imperative programs. Specifically, omnisemantics inherently assert <i>safety</i> (i.e., they guarantee that none of the execution branches gets stuck), while traditional semantics need either a separate judgment or additional error markers to specify safety in the presence of nondeterminism.</p><p>Omnisemantics can be understood as an inductively defined weakest-precondition semantics (or more generally, predicate-transformer semantics) that does not involve invariants for loops and recursion but instead uses unrolling rules like in traditional small-step and big-step semantics. Omnisemantics were previously described in association with several projects, but we believe the technique has been underappreciated and deserves a well-motivated, extensive, and pedagogical presentation of its benefits. We also explore several novel aspects associated with these semantics, in particular, their use in type-safety proofs for lambda calculi, partial-correctness reasoning, and forward proofs of compiler correctness for terminating but potentially nondeterministic programs being compiled to nondeterministic target languages. All results in this article are formalized in Coq.</p>","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"259 4","pages":""},"PeriodicalIF":1.3,"publicationDate":"2023-03-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138508328","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Typed–Untyped Interactions: A Comparative Analysis 类型-非类型交互:比较分析
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-03-05 DOI: https://dl.acm.org/doi/10.1145/3579833
Ben Greenman, Christos Dimoulas, Matthias Felleisen

The literature presents many strategies for enforcing the integrity of types when typed code interacts with untyped code. This article presents a uniform evaluation framework that characterizes the differences among some major existing semantics for typed–untyped interaction. Type system designers can use this framework to analyze the guarantees of their own dynamic semantics.

文献中提出了许多在类型化代码与非类型化代码交互时强制类型完整性的策略。本文提出了一个统一的评估框架,它描述了类型-非类型交互的一些主要现有语义之间的差异。类型系统设计者可以使用这个框架来分析他们自己的动态语义的保证。
{"title":"Typed–Untyped Interactions: A Comparative Analysis","authors":"Ben Greenman, Christos Dimoulas, Matthias Felleisen","doi":"https://dl.acm.org/doi/10.1145/3579833","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3579833","url":null,"abstract":"<p>The literature presents many strategies for enforcing the integrity of types when typed code interacts with untyped code. This article presents a uniform evaluation framework that characterizes the differences among some major existing semantics for typed–untyped interaction. Type system designers can use this framework to analyze the guarantees of their own dynamic semantics.</p>","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"265 8","pages":""},"PeriodicalIF":1.3,"publicationDate":"2023-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138508338","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Immutability and Encapsulation for Sound OO Information Flow Control 面向对象信息流控制的不变性和封装
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-03-03 DOI: https://dl.acm.org/doi/10.1145/3573270
Tobias Runge, Marco Servetto, Alex Potanin, Ina Schaefer

Security-critical software applications contain confidential information which has to be protected from leaking to unauthorized systems. With language-based techniques, the confidentiality of applications can be enforced. Such techniques are for example type systems that enforce an information flow policy through typing rules. The precision of such type systems, especially in object-oriented languages, is an area of active research: an appropriate system should not reject too many secure programs while soundly preserving noninterference. In this work, we introduce the language SIFO which supports information flow control for an object-oriented language with type modifiers. Type modifiers increase the precision of the type system by utilizing immutability and uniqueness properties of objects for the detection of information leaks. We present SIFO informally by using examples to demonstrate the applicability of the language, formalize the type system, prove noninterference, implement SIFO as a pluggable type system in the programming language L42, and evaluate it with a feasibility study and a benchmark.

安全关键软件应用程序包含机密信息,必须加以保护,以免泄漏到未经授权的系统。使用基于语言的技术,可以强制执行应用程序的机密性。例如,此类技术是通过类型规则强制执行信息流策略的类型系统。这种类型系统的精确性,特别是在面向对象语言中,是一个活跃的研究领域:一个合适的系统不应该拒绝太多的安全程序,同时完好地保持不干扰。在这项工作中,我们引入了SIFO语言,它支持带有类型修饰符的面向对象语言的信息流控制。类型修饰符通过利用对象的不变性和唯一性来检测信息泄漏,从而提高了类型系统的精度。我们通过实例非正式地展示了SIFO语言的适用性,形式化了类型系统,证明了不干扰性,在编程语言L42中实现了SIFO作为可插拔类型系统,并通过可行性研究和基准测试对其进行了评估。
{"title":"Immutability and Encapsulation for Sound OO Information Flow Control","authors":"Tobias Runge, Marco Servetto, Alex Potanin, Ina Schaefer","doi":"https://dl.acm.org/doi/10.1145/3573270","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3573270","url":null,"abstract":"<p>Security-critical software applications contain confidential information which has to be protected from leaking to unauthorized systems. With language-based techniques, the confidentiality of applications can be enforced. Such techniques are for example type systems that enforce an information flow policy through typing rules. The precision of such type systems, especially in object-oriented languages, is an area of active research: an appropriate system should not reject too many secure programs while soundly preserving noninterference. In this work, we introduce the language SIFO which supports information flow control for an object-oriented language with type modifiers. Type modifiers increase the precision of the type system by utilizing immutability and uniqueness properties of objects for the detection of information leaks. We present SIFO informally by using examples to demonstrate the applicability of the language, formalize the type system, prove noninterference, implement SIFO as a pluggable type system in the programming language L42, and evaluate it with a feasibility study and a benchmark.</p>","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"259 3","pages":""},"PeriodicalIF":1.3,"publicationDate":"2023-03-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138508329","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Towards Porting Operating Systems with Program Synthesis 用程序合成移植操作系统
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-03-03 DOI: https://dl.acm.org/doi/10.1145/3563943
Jingmei Hu, Eric Lu, David A. Holland, Ming Kawaguchi, Stephen Chong, Margo Seltzer

The end of Moore’s Law has ushered in a diversity of hardware not seen in decades. Operating system (OS) (and system software) portability is accordingly becoming increasingly critical. Simultaneously, there has been tremendous progress in program synthesis. We set out to explore the feasibility of using modern program synthesis to generate the machine-dependent parts of an operating system. Our ultimate goal is to generate new ports automatically from descriptions of new machines.

One of the issues involved is writing specifications, both for machine-dependent operating system functionality and for instruction set architectures. We designed two domain-specific languages: Alewife for machine-independent specifications of machine-dependent operating system functionality and Cassiopea for describing instruction set architecture semantics. Automated porting also requires an implementation. We developed a toolchain that, given an Alewife specification and a Cassiopea machine description, specializes the machine-independent specification to the target instruction set architecture and synthesizes an implementation in assembly language with a customized symbolic execution engine. Using this approach, we demonstrate the successful synthesis of a total of 140 OS components from two pre-existing OSes for four real hardware platforms. We also developed several optimization methods for OS-related assembly synthesis to improve scalability.

The effectiveness of our languages and ability to synthesize code for all 140 specifications is evidence of the feasibility of program synthesis for machine-dependent OS code. However, many research challenges remain; we also discuss the benefits and limitations of our synthesis-based approach to automated OS porting.

摩尔定律的终结带来了几十年来从未见过的硬件多样性。因此,操作系统(OS)(和系统软件)的可移植性变得越来越重要。与此同时,程序合成也取得了巨大的进步。我们开始探索使用现代程序合成来生成操作系统中与机器相关的部分的可行性。我们的最终目标是根据新机器的描述自动生成新端口。其中一个问题是编写规范,既针对依赖于机器的操作系统功能,也针对指令集体系结构。我们设计了两种特定于领域的语言:Alewife用于与机器相关的操作系统功能的与机器无关的规范,Cassiopea用于描述指令集架构语义。自动移植也需要实现。我们开发了一个工具链,在给定Alewife规范和Cassiopea机器描述的情况下,将与机器无关的规范专门用于目标指令集体系结构,并使用自定义的符号执行引擎在汇编语言中综合实现。使用这种方法,我们演示了在四个实际硬件平台上成功地合成了来自两个已有操作系统的总共140个操作系统组件。我们还开发了几种与操作系统相关的汇编综合优化方法,以提高可伸缩性。我们的语言的有效性和为所有140种规范合成代码的能力证明了对依赖于机器的操作系统代码进行程序合成的可行性。然而,许多研究挑战仍然存在;我们还讨论了基于合成的自动化操作系统移植方法的优点和局限性。
{"title":"Towards Porting Operating Systems with Program Synthesis","authors":"Jingmei Hu, Eric Lu, David A. Holland, Ming Kawaguchi, Stephen Chong, Margo Seltzer","doi":"https://dl.acm.org/doi/10.1145/3563943","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3563943","url":null,"abstract":"<p>The end of Moore’s Law has ushered in a diversity of hardware not seen in decades. Operating system (OS) (and system software) portability is accordingly becoming increasingly critical. Simultaneously, there has been tremendous progress in program synthesis. We set out to explore the feasibility of using modern program synthesis to generate the machine-dependent parts of an operating system. Our ultimate goal is to generate new ports automatically from descriptions of new machines.</p><p>One of the issues involved is writing specifications, both for machine-dependent operating system functionality and for instruction set architectures. We designed two domain-specific languages: Alewife for machine-independent specifications of machine-dependent operating system functionality and Cassiopea for describing instruction set architecture semantics. Automated porting also requires an implementation. We developed a toolchain that, given an Alewife specification and a Cassiopea machine description, specializes the machine-independent specification to the target instruction set architecture and synthesizes an implementation in assembly language with a customized symbolic execution engine. Using this approach, we demonstrate the successful synthesis of a total of 140 OS components from two pre-existing OSes for four real hardware platforms. We also developed several optimization methods for OS-related assembly synthesis to improve scalability.</p><p>The effectiveness of our languages and ability to synthesize code for all 140 specifications is evidence of the feasibility of program synthesis for machine-dependent OS code. However, many research challenges remain; we also discuss the benefits and limitations of our synthesis-based approach to automated OS porting.</p>","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"261 9","pages":""},"PeriodicalIF":1.3,"publicationDate":"2023-03-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138508369","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
The Tortoise and the Hare Algorithm for Finite Lists, Compositionally 有限列表的龟兔赛跑算法
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-03-03 DOI: https://dl.acm.org/doi/10.1145/3564619
Olivier Danvy

In the tortoise-and-hare algorithm, when the fast pointer reaches the end of a finite list, the slow pointer points to the middle of this list. In the early 2000’s, this property was found to make it possible to program a palindrome detector for immutable lists that operates in one recursive traversal of the given list and performs the smallest possible number of comparisons, using the “There And Back Again” (TABA) recursion pattern. In this article, this palindrome detector is reconstructed in OCaml, formalized with the Coq Proof Assistant, and proved to be correct. More broadly, this article presents a compositional account of the tortoise-and-hare algorithm for finite lists. Concretely, compositionality means that programs that use a fast and a slow pointer can be expressed with an ordinary fold function for lists and reasoned about using ordinary structural induction on the given list. This article also contains a dozen new applications of the TABA recursion pattern and of its tail-recursive variant, “There and Forth Again”.

在龟兔赛跑算法中,当快速指针到达有限列表的末尾时,慢指针指向该列表的中间。在21世纪初,人们发现这个属性可以为不可变列表编写一个回文检测器,它使用“There and Back Again”(TABA)递归模式,对给定列表进行一次递归遍历,并执行尽可能少的比较。在本文中,这个回文检测器在OCaml中重构,用Coq Proof Assistant形式化,并证明是正确的。更广泛地说,本文介绍了有限列表的龟兔赛跑算法的组合说明。具体地说,组合性意味着使用快慢指针的程序可以用普通的列表折叠函数表示,并对给定列表使用普通结构归纳法进行推理。本文还包含了TABA递归模式及其尾部递归变体“来回来回”的十几个新应用程序。
{"title":"The Tortoise and the Hare Algorithm for Finite Lists, Compositionally","authors":"Olivier Danvy","doi":"https://dl.acm.org/doi/10.1145/3564619","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3564619","url":null,"abstract":"<p>In the tortoise-and-hare algorithm, when the fast pointer reaches the end of a finite list, the slow pointer points to the middle of this list. In the early 2000’s, this property was found to make it possible to program a palindrome detector for immutable lists that operates in one recursive traversal of the given list and performs the smallest possible number of comparisons, using the “There And Back Again” (TABA) recursion pattern. In this article, this palindrome detector is reconstructed in OCaml, formalized with the Coq Proof Assistant, and proved to be correct. More broadly, this article presents a compositional account of the tortoise-and-hare algorithm for finite lists. Concretely, compositionality means that programs that use a fast and a slow pointer can be expressed with an ordinary fold function for lists and reasoned about using ordinary structural induction on the given list. This article also contains a dozen new applications of the TABA recursion pattern and of its tail-recursive variant, “There and Forth Again”.</p>","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"258 9","pages":""},"PeriodicalIF":1.3,"publicationDate":"2023-03-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138508331","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Satisfiability Modulo Ordering Consistency Theory for SC, TSO, and PSO Memory Models SC、TSO和PSO记忆模型的可满足模序一致性理论
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-03-03 DOI: https://dl.acm.org/doi/10.1145/3579835
Hongyu Fan, Zhihang Sun, Fei He

Automatically verifying multi-threaded programs is difficult because of the vast number of thread interleavings, a problem aggravated by weak memory consistency. Partial orders can help with verification because they can represent many thread interleavings concisely. However, there is no dedicated decision procedure for solving partial-order constraints.

In this article, we propose a novel ordering consistency theory for concurrent program verification that is applicable not only under sequential consistency, but also under the TSO and PSO weak memory models. We further develop an efficient theory solver, which checks consistency incrementally, generates minimal conflict clauses, and includes a custom propagation procedure. We have implemented our approach in a tool, called Zord, and have conducted extensive experiments on the SV-COMP 2020 ConcurrencySafety benchmarks. Our experimental results show a significant improvement over the state-of-the-art.

自动验证多线程程序是很困难的,因为大量的线程交错,弱内存一致性加剧了这个问题。偏序有助于验证,因为它们可以简洁地表示许多线程交织。然而,没有专门的决策过程来求解部分阶约束。在本文中,我们提出了一种新的并行程序验证的顺序一致性理论,它不仅适用于顺序一致性,而且适用于TSO和PSO弱内存模型。我们进一步开发了一个高效的理论求解器,它可以增量地检查一致性,生成最小的冲突子句,并包含一个自定义的传播过程。我们已经在一个名为Zord的工具中实现了我们的方法,并在SV-COMP 2020 concurrent safety基准上进行了广泛的实验。我们的实验结果表明比最先进的技术有了很大的改进。
{"title":"Satisfiability Modulo Ordering Consistency Theory for SC, TSO, and PSO Memory Models","authors":"Hongyu Fan, Zhihang Sun, Fei He","doi":"https://dl.acm.org/doi/10.1145/3579835","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3579835","url":null,"abstract":"<p>Automatically verifying multi-threaded programs is difficult because of the vast number of thread interleavings, a problem aggravated by weak memory consistency. Partial orders can help with verification because they can represent many thread interleavings concisely. However, there is no dedicated decision procedure for solving partial-order constraints.</p><p>In this article, we propose a novel <i>ordering consistency theory</i> for concurrent program verification that is applicable not only under sequential consistency, but also under the TSO and PSO weak memory models. We further develop an efficient theory solver, which checks consistency incrementally, generates minimal conflict clauses, and includes a custom propagation procedure. We have implemented our approach in a tool, called <span>Zord</span>, and have conducted extensive experiments on the <i>SV-COMP 2020 ConcurrencySafety</i> benchmarks. Our experimental results show a significant improvement over the state-of-the-art.</p>","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"262 9","pages":""},"PeriodicalIF":1.3,"publicationDate":"2023-03-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138508363","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Omnisemantics: Smooth Handling of Nondeterminism 泛语义:非确定性的平滑处理
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-24 DOI: 10.1145/3579834
A. Charguéraud, A. Chlipala, Andres Erbsen, Samuel Gruetter
This article gives an in-depth presentation of the omni-big-step and omni-small-step styles of semantic judgments. These styles describe operational semantics by relating starting states to sets of outcomes rather than to individual outcomes. A single derivation of these semantics for a particular starting state and program describes all possible nondeterministic executions (hence the name omni), whereas in traditional small-step and big-step semantics, each derivation only talks about one single execution. This restructuring allows for straightforward modeling of both nondeterminism and undefined behavior as commonly encountered in sequential functional and imperative programs. Specifically, omnisemantics inherently assert safety (i.e., they guarantee that none of the execution branches gets stuck), while traditional semantics need either a separate judgment or additional error markers to specify safety in the presence of nondeterminism. Omnisemantics can be understood as an inductively defined weakest-precondition semantics (or more generally, predicate-transformer semantics) that does not involve invariants for loops and recursion but instead uses unrolling rules like in traditional small-step and big-step semantics. Omnisemantics were previously described in association with several projects, but we believe the technique has been underappreciated and deserves a well-motivated, extensive, and pedagogical presentation of its benefits. We also explore several novel aspects associated with these semantics, in particular, their use in type-safety proofs for lambda calculi, partial-correctness reasoning, and forward proofs of compiler correctness for terminating but potentially nondeterministic programs being compiled to nondeterministic target languages. All results in this article are formalized in Coq.
本文对语义判断的全-大-步和全-小-步风格进行了深入的介绍。这些风格通过将起始状态与结果集而不是单个结果关联来描述操作语义。针对特定启动状态和程序的这些语义的单个派生描述了所有可能的不确定性执行(因此称为omni),而在传统的小步骤和大步骤语义中,每个派生只讨论一次执行。这种重构允许直接建模不确定性和未定义行为,这在顺序函数式和命令式程序中很常见。具体来说,全义语义固有地断言安全性(即,它们保证没有一个执行分支被卡住),而传统语义需要单独的判断或额外的错误标记来指定存在不确定性时的安全性。全义语义可以理解为归纳定义的最弱先决条件语义(或者更一般地说,谓词转换语义),它不涉及循环和递归的不变量,而是使用传统的小步骤和大步骤语义中的展开规则。以前在几个项目中描述了全义语义,但我们认为该技术没有得到充分的重视,应该对其好处进行充分的、广泛的和教学性的展示。我们还探讨了与这些语义相关的几个新方面,特别是它们在lambda演算的类型安全证明、部分正确性推理和编译器正确性的前向证明中的使用,这些证明用于终止编译为不确定性目标语言的但可能不确定的程序。本文中的所有结果都在Coq中进行了形式化。
{"title":"Omnisemantics: Smooth Handling of Nondeterminism","authors":"A. Charguéraud, A. Chlipala, Andres Erbsen, Samuel Gruetter","doi":"10.1145/3579834","DOIUrl":"https://doi.org/10.1145/3579834","url":null,"abstract":"This article gives an in-depth presentation of the omni-big-step and omni-small-step styles of semantic judgments. These styles describe operational semantics by relating starting states to sets of outcomes rather than to individual outcomes. A single derivation of these semantics for a particular starting state and program describes all possible nondeterministic executions (hence the name omni), whereas in traditional small-step and big-step semantics, each derivation only talks about one single execution. This restructuring allows for straightforward modeling of both nondeterminism and undefined behavior as commonly encountered in sequential functional and imperative programs. Specifically, omnisemantics inherently assert safety (i.e., they guarantee that none of the execution branches gets stuck), while traditional semantics need either a separate judgment or additional error markers to specify safety in the presence of nondeterminism. Omnisemantics can be understood as an inductively defined weakest-precondition semantics (or more generally, predicate-transformer semantics) that does not involve invariants for loops and recursion but instead uses unrolling rules like in traditional small-step and big-step semantics. Omnisemantics were previously described in association with several projects, but we believe the technique has been underappreciated and deserves a well-motivated, extensive, and pedagogical presentation of its benefits. We also explore several novel aspects associated with these semantics, in particular, their use in type-safety proofs for lambda calculi, partial-correctness reasoning, and forward proofs of compiler correctness for terminating but potentially nondeterministic programs being compiled to nondeterministic target languages. All results in this article are formalized in Coq.","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":" ","pages":"1 - 43"},"PeriodicalIF":1.3,"publicationDate":"2023-01-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"44694824","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Satisfiability Modulo Ordering Consistency Theory for SC, TSO, and PSO Memory Models SC、TSO和PSO内存模型的可满足性模序一致性理论
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-17 DOI: 10.1145/3579835
Hongyu Fan, Zhihang Sun, Fei He
Automatically verifying multi-threaded programs is difficult because of the vast number of thread interleavings, a problem aggravated by weak memory consistency. Partial orders can help with verification because they can represent many thread interleavings concisely. However, there is no dedicated decision procedure for solving partial-order constraints. In this article, we propose a novel ordering consistency theory for concurrent program verification that is applicable not only under sequential consistency, but also under the TSO and PSO weak memory models. We further develop an efficient theory solver, which checks consistency incrementally, generates minimal conflict clauses, and includes a custom propagation procedure. We have implemented our approach in a tool, called Zord, and have conducted extensive experiments on the SV-COMP 2020 ConcurrencySafety benchmarks. Our experimental results show a significant improvement over the state-of-the-art.
由于大量的线程穿插,自动验证多线程程序是困难的,而内存一致性较弱会加剧这个问题。偏序可以帮助验证,因为它们可以简洁地表示许多线程间的交互。然而,没有专门的决策程序来解决偏序约束。在本文中,我们提出了一种新的并行程序验证排序一致性理论,该理论不仅适用于序列一致性,也适用于TSO和PSO弱记忆模型。我们进一步开发了一个高效的理论求解器,它逐步检查一致性,生成最小冲突子句,并包括自定义传播过程。我们在一个名为Zord的工具中实现了我们的方法,并在SV-COMP2020并发安全基准上进行了广泛的实验。我们的实验结果表明,与最先进的技术相比,我们有了显著的改进。
{"title":"Satisfiability Modulo Ordering Consistency Theory for SC, TSO, and PSO Memory Models","authors":"Hongyu Fan, Zhihang Sun, Fei He","doi":"10.1145/3579835","DOIUrl":"https://doi.org/10.1145/3579835","url":null,"abstract":"Automatically verifying multi-threaded programs is difficult because of the vast number of thread interleavings, a problem aggravated by weak memory consistency. Partial orders can help with verification because they can represent many thread interleavings concisely. However, there is no dedicated decision procedure for solving partial-order constraints. In this article, we propose a novel ordering consistency theory for concurrent program verification that is applicable not only under sequential consistency, but also under the TSO and PSO weak memory models. We further develop an efficient theory solver, which checks consistency incrementally, generates minimal conflict clauses, and includes a custom propagation procedure. We have implemented our approach in a tool, called Zord, and have conducted extensive experiments on the SV-COMP 2020 ConcurrencySafety benchmarks. Our experimental results show a significant improvement over the state-of-the-art.","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"45 1","pages":"1 - 37"},"PeriodicalIF":1.3,"publicationDate":"2023-01-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"44049236","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Typed–Untyped Interactions: A Comparative Analysis 类型-非类型交互:比较分析
IF 1.3 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-12 DOI: 10.1145/3579833
B. Greenman, Christos Dimoulas, M. Felleisen
The literature presents many strategies for enforcing the integrity of types when typed code interacts with untyped code. This article presents a uniform evaluation framework that characterizes the differences among some major existing semantics for typed–untyped interaction. Type system designers can use this framework to analyze the guarantees of their own dynamic semantics.
当类型化代码与非类型化代码交互时,文献提出了许多增强类型完整性的策略。本文提出了一个统一的评估框架,该框架描述了类型-非类型交互的一些主要现有语义之间的差异。类型系统设计者可以使用这个框架来分析他们自己的动态语义的保证。
{"title":"Typed–Untyped Interactions: A Comparative Analysis","authors":"B. Greenman, Christos Dimoulas, M. Felleisen","doi":"10.1145/3579833","DOIUrl":"https://doi.org/10.1145/3579833","url":null,"abstract":"The literature presents many strategies for enforcing the integrity of types when typed code interacts with untyped code. This article presents a uniform evaluation framework that characterizes the differences among some major existing semantics for typed–untyped interaction. Type system designers can use this framework to analyze the guarantees of their own dynamic semantics.","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"45 1","pages":"1 - 54"},"PeriodicalIF":1.3,"publicationDate":"2023-01-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"48399451","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
期刊
ACM Transactions on Programming Languages and Systems
全部 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