Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Sewen Thy

dblp:362/5760 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › refactoring
automated refactoring
0.712023
Adventure of a Lifetime: Extract Method Refactoring for Rust · Proc. ACM Program. Lang. 2023
Software maintenance and evolution › refactoring
extract method refactoring
0.712023
Adventure of a Lifetime: Extract Method Refactoring for Rust · Proc. ACM Program. Lang. 2023
Programming languages and type systems › type systems
ownership types
0.712023
Adventure of a Lifetime: Extract Method Refactoring for Rust · Proc. ACM Program. Lang. 2023
Software maintenance and evolution
refactoring
0.712023
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
YearPublicationVenuePosition
2023 Adventure of a Lifetime: Extract Method Refactoring for Rust
abstract
We 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