English
Related papers

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

200 papers

We present a resource-management model for ML-style programming languages, designed to be compatible with the OCaml philosophy and runtime model. This is a proposal to extend the OCaml language with destructors, move semantics, and resource…

Programming Languages · Computer Science 2018-03-08 Guillaume Munch-Maccagnoni

Type classes are one of Haskell's most popular features and extend its type system with ad-hoc polymorphism. Since their conception, there were useful features that could not be offered because of the desire to offer two correctness…

Programming Languages · Computer Science 2018-07-31 Thomas Winant , Dominique Devriese

We present Walrus, a functional relational programming language embedded in Haskell that extends the miniKanren model with type-polymorphic unification, on-demand laziness, and a range of usability features aimed at practical development.…

Programming Languages · Computer Science 2025-10-30 Santiago Cuéllar , Naomi Spargo , Jonathan Daugherty , David Darais

In the field of deductive software verification, programs with pointers present a major challenge due to pointer aliasing. In this paper, we introduce pointers to SPARK, a well-defined subset of the Ada language, intended for formal…

Programming Languages · Computer Science 2018-05-16 Georges-Axel Jaloyan , Yannick Moy , Andrei Paskevich

For all the successes in verifying low-level, efficient, security-critical code, little has been said or studied about the structure, architecture and engineering of such large-scale proof developments. We present the design, implementation…

Programming Languages · Computer Science 2023-07-10 Son Ho , Aymeric Fromherz , Jonathan Protzenko

We present a novel parsing algorithm for all context-free languages, based on computing the relation between configurations and reaching transitions in a recursive transition network. Parsing complexity w.r.t. input length matches the state…

Formal Languages and Automata Theory · Computer Science 2019-02-19 Grzegorz Herman

Since its birth as a new scientific body of knowledge in the late 1950s, computer programming has become a fundamental skill needed in many other disciplines. However, programming is not easy, it is prone to errors and code re-use is key…

Programming Languages · Computer Science 2026-02-20 Paulo R. Pereira , Jose N. Oliveira

Language model-based code completion models have quickly grown in use, helping thousands of developers write code in many different programming languages. However, research on code completion models typically focuses on imperative languages…

Computation and Language · Computer Science 2024-03-25 Tim van Dam , Frank van der Heijden , Philippe de Bekker , Berend Nieuwschepen , Marc Otten , Maliheh Izadi

Developers rely on the static safety guarantees of the Rust programming language to write secure and performant applications. However, Rust is frequently used to interoperate with other languages which allow design patterns that conflict…

Software Engineering · Computer Science 2026-01-12 Ian McCormack , Joshua Sunshine , Jonathan Aldrich

The concept of linearity plays a central role in both mathematics and computer science, with distinct yet complementary meanings. In mathematics, linearity underpins functions and vector spaces, forming the foundation of linear algebra and…

Cryptography and Security · Computer Science 2025-10-21 Giulia Giusti

Pattern matching is a widely used technique in functional languages, especially those in the ML and Haskell traditions, where it is at the core of the semantics. In languages in the Lisp tradition, in contrast, pattern matching it typically…

Programming Languages · Computer Science 2011-06-15 Sam Tobin-Hochstadt

We introduce REST, a novel term rewriting technique for theorem proving that uses online termination checking and can be integrated with existing program verifiers. REST enables flexible but terminating term rewriting for theorem proving…

Programming Languages · Computer Science 2022-02-18 Zachary Grannan , Niki Vazou , Eva Darulova , Alexander J. Summers

Rust is an effective system programming language that guarantees memory safety via compile-time verifications. It employs a novel ownership-based resource management model to facilitate automated deallocation. This model is anticipated to…

Software Engineering · Computer Science 2024-08-02 Mohan Cui , Hui Xu , Hongliang Tian , Yangfan Zhou

Linear algebra is a major field of numerical computation and is widely applied. Most linear algebra libraries (in most programming languages) do not statically guarantee consistency of the dimensions of vectors and matrices, causing runtime…

Programming Languages · Computer Science 2015-12-08 Akinori Abe , Eijiro Sumii

Library learning is the process of building a library of common functionalities from a given set of programs. Typically, this process is applied in the context of aiding program synthesis: concise functions can help the synthesizer produce…

Programming Languages · Computer Science 2024-10-10 Abhiram Bellur , Razan Alghamdi , Kidus Workneh , Joseph Izraelevitz

The Move language provides abstractions for programming with digital assets via a mix of value semantics and reference semantics. Ensuring memory safety in programs with references that access a shared, mutable global ledger is difficult,…

Programming Languages · Computer Science 2022-05-12 Sam Blackshear , John Mitchell , Todd Nowacki , Shaz Qadeer

Logic programming languages present clear advantages in terms of declarativeness and conciseness. However, the ideas of logic programming have been met with resistance in other programming communities, and have not generally been adopted by…

Programming Languages · Computer Science 2026-01-08 Ivan Perez , Angel Herranz

Although Rust primarily intends to be a safe programming language that excludes undefined behaviour, it provides its users with the escape hatch of unsafe Rust, allowing them to circumvent some of its strong compile-time checks. This…

Programming Languages · Computer Science 2025-10-28 Alex Le Blanc , Patrick Lam

The fact that Applicative type class allows one to express simple parsers in a variable-less combinatorial style is well appreciated among Haskell programmers for its conceptual simplicity, ease of use, and usefulness for semi-automated…

Programming Languages · Computer Science 2019-05-28 Jan Malakhovski , Sergei Soloviev

Traditional session types prescribe bidirectional communication protocols for concurrent computations, where well-typed programs are guaranteed to adhere to the protocols. However, simple session types cannot capture properties beyond the…

Programming Languages · Computer Science 2023-06-22 Ankush Das , Frank Pfenning