arXiv - CS - Programming Languages最新文献

筛选
英文 中文
Mix Testing: Specifying and Testing ABI Compatibility of C/C++ Atomics Implementations 混合测试:规范和测试 C/C++ Atomics 实现的 ABI 兼容性
arXiv - CS - Programming Languages Pub Date : 2024-09-02 DOI: arxiv-2409.01161
Luke Geeson, James Brotherston, Wilco Dijkstra, Alastair F. Donaldson, Lee Smith, Tyler Sorensen, John Wickerson
{"title":"Mix Testing: Specifying and Testing ABI Compatibility of C/C++ Atomics Implementations","authors":"Luke Geeson, James Brotherston, Wilco Dijkstra, Alastair F. Donaldson, Lee Smith, Tyler Sorensen, John Wickerson","doi":"arxiv-2409.01161","DOIUrl":"https://doi.org/arxiv-2409.01161","url":null,"abstract":"The correctness of complex software depends on the correctness of both the\u0000source code and the compilers that generate corresponding binary code.\u0000Compilers must do more than preserve the semantics of a single source file:\u0000they must ensure that generated binaries can be composed with other binaries to\u0000form a final executable. The compatibility of composition is ensured using an\u0000Application Binary Interface (ABI), which specifies details of calling\u0000conventions, exception handling, and so on. Unfortunately, there are no\u0000official ABIs for concurrent programs, so different atomics mappings, although\u0000correct in isolation, may induce bugs when composed. Indeed, today, mixing\u0000binaries generated by different compilers can lead to an erroneous resulting\u0000binary. We present mix testing: a new technique designed to find compiler bugs when\u0000the instructions of a C/C++ test are separately compiled for multiple\u0000compatible architectures and then mixed together. We define a class of compiler\u0000bugs, coined mixing bugs, that arise when parts of a program are compiled\u0000separately using different mappings from C/C++ atomic operations to assembly\u0000sequences. To demonstrate the generality of mix testing, we have designed and\u0000implemented a tool, atomic-mixer, which we have used: (a) to reproduce one\u0000existing non-mixing bug that state-of-the-art concurrency testing tools are\u0000limited to being able to find (showing that atomic-mixer at least meets the\u0000capabilities of these tools), and (b) to find four previously-unknown mixing\u0000bugs in LLVM and GCC, and one prospective mixing bug in mappings proposed for\u0000the Java Virtual Machine. Lastly, we have worked with engineers at Arm to\u0000specify, for the first time, an atomics ABI for Armv8, and have used\u0000atomic-mixer to validate the LLVM and GCC compilers against it.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"109 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-09-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142179543","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}
引用次数: 0
Proceedings of the 2024 miniKanren and Relational Programming Workshop 2024 miniKanren 和关系编程研讨会论文集
arXiv - CS - Programming Languages Pub Date : 2024-09-02 DOI: arxiv-2409.06505
Ekaterina Verbitskaia, Joseph P. Near
{"title":"Proceedings of the 2024 miniKanren and Relational Programming Workshop","authors":"Ekaterina Verbitskaia, Joseph P. Near","doi":"arxiv-2409.06505","DOIUrl":"https://doi.org/arxiv-2409.06505","url":null,"abstract":"The miniKanren and Relational Programming Workshop is a workshop for the\u0000miniKanren family of relational (pure constraint logic programming) languages:\u0000miniKanren, microKanren, core.logic, OCanren, Guanxi, etc. The workshop\u0000solicits papers and talks on the design, implementation, and application of\u0000miniKanren-like languages. A major goal of the workshop is to bring together\u0000researchers, implementors, and users from the miniKanren community, and to\u0000share expertise and techniques for relational programming. Another goal for the\u0000workshop is to push the state of the art of relational programming - for\u0000example, by developing new techniques for writing interpreters, type\u0000inferencers, theorem provers, abstract interpreters, CAD tools, and other\u0000interesting programs as relations, which are capable of being \"run backward,\"\u0000performing synthesis, etc.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"6 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-09-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142179549","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}
引用次数: 0
Wasm-R3: Record-Reduce-Replay for Realistic and Standalone WebAssembly Benchmarks Wasm-R3:针对真实和独立 WebAssembly 基准的记录-缩减-重放功能
arXiv - CS - Programming Languages Pub Date : 2024-09-01 DOI: arxiv-2409.00708
Doehyun Baek, Jakob Getz, Yusung Sim, Daniel Lehmann, Ben L. Titzer, Sukyoung Ryu, Michael Pradel
{"title":"Wasm-R3: Record-Reduce-Replay for Realistic and Standalone WebAssembly Benchmarks","authors":"Doehyun Baek, Jakob Getz, Yusung Sim, Daniel Lehmann, Ben L. Titzer, Sukyoung Ryu, Michael Pradel","doi":"arxiv-2409.00708","DOIUrl":"https://doi.org/arxiv-2409.00708","url":null,"abstract":"WebAssembly (Wasm for short) brings a new, powerful capability to the web as\u0000well as Edge, IoT, and embedded systems. Wasm is a portable, compact binary\u0000code format with high performance and robust sandboxing properties. As Wasm\u0000applications grow in size and importance, the complex performance\u0000characteristics of diverse Wasm engines demand robust, representative\u0000benchmarks for proper tuning. Stopgap benchmark suites, such as PolyBenchC and\u0000libsodium, continue to be used in the literature, though they are known to be\u0000unrepresentative. Porting of more complex suites remains difficult because Wasm\u0000lacks many system APIs and extracting real-world Wasm benchmarks from the web\u0000is difficult due to complex host interactions. To address this challenge, we\u0000introduce Wasm-R3, the first record and replay technique for Wasm. Wasm-R3\u0000transparently injects instrumentation into Wasm modules to record an execution\u0000trace from inside the module, then reduces the execution trace via several\u0000optimizations, and finally produces a replay module that is executable\u0000sandalone without any host environment - on any engine. The benchmarks created\u0000by our approach are (i) realistic, because the approach records real-world web\u0000applications, (ii) faithful to the original execution, because the replay\u0000benchmark includes the unmodified original code, only adding emulation of host\u0000interactions, and (iii) standalone, because the replay benchmarks run on any\u0000engine. Applying Wasm-R3 to web-based Wasm applications in the wild\u0000demonstrates the correctness of our approach as well as the effectiveness of\u0000our optimizations, which reduce the recorded traces by 99.53 percent and the\u0000size of the replay benchmark by 9.98 percent. We release the resulting\u0000benchmark suite of 27 applications, called Wasm-R3-Bench, to the community, to\u0000inspire a new generation of realistic and standalone Wasm benchmarks.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"47 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142179544","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}
引用次数: 0
Type-Based Verification of Connectivity Constraints in Lattice Surgery 网格手术中基于类型的连接性约束验证
arXiv - CS - Programming Languages Pub Date : 2024-08-31 DOI: arxiv-2409.00529
Ryo Wakizaka, Yasunari Suzuki, Atsushi Igarashi
{"title":"Type-Based Verification of Connectivity Constraints in Lattice Surgery","authors":"Ryo Wakizaka, Yasunari Suzuki, Atsushi Igarashi","doi":"arxiv-2409.00529","DOIUrl":"https://doi.org/arxiv-2409.00529","url":null,"abstract":"Fault-tolerant quantum computation using lattice surgery can be abstracted as\u0000operations on graphs, wherein each logical qubit corresponds to a vertex of the\u0000graph, and multi-qubit measurements are accomplished by connecting the vertices\u0000with paths between them. Operations attempting to connect vertices without a\u0000valid path will result in abnormal termination. As the permissible paths may\u0000evolve during execution, it is necessary to statically verify that the\u0000execution of a quantum program can be completed. This paper introduces a type-based method to statically verify that\u0000well-typed programs can be executed without encountering halts induced by\u0000surgery operations. Alongside, we present $mathcal{Q}_{LS}$, a first-order\u0000quantum programming language to formalize the execution model of surgery\u0000operations. Furthermore, we provide a type checking algorithm by reducing the\u0000type checking problem to the offline dynamic connectivity problem.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"82 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-08-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142179546","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}
引用次数: 0
Extending the C/Ctexttt{++} Model with Inline Assembly 使用内联程序集扩展 C/Ctexttt{++} 模型
arXiv - CS - Programming Languages Pub Date : 2024-08-30 DOI: arxiv-2408.17208
Paulo Emílio de Vilhena, Ori Lahav, Viktor Vafeiadis, Azalea Raad
{"title":"Extending the C/Ctexttt{++} Model with Inline Assembly","authors":"Paulo Emílio de Vilhena, Ori Lahav, Viktor Vafeiadis, Azalea Raad","doi":"arxiv-2408.17208","DOIUrl":"https://doi.org/arxiv-2408.17208","url":null,"abstract":"Programs written in C/Ctexttt{++} often include textit{inline assembly}: a\u0000snippet of architecture-specific assembly code used to access low-level\u0000functionalities that are impossible or expensive to simulate in the source\u0000language. % Although inline assembly is widely used, its semantics has not yet\u0000been formally studied. In this paper, we overcome this deficiency by investigating the effect of\u0000inline assembly on the textit{consistency} semantics of~C/Ctexttt{++}\u0000programs. % We propose the first memory model of the~Ctexttt{++} Programming\u0000Language with support for inline assembly for Intel's textsf{x86} including\u0000textit{non-temporal stores} and textit{store fences}. % We argue that\u0000previous provably correct compiler optimizations and correct compiler mappings\u0000should remain correct under such an extended model and we prove that this\u0000requirement is met by our proposed model.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"5 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142223612","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}
引用次数: 0
On Computational Indistinguishability and Logical Relations 论计算无差别性与逻辑关系
arXiv - CS - Programming Languages Pub Date : 2024-08-30 DOI: arxiv-2408.17340
Ugo Dal Lago, Zeinab Galal, Giulia Giusti
{"title":"On Computational Indistinguishability and Logical Relations","authors":"Ugo Dal Lago, Zeinab Galal, Giulia Giusti","doi":"arxiv-2408.17340","DOIUrl":"https://doi.org/arxiv-2408.17340","url":null,"abstract":"A $lambda$-calculus is introduced in which all programs can be evaluated in\u0000probabilistic polynomial time and in which there is sufficient structure to\u0000represent sequential cryptographic constructions and adversaries for them, even\u0000when the latter are oracle-based. A notion of observational equivalence\u0000capturing computational indistinguishability and a class of approximate logical\u0000relations are then presented, showing that the latter represent a sound proof\u0000technique for the former. The work concludes with the presentation of an\u0000example of a security proof in which the encryption scheme induced by a\u0000pseudorandom function is proven secure against active adversaries in a purely\u0000equational style.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"27 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142179547","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}
引用次数: 0
A Relational Solver for Constraint-based Type Inference 基于约束的类型推断关系求解器
arXiv - CS - Programming Languages Pub Date : 2024-08-30 DOI: arxiv-2408.17138
Eridan Domoratskiy, Dmitry Boulytchev
{"title":"A Relational Solver for Constraint-based Type Inference","authors":"Eridan Domoratskiy, Dmitry Boulytchev","doi":"arxiv-2408.17138","DOIUrl":"https://doi.org/arxiv-2408.17138","url":null,"abstract":"We present a miniKanren-based type inferencer for an educational programming\u0000language with first-class functions, S-expressions, and pattern-matching. The\u0000language itself is untyped which adds a certain specificity to the problem and\u0000requires the employment of techniques conventionally used in implicit/gradual\u0000typing settings. The presence of polymorphic and recursive types poses a\u0000certain challenge when implementing the inferencer in miniKanren and requires a\u0000number of tricks, optimizations, and extensions to be used; we report on those\u0000as well.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"5 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142179552","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}
引用次数: 0
Relational Reactive Programming: miniKanren for the Web 关系式反应编程:网络迷你版关仁
arXiv - CS - Programming Languages Pub Date : 2024-08-30 DOI: arxiv-2408.17044
Evan Donahue
{"title":"Relational Reactive Programming: miniKanren for the Web","authors":"Evan Donahue","doi":"arxiv-2408.17044","DOIUrl":"https://doi.org/arxiv-2408.17044","url":null,"abstract":"Over the past decade, reactive frameworks and languages have become the\u0000dominant programming paradigm in front-end web development. In this paradigm,\u0000user actions change application state, and those changes propagate reactively\u0000to derived state and to the display, reducing the likelihood that various parts\u0000of the data model and user-facing view will become out of sync due to\u0000programmer error. In this paper, we explore the application of relational\u0000programming to the specification and synchronized evolution of model and view\u0000across time in response to user input. To that end, we present a reactive\u0000Javascript implementation of miniKanren and an integrated reactive programming\u0000model oriented towards the challenges of front-end web development.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142179548","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}
引用次数: 0
To Be or Not To Be: Adding Integrity Constraints to stableKanren to Make a Decision 要还是不要:为稳定的 Kanren 添加完整性约束以做出决定
arXiv - CS - Programming Languages Pub Date : 2024-08-29 DOI: arxiv-2408.16699
Xiangyu Guo, Ajay Bansal
{"title":"To Be or Not To Be: Adding Integrity Constraints to stableKanren to Make a Decision","authors":"Xiangyu Guo, Ajay Bansal","doi":"arxiv-2408.16699","DOIUrl":"https://doi.org/arxiv-2408.16699","url":null,"abstract":"We integrate integrity constraints to stableKanren to enable a new\u0000problem-solving paradigm in combinatorial search problems. stableKanren extends\u0000miniKanren to reasoning about contradictions under stable model semantics.\u0000However, writing programs to solve combinatorial search problems in\u0000stableKanren did not fully utilize the contradiction reasoning. This is mainly\u0000due to the lack of control over the predicate (goal function) outcome during\u0000resolution. Integrity constraints defined by answer set programming (ASP)\u0000provide the ability to constrain the predicate outcome. However, integrity\u0000constraints are headless normal clauses, and stableKanren cannot create a goal\u0000function without a valid head. There are two approaches to handling integrity\u0000constraints, but they do not fit stableKanren. Therefore, we design a new\u0000approach to integrate integrity constraints into stableKanren. We show a\u0000uniform framework to solve combinatorial search problems using integrity\u0000constraints in extended stableKanren.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"16 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-08-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142179550","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}
引用次数: 0
Six Ways to Implement Divisibility by Three in miniKanren 在 miniKanren 中实现三除法的六种方法
arXiv - CS - Programming Languages Pub Date : 2024-08-29 DOI: arxiv-2408.16259
Brett Schreiber, Brysen Pfingsten, Jason Hemann
{"title":"Six Ways to Implement Divisibility by Three in miniKanren","authors":"Brett Schreiber, Brysen Pfingsten, Jason Hemann","doi":"arxiv-2408.16259","DOIUrl":"https://doi.org/arxiv-2408.16259","url":null,"abstract":"This paper explores options for implementing the relation $n equiv 0 \u0000(text{mod} 3)$ within miniKanren using miniKanren numbers and its arithmetic\u0000suite. We examine different approaches starting from straightforward\u0000implementations to more optimized versions. The implementations discussed\u0000include brute-force arithmetic methods, divisibility tricks, and derivation\u0000from a finite automaton. Our contributions include an in-depth look at the\u0000process of implementing a miniKanren relation and observations on benchmarking\u0000texttt{defrel}s. This study aims to provide practical insights for miniKanren\u0000programmers on both performance and implementation techniques.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-08-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142179553","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}
引用次数: 0
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学术官方微信