Rafaello Sanna

dblp:293/7134 · DBLP profile ↗
← Back
3ranked-venue papers
0as first author
3since 2021 · last 2025
0009-0009-7266-7422ORCID · reported

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 2 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Programming languages and type systems · 54% Program synthesis and code generation · 23% Software testing · 23%

Topics — the 5 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems
language design
0.912025
Multi-stage Relational Programming · Proc. ACM Program. Lang. 2025
Programming languages and type systems › metaprogramming
multi-stage programming
0.912025
Multi-stage Relational Programming · Proc. ACM Program. Lang. 2025
Program synthesis and code generation
relational program synthesis
0.912025
Multi-stage Relational Programming · Proc. ACM Program. Lang. 2025
Software testing › fuzzing
greybox fuzzing
0.712023
Guiding Greybox Fuzzing with Mutation Testing · ISSTA 2023
Programming languages and type systems
logic programming
0.312025
Multi-stage Relational Programming · Proc. ACM Program. Lang. 2025

Methods — techniques the papers use, named apart from their topics

staging · 0.9relational interpretation · 0.9minikanren · 0.9mutation testing · 0.7greybox fuzzing · 0.7
YearPublicationVenuePosition
2025 Multi-stage Relational Programming
abstract
We transport multi-stage programming from functional to relational programming, with novel constructs to give programmers control over staging and non-determinism. We stage interpreters written as relations, in which the programs under interpretation can contain holes representing unknown expressions or values. By compiling the known parts without interpretive overhead and deferring interpretation to run time only for the unknown parts, we compound the benefits of staging (e.g., turning interpreters into compilers) and relational interpretation (e.g., turning functions into relations and synthesizing from sketches). We extend miniKanren with staging constructs and apply the resulting multi-stage language to relational interpreters for subsets of Racket and miniKanren as well as a relational recognizer for context-free grammars. We demonstrate significant performance gains across multiple synthesis problems, systematically comparing unstaged and staged computation, as well as indicatively comparing with an existing hand-tuned relational interpreter.
Michael Ballantyne, Rafaello Sanna, Jason Hemann, William E. Byrd, Nada Amin
Proc. ACM Program. Lang.2
2023 Guiding Greybox Fuzzing with Mutation Testing
abstract
Greybox fuzzing and mutation testing are two popular but mostly independent fields of software testing research that have so far had limited overlap. Greybox fuzzing, generally geared towards searching for new bugs, predominantly uses code coverage for selecting inputs to save. Mutation testing is primarily used as a stronger alternative to code coverage in assessing the quality of regression tests; the idea is to evaluate tests for their ability to identify artificially injected faults in the target program. But what if we wanted to use greybox fuzzing to synthesize high-quality regression tests?
Vasudev Vikram, Isabella Laybourn, Ao Li 0009, Nicole Nair, Kelton OBrien, Rafaello Sanna, Rohan Padhye
ISSTA6
2021 Fast Nonblocking Persistence for Concurrent Data Structures
abstract
We present a fully lock-free variant of our recent Montage system for persistent data structures. The variant, nbMontage, adds persistence to almost any nonblocking concurrent structure without introducing significant overhead or blocking of any kind. Like its predecessor, nbMontage is buffered durably linearizable: it guarantees that the state recovered in the wake of a crash will represent a consistent prefix of pre-crash execution. Unlike its predecessor, nbMontage ensures wait-free progress of the persistence frontier, thereby bounding the number of recent updates that may be lost on a crash, and allowing a thread to force an update of the frontier (i.e., to perform a sync operation) without the risk of blocking. As an extra benefit, the helping mechanism employed by our wait-free sync significantly reduces its latency. Performance results for nonblocking queues, skip lists, trees, and hash tables rival custom data structures in the literature - dramatically faster than achieved with prior general-purpose systems, and generally within 50% of equivalent non-persistent structures placed in DRAM.
Wentao Cai 0002, Haosen Wen, Vladimir Maksimovski, Mingzhe Du, Rafaello Sanna, Shreif Abdallah, Michael L. Scott
DISC5