Outubro, 2024

Guilherme Cavalcanti, Paulo Borba, Leonardo dos Anjos, and Jonatas Clementino. 2024. Semistructured Merge with Language-Specific Syntactic Separators. In Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering (ASE ’24). Association for Computing Machinery, New York, NY, USA, 1032–1043. https://doi.org/10.1145/3691620.3695483

Abstract

Structured merge tools exploit programming language syntactic structure to enhance merge accuracy by reducing spurious conflicts reported by unstructured tools. By creating and handling full ASTs, structured tools are language-specific and harder to implement. They can also be computationally expensive when merging large files. To reduce these drawbacks, semistructured merge tools work with partial ASTs that use strings to represent lower level syntactic structures such as method bodies, and rely on unstructured tools to merge them. This, however, results in merge accuracy loss. To improve accuracy without compromising semistructured merge benefits, we propose a tool that leverages language-specific syntactic separators to infer structure without parsing. We still resort to an unstructured tool to merge lower level structures, but only after preprocessing the code so that text in between separators such as curly braces appear in separate lines. This way we emulate the capabilities of structured merge tools while avoiding their drawbacks. By comparing our tool with a robust implementation of semistructured merge, we find that our tool substantially reduces the number of spurious conflicts. We also observe significant but less substantial reductions on the overall number of reported conflicts, and of files with conflicts. However, similar to structured tools, our tool lets more merge conflicts go undetected. Our tool shows significant improvements over unstructured tools widely used in practice. Finally we observe that exploiting language-specific syntactic separators introduces unique textual alignment challenges.

Authors

Guilherme Cavalcanti, Federal Institute of Pernambuco, Recife, Brazil

Paulo Borba, Federal University of Pernambuco, Recife, Brazil

Leonardo Dos Anjos, Federal University of Pernambuco, Recife, Brazil

Jônatas Clementino, Federal University of Pernambuco, Recife, Brazil

Comentários desativados

Sobre este site

Portal institucional do Centro de Informática – UFPE

Encontre-nos

Endereço
Av. Jornalista Aníbal Fernandes, s/n – Cidade Universitária.
Recife-PE – Brasil
CEP: 50.740-560

Horário
Segunda–Sexta: 8:00–18:00