Demo Data from EDBT 2026 / reviewers in the wild / expert
Sewen Thy
dblp:362/5760
· DBLP profile ↗
1ranked-venue papers
1as first author
1since 2021 · last 2023
0009-0005-8798-7809ORCID · reported
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 1 · 1 first-author · 1 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
1 paper |
Software maintenance and evolution · 75% Programming languages and type systems · 25% |
Topics — the 4 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software maintenance and evolution › refactoring
automated refactoring |
0.7 | 1 | 2023 | Adventure of a Lifetime: Extract Method Refactoring for Rust · Proc. ACM Program. Lang. 2023 |
Software maintenance and evolution › refactoring
extract method refactoring |
0.7 | 1 | 2023 | Adventure of a Lifetime: Extract Method Refactoring for Rust · Proc. ACM Program. Lang. 2023 |
Programming languages and type systems › type systems
ownership types |
0.7 | 1 | 2023 | Adventure of a Lifetime: Extract Method Refactoring for Rust · Proc. ACM Program. Lang. 2023 |
Software maintenance and evolution
refactoring |
0.7 | 1 | 2023 | Adventure of a Lifetime: Extract Method Refactoring for Rust · Proc. ACM Program. Lang. 2023 |
Methods — techniques the papers use, named apart from their topics
static ownership analysis · 0.7program repair · 0.7lifetime checking · 0.7
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Adventure of a Lifetime: Extract Method Refactoring for RustabstractWe present a design and implementation of the automated "Extract Method" refactoring for Rust programs. Even though Extract Method is one of the most well-studied and widely used in practice automated refactorings, featured in all major IDEs for all popular programming languages, implementing it soundly for Rust is surprisingly non-trivial due to the restrictions of the Rust's ownership and lifetime-based type system. In this work, we provide a systematic decomposition of the Extract Method refactoring for Rust programs into a series of program transformations, each concerned with satisfying a particular aspect of Rust type safety, eventually producing a well-typed Rust program. Our key discovery is the formulation of Extract Method as a composition of naive function hoisting and a series of automated program repair procedures that progressively make the resulting program "more well-typed" by relying on the corresponding repair oracles. Those oracles include a novel static intra-procedural ownership analysis that infers correct sharing annotations for the extracted function's parameters, and the lifetime checker of rustc, Rust's reference compiler. We implemented our approach in a tool called REM---an automated Extract Method refactoring built on top of IntelliJ IDEA plugin for Rust. Our extensive evaluation on a corpus of changes in five popular Rust projects shows that REM (a) can extract a larger class of feature-rich code fragments into semantically correct functions than other existing refactoring tools, (b) can reproduce method extractions performed manually by human developers in the past, and (c) is efficient enough to be used in interactive development. Sewen Thy, Andreea Costea, Kiran Gopinathan, Ilya Sergey |
Proc. ACM Program. Lang. | 1 |