arXiv Open Access 2025

Language-Parametric Reference Synthesis (Extended)

Daniel A. A. Pelsmaeker Aron Zwaan Casper Bach Arjan J. Mooij
Lihat Sumber

Abstrak

Modern Integrated Development Environments (IDEs) offer automated refactorings to aid programmers in developing and maintaining software. However, implementing sound automated refactorings is challenging, as refactorings may inadvertently introduce name-binding errors or cause references to resolve to incorrect declarations. To address these issues, previous work by Schäfer et al. proposed replacing concrete references with locked references to separate binding preservation from transformation. Locked references vacuously resolve to a specific declaration, and after transformation must be replaced with concrete references that also resolve to that declaration. Synthesizing these references requires a faithful inverse of the name lookup functions of the underlying language. Manually implementing such inverse lookup functions is challenging due to the complex name-binding features in modern programming languages. Instead, we propose to automatically derive this function from type system specifications written in the Statix meta-DSL. To guide the synthesis of qualified references we use scope graphs, which represent the binding structure of a program, to infer their names and discover their syntactic structure. We evaluate our approach by synthesizing concrete references for locked references in 2528 Java, 196 ChocoPy, and 49 Featherweight Generic Java test programs. Our approach yields a principled language-parametric method for synthesizing references.

Topik & Kata Kunci

Penulis (4)

D

Daniel A. A. Pelsmaeker

A

Aron Zwaan

C

Casper Bach

A

Arjan J. Mooij

Format Sitasi

Pelsmaeker, D.A.A., Zwaan, A., Bach, C., Mooij, A.J. (2025). Language-Parametric Reference Synthesis (Extended). https://arxiv.org/abs/2502.19143

Akses Cepat

Lihat di Sumber
Informasi Jurnal
Tahun Terbit
2025
Bahasa
en
Sumber Database
arXiv
Akses
Open Access ✓