English
Related papers

Related papers: Debugging Trait Errors as Logic Programs

200 papers

Compiler diagnostics for type inference failures are notoriously bad, and type classes only make the problem worse. By introducing a complex search process during inference, type classes can lead to wholly inscrutable or useless errors. We…

Programming Languages · Computer Science 2025-04-29 Gavin Gray , Will Crichton , Shriram Krishnamurthi

Decompiling Rust binaries is challenging due to the language's rich type system, aggressive compiler optimizations, and widespread use of high-level abstractions. In this work, we conduct a benchmark-driven evaluation of decompilation…

Programming Languages · Computer Science 2025-07-28 Zixu Zhou

Programs with constraints are hard to debug. In this paper, we describe a general architecture to help develop new debugging tools for constraint programming. The possible tools are fed by a single general-purpose tracer. A tracer-driver is…

Software Engineering · Computer Science 2007-05-23 Ludovic Langevine , Mireille Ducasse

Rust aims to be a safe programming language applicable to systems programming applications. In particular, its type system has strong guardrails to prevent a variety of issues, such as memory safety bugs and data races. However, these…

Programming Languages · Computer Science 2024-10-04 Alex Le Blanc , Patrick Lam

Rust is gaining popularity for its well-known memory safety guarantees and high performance, distinguishing it from C/C++ and JVM-based languages. Its compiler, rustc, enforces these guarantees through specialized mechanisms such as trait…

Programming Languages · Computer Science 2025-04-01 Zixi Liu , Yang Feng , Yunbo Ni , Shaohua Li , Xizhe Yin , Qingkai Shi , Baowen Xu , Zhendong Su

Ownership is the concept of tracking aliases and mutations to data, useful for both memory safety and system design. The Rust programming language implements ownership via the borrow checker, a static analyzer that extends the core type…

Programming Languages · Computer Science 2021-09-24 Will Crichton

The paper proposes a theoretical approach of the debugging of constraint programs based on a notion of explanation tree. The proposed approach is an attempt to adapt algorithmic debugging to constraint programming. In this theoretical…

Software Engineering · Computer Science 2007-05-23 Gerard Ferrand , Willy Lesaint , Alexandre Tessier

The Rust programming language provides a powerful type system that checks linearity and borrowing, allowing code to safely manipulate memory without garbage collection and making Rust ideal for developing low-level, high-assurance systems.…

Logic in Computer Science · Computer Science 2023-03-14 Andrea Lattuada , Travis Hance , Chanhee Cho , Matthias Brun , Isitha Subasinghe , Yi Zhou , Jon Howell , Bryan Parno , Chris Hawblitzel

Rust relies on its unique ownership mechanism to ensure thread and memory safety. However, numerous potential security vulnerabilities persist in practical applications. New language features in Rust pose new challenges for vulnerability…

Programming Languages · Computer Science 2026-01-08 Yu Zhang , Kaiwen Zhang , Guanjun Liu

Rust's novel type system has proved an attractive target for verification and program analysis tools, due to the rich guarantees it provides for controlling aliasing and mutability. However, fully understanding, extracting and exploiting…

Programming Languages · Computer Science 2025-08-27 Zachary Grannan , Aurel Bílý , Jonáš Fiala , Jasper Geer , Markus de Medeiros , Peter Müller , Alexander J. Summers

The Rust programming language is famous for its strong ownership regime: at each point, each value is either exclusively owned, exclusively borrowed through a mutable reference, or borrowed as read-only through one or more shared…

Programming Languages · Computer Science 2026-03-31 Wannes Tas , Bart Jacobs

CHR is a very versatile programming language that allows programmers to declaratively specify constraint solvers. An important part of the development of such solvers is in their testing and debugging phases. Current CHR implementations…

Enabling humans to identify potential flaws in an agent's decision making is an important Explainable AI application. We consider identifying such flaws in a planning-based deep reinforcement learning (RL) agent for a complex real-time…

Artificial Intelligence · Computer Science 2021-09-30 Kin-Ho Lam , Zhengxian Lin , Jed Irvine , Jonathan Dodge , Zeyad T Shureih , Roli Khanna , Minsuk Kahng , Alan Fern

Rust has become a popular system programming language that strikes a balance between memory safety and performance. Rust's type system ensures the safety of low-level memory controls; however, a well-typed Rust program is not guaranteed to…

Programming Languages · Computer Science 2025-02-28 Qihao Lian , Di Wang

Deep learning had been used in program analysis for the prediction of hidden software defects using software defect datasets, security vulnerabilities using generative adversarial networks as well as identifying syntax errors by learning a…

Software Engineering · Computer Science 2019-07-16 Venkatesh Theru Mohan , Ali Jannesari

Many logic programming languages have delay primitives which allow coroutining. This introduces a class of bug symptoms -- computations can flounder when they are intended to succeed or finitely fail. For concurrent logic programs this is…

Programming Languages · Computer Science 2007-11-06 Lee Naish

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

Although Rust ensures memory safety by default, it also permits the use of unsafe code, which can introduce memory safety vulnerabilities if misused. Unfortunately, existing tools for detecting memory bugs in Rust typically exhibit limited…

Cryptography and Security · Computer Science 2025-10-28 Georgios Androutsopoulos , Antonio Bianchi

A gradual type system allows developers to declare certain types to be enforced by the compiler (i.e., statically typed), while leaving other types to be enforced via runtime checks (i.e., dynamically typed). When runtime checks fail,…

Programming Languages · Computer Science 2025-03-03 Felipe Bañados Schwerter , Ronald Garcia , Reid Holmes , Karim Ali

Rust is a modern programming language that guarantees memory safety and the absence of data races with a strong type system. We present RustyDL, a program logic for Rust, as a foundation for an auto-interactive, deductive verification tool…

Programming Languages · Computer Science 2026-02-26 Daniel Drodt , Reiner Hähnle
‹ Prev 1 2 3 10 Next ›