English
Related papers

Related papers: Pure Borrow: Linear Haskell Meets Rust-Style Borro…

200 papers

Algebraic specification has a long tradition in bridging the gap between specification and programming by making specifications executable. Building on extensive experience in designing, implementing and using specification formalisms that…

Programming Languages · Computer Science 2011-07-04 Jeroen van den Bos , Mark Hills , Paul Klint , Tijs van der Storm , Jurgen J. Vinju

High-level reversible programming languages are few and far between and in general offer only rudimentary abstractions from the details of the underlying machine. Modern programming languages offer a wide array of language constructs and…

Programming Languages · Computer Science 2017-07-26 Tue Haulund

Rust uses traits to define units of shared behavior. Trait constraints build up an implicit set of first-order hereditary Harrop clauses which is executed by a powerful logic programming engine in the trait system. But that power comes at a…

Programming Languages · Computer Science 2023-09-12 Gavin Gray , Will Crichton

Many security- and performance-critical domains, such as cryptography, rely on low-level verification to minimize the trusted computing surface and allow code to be written directly in assembly. However, verifying assembly code against a…

Logic in Computer Science · Computer Science 2025-05-21 Denis Mazzucato , Abdalrhman Mohamed , Juneyoung Lee , Clark Barrett , Jim Grundy , John Harrison , Corina S. Pasareanu

Large language models (LLMs) have achieved state-of-the-art performance in various software engineering tasks, including error detection, clone detection, and code translation, primarily leveraging high-resource programming languages like…

Computation and Language · Computer Science 2025-06-11 Razan Baltaji , Saurabh Pujar , Louis Mandel , Martin Hirzel , Luca Buratti , Lav Varshney

Functional languages have provided major benefits to the verification community. Although features such as purity, a strong type system, and computational abstractions can help guide programmers away from costly errors, these can present…

Programming Languages · Computer Science 2018-03-29 Bernd Finkbeiner , Felix Klein , Ruzica Piskac , Mark Santolucito

We introduce the Fusion algorithm for local refinement type inference, yielding a new SMT-based method for verifying programs with polymorphic data types and higher-order functions. Fusion is concise as the programmer need only write…

Programming Languages · Computer Science 2017-06-27 Benjamin Cosman , Ranjit Jhala

Code obfuscation is the conversion of original source code into a functionally equivalent but less readable form, aiming to prevent reverse engineering and intellectual property theft. This is a challenging task since it is crucial to…

Software Engineering · Computer Science 2025-04-22 Lorenzo De Tomasi , Claudio Di Sipio , Antinisca Di Marco , Phuong T. Nguyen

Statically analyzing information flow, or how data influences other data within a program, is a challenging task in imperative languages. Analyzing pointers and mutations requires access to a program's complete source. However, programs…

Programming Languages · Computer Science 2022-03-17 Will Crichton , Marco Patrignani , Maneesh Agrawala , Pat Hanrahan

The Rust programming language, with its safety guarantees, has established itself as a viable choice for low-level systems programming language over the traditional, unsafe alternatives like C/C++. These guarantees come from a strong…

Software Engineering · Computer Science 2023-08-11 Pantazis Deligiannis , Akash Lal , Nikita Mehrotra , Aseem Rastogi

This paper is about the interface between languages which use a garbage collector and those which use fancy types for safe manual memory management. Garbage collection is the traditional memory management scheme for functional languages,…

Programming Languages · Computer Science 2018-07-03 Alan Jeffrey

The recent notion of graded modal types provides a framework for extending type theories with fine-grained data-flow reasoning. The Granule language explores this idea in the context of linear types. In this practical setting, we observe…

Programming Languages · Computer Science 2022-01-03 Jack Hughes , Michael Vollmer , Dominic Orchard

There is an ongoing effort to provide programming abstractions that ease the burden of exploiting multicore hardware. Many programming abstractions (e.g., concurrent objects, transactional memory, etc.) simplify matters, but still involve…

Programming Languages · Computer Science 2022-05-02 Adam Chen , Parisa Fathololumi , Eric Koskinen , Jared Pincus

Ensuring correctness is crucial for code generation. Formal verification offers a definitive assurance of correctness, but demands substantial human effort in proof construction and hence raises a pressing need for automation. The primary…

Packrat parsing is a novel technique for implementing parsers in a lazy functional programming language. A packrat parser provides the power and flexibility of top-down parsing with backtracking and unlimited lookahead, but nevertheless…

Data Structures and Algorithms · Computer Science 2007-05-23 Bryan Ford

We propose Hybrid Transactional Replication (HTR), a novel replication scheme for highly dependable services. It combines two schemes: a transaction is executed either optimistically by only one service replica in the deferred update mode…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-01-26 Tadeusz Kobus , Maciej Kokociński , Paweł T. Wojciechowski

Rust is a relatively new system programming language that has been experiencing a rapid adoption in the past 10 years. Rust incorporates a memory ownership model enforced at a compile time. Since this model involves zero runtime overhead,…

Programming Languages · Computer Science 2022-09-20 Nikolay Ivanov

We present a type theory combining both linearity and dependency by stratifying typing rules into a level for logics and a level for programs. The distinction between logics and programs decouples their semantics, allowing the type system…

Programming Languages · Computer Science 2025-10-08 Qiancheng Fu , Hongwei Xi

Automated verification of all members of a (potentially infinite) set of programs has the potential to be useful in program synthesis, as well as in verification of dynamically loaded code, concurrent code, and language properties. Existing…

Programming Languages · Computer Science 2024-08-30 Shaan Nagy , Jinwoo Kim , Thomas Reps , Loris D'Antoni

Large Language Model (LLM) based code generation is predominantly formulated as a strictly monotonic process, appending tokens linearly to an immutable prefix. This formulation contrasts to the cognitive process of programming, which is…

Software Engineering · Computer Science 2026-05-07 Chengran Yang , Zichao Wei , Heminghao Deng , Jinfeng Jiang , Zhensu Sun , Ting Zhang , Tianyi Wu , Ming Wen , David Lo
‹ Prev 1 4 5 6 7 8 10 Next ›