ACM Transactions on Programming Languages and Systems最新文献

筛选
英文 中文
Contextual Linear Types for Differential Privacy 差分隐私的上下文线性类型
IF 1.3 2区 计算机科学
ACM Transactions on Programming Languages and Systems 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
{"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区 计算机科学
ACM Transactions on Programming Languages and Systems Pub Date : 2023-03-08 DOI: https://dl.acm.org/doi/10.1145/3579834
Arthur Charguéraud, Adam Chlipala, Andres Erbsen, Samuel Gruetter
{"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区 计算机科学
ACM Transactions on Programming Languages and Systems Pub Date : 2023-03-05 DOI: https://dl.acm.org/doi/10.1145/3579833
Ben Greenman, Christos Dimoulas, Matthias Felleisen
{"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区 计算机科学
ACM Transactions on Programming Languages and Systems Pub Date : 2023-03-03 DOI: https://dl.acm.org/doi/10.1145/3573270
Tobias Runge, Marco Servetto, Alex Potanin, Ina Schaefer
{"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区 计算机科学
ACM Transactions on Programming Languages and Systems 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
{"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区 计算机科学
ACM Transactions on Programming Languages and Systems Pub Date : 2023-03-03 DOI: https://dl.acm.org/doi/10.1145/3564619
Olivier Danvy
{"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区 计算机科学
ACM Transactions on Programming Languages and Systems Pub Date : 2023-03-03 DOI: https://dl.acm.org/doi/10.1145/3579835
Hongyu Fan, Zhihang Sun, Fei He
{"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区 计算机科学
ACM Transactions on Programming Languages and Systems Pub Date : 2023-01-24 DOI: 10.1145/3579834
A. Charguéraud, A. Chlipala, Andres Erbsen, Samuel Gruetter
{"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区 计算机科学
ACM Transactions on Programming Languages and Systems Pub Date : 2023-01-17 DOI: 10.1145/3579835
Hongyu Fan, Zhihang Sun, Fei He
{"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区 计算机科学
ACM Transactions on Programming Languages and Systems Pub Date : 2023-01-12 DOI: 10.1145/3579833
B. Greenman, Christos Dimoulas, M. Felleisen
{"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
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信