The Impact of Language Independence on Structured Merge Accuracy and Efficiency
| Ano de defesa: | 2025 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | eng |
| Instituição de defesa: |
Universidade Federal de Pernambuco
UFPE Brasil Programa de Pos Graduacao em Ciencia da Computacao |
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Link de acesso: | https://repositorio.ufpe.br/handle/123456789/67530 |
Resumo: | Ferramentas de merge não estruturadas são amplamente utilizadas na prática. Ferramen tas de merge estruturadas baseadas em ASTs apresentam uma precisão de merge significati vamente melhor, mas são específicas para cada linguagem e custosas, o que faz com que não estejam disponíveis para muitas linguagens de programação. Essa restrição limita a adoção de ferramentas estruturadas na indústria, já que muitas equipes trabalham com múltiplas lin guagens e não podem arcar com a manutenção de uma ferramenta de merge separada para cada uma delas. Para melhorar a precisão do merge em uma ampla variedade de linguagens, propomos LastMerge, uma ferramenta de merge estruturada genérica que pode ser confi gurada por meio de uma interface simples, reduzindo significativamente o esforço necessário para dar suporte ao merge estruturado. Para entender o impacto que uma ferramenta de merge estruturada genérica pode ter na precisão e no desempenho do merge, conduzimos um experimento com quatro ferramentas de merge estruturado: duas específicas para Java, jDime e Spork, e suas contrapartes genéricas, respectivamente LastMerge e Mergiraf . Utilizando cada ferramenta, reexecutamos cenários de merge de um conjunto de projetos significativo e coletamos dados sobre tempo de execução, divergências comportamentais e precisão do merge. Nossos resultados mostram que não há evidências de que o merge estruturado genérico im pacte significativamente a precisão do merge. Embora observemos uma taxa de diferença de aproximadamente 10% entre as ferramentas específicas para Java e suas contrapartes gené ricas, a maioria das diferenças decorre de detalhes de implementação e poderia ser evitada. LastMerge reporta 15% menos falsos positivos (conflitos espúrios) que o jDime, enquanto o Mergiraf deixa de identificar 42% menos falsos negativos (conflitos reais ignorados) que o Spork. Ambas as ferramentas genéricas apresentam desempenho de tempo de execução com parável às implementações específicas por linguagem mais avançadas. Também exploramos o esforço necessário para configurar LastMerge para uso com linguagens de programação, configurando-o para uso com Java e C#. Verificamos que o esforço é significativamente menor do que o necessário para manter uma ferramenta de merge específica por linguagem, exigindo apenas um conhecimento mínimo da estrutura da linguagem de programação. Além disso, essa configuração pode ser melhorada de forma incremental ao longo do tempo, conforme a ferramenta é usada na prática, para aprimorar a precisão do merge nos diversos cenários en contrados. Esses resultados sugerem que ferramentas de merge estruturadas genéricas podem substituir efetivamente as ferramentas específicas por linguagem, abrindo caminho para uma adoção mais ampla do merge estruturado na indústria. |
| id |
UFPE_672f9a8053d0ae1815a838e23ba5c4c4 |
|---|---|
| oai_identifier_str |
oai:repositorio.ufpe.br:123456789/67530 |
| network_acronym_str |
UFPE |
| network_name_str |
Repositório Institucional da UFPE |
| repository_id_str |
|
| spelling |
The Impact of Language Independence on Structured Merge Accuracy and EfficiencyIntegração de códigoFerramentas de mergeMerge estruturadoLinguagens de programaçãoFerramentas de merge não estruturadas são amplamente utilizadas na prática. Ferramen tas de merge estruturadas baseadas em ASTs apresentam uma precisão de merge significati vamente melhor, mas são específicas para cada linguagem e custosas, o que faz com que não estejam disponíveis para muitas linguagens de programação. Essa restrição limita a adoção de ferramentas estruturadas na indústria, já que muitas equipes trabalham com múltiplas lin guagens e não podem arcar com a manutenção de uma ferramenta de merge separada para cada uma delas. Para melhorar a precisão do merge em uma ampla variedade de linguagens, propomos LastMerge, uma ferramenta de merge estruturada genérica que pode ser confi gurada por meio de uma interface simples, reduzindo significativamente o esforço necessário para dar suporte ao merge estruturado. Para entender o impacto que uma ferramenta de merge estruturada genérica pode ter na precisão e no desempenho do merge, conduzimos um experimento com quatro ferramentas de merge estruturado: duas específicas para Java, jDime e Spork, e suas contrapartes genéricas, respectivamente LastMerge e Mergiraf . Utilizando cada ferramenta, reexecutamos cenários de merge de um conjunto de projetos significativo e coletamos dados sobre tempo de execução, divergências comportamentais e precisão do merge. Nossos resultados mostram que não há evidências de que o merge estruturado genérico im pacte significativamente a precisão do merge. Embora observemos uma taxa de diferença de aproximadamente 10% entre as ferramentas específicas para Java e suas contrapartes gené ricas, a maioria das diferenças decorre de detalhes de implementação e poderia ser evitada. LastMerge reporta 15% menos falsos positivos (conflitos espúrios) que o jDime, enquanto o Mergiraf deixa de identificar 42% menos falsos negativos (conflitos reais ignorados) que o Spork. Ambas as ferramentas genéricas apresentam desempenho de tempo de execução com parável às implementações específicas por linguagem mais avançadas. Também exploramos o esforço necessário para configurar LastMerge para uso com linguagens de programação, configurando-o para uso com Java e C#. Verificamos que o esforço é significativamente menor do que o necessário para manter uma ferramenta de merge específica por linguagem, exigindo apenas um conhecimento mínimo da estrutura da linguagem de programação. Além disso, essa configuração pode ser melhorada de forma incremental ao longo do tempo, conforme a ferramenta é usada na prática, para aprimorar a precisão do merge nos diversos cenários en contrados. Esses resultados sugerem que ferramentas de merge estruturadas genéricas podem substituir efetivamente as ferramentas específicas por linguagem, abrindo caminho para uma adoção mais ampla do merge estruturado na indústria.Unstructured line-based merge tools are widely used in practice. Structured AST-based merge tools show significantly improved merge accuracy, but are language specific and costly, consequently not being available for many programming languages. Such restriction limits the adoption of structured merge tools in industry, as many teams work with multiple programming languages and cannot afford to maintain a separate merge tool for each language. To improve merge accuracy for a wide range of languages, we propose LastMerge, a generic structured merge tool that can be configured through a thin interface that significantly reduces the effort of supporting structured merge. To understand the impact that generic structured merge might have on merge accuracy and performance, we run an experiment with four structured merge tools: two Java specific ones, jDime and Spork, and their generic counterparts, respectively LastMerge and Mergiraf. Using each tool, we replay merge scenarios from a significant dataset, and collect data on runtime, behavioral divergences, and merge accuracy. Our results show no evidence that generic structured merge significantly impacts merge accuracy. Although we observe a difference rate of approximately 10% between the Java specific tools and their generic counterparts, most of the differences stem from implementation details and could be avoided. We find that LastMerge reports 15% fewer false positives than jDime while Mergiraf misses 42% fewer false negatives than Spork. Both generic tools exhibit comparable runtime performance to the state of the art language specific implementations. We also explore the effort of configuring LastMerge for usage with programming languages, by configuring it for usage with Java and C#. We find that the effort is significantly lower than maintaining a language-specific merge tool, requiring only minimal knowledge of the programming language structure. Furthermore, such configuration can be incrementally improved over time, as the tool is used in practice, in order to improve merge accuracy for the variety of scenarios encountered in practice. These results suggest that generic structured merge tools can effectively replace language-specific ones, paving the way for broader adoption of structured merge in industryUniversidade Federal de PernambucoUFPEBrasilPrograma de Pos Graduacao em Ciencia da ComputacaoBORBA, Paulo Henrique MonteiroCAVALCANTI, Guilherme José de Carvalhohttp://lattes.cnpq.br/3427956997096455http://lattes.cnpq.br/9395715443254344http://lattes.cnpq.br/2569037604960951https://orcid.org/0000-0002-3982-167Xhttps://orcid.org/0000-0002-0381-2843https://orcid.org/0000-0001-8821-6858DUARTE, João Pedro Henrique Santos2026-01-12T13:45:28Z2026-01-12T13:45:28Z2025-07-29info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfDUARTE, João Pedro Henrique Santos. The impact of language independence on structured merge accuracy and efficiency. 2025. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2025.https://repositorio.ufpe.br/handle/123456789/67530enghttps://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPE2026-01-18T19:54:25Zoai:repositorio.ufpe.br:123456789/67530Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212026-01-18T19:54:25Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false |
| dc.title.none.fl_str_mv |
The Impact of Language Independence on Structured Merge Accuracy and Efficiency |
| title |
The Impact of Language Independence on Structured Merge Accuracy and Efficiency |
| spellingShingle |
The Impact of Language Independence on Structured Merge Accuracy and Efficiency DUARTE, João Pedro Henrique Santos Integração de código Ferramentas de merge Merge estruturado Linguagens de programação |
| title_short |
The Impact of Language Independence on Structured Merge Accuracy and Efficiency |
| title_full |
The Impact of Language Independence on Structured Merge Accuracy and Efficiency |
| title_fullStr |
The Impact of Language Independence on Structured Merge Accuracy and Efficiency |
| title_full_unstemmed |
The Impact of Language Independence on Structured Merge Accuracy and Efficiency |
| title_sort |
The Impact of Language Independence on Structured Merge Accuracy and Efficiency |
| author |
DUARTE, João Pedro Henrique Santos |
| author_facet |
DUARTE, João Pedro Henrique Santos |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
BORBA, Paulo Henrique Monteiro CAVALCANTI, Guilherme José de Carvalho http://lattes.cnpq.br/3427956997096455 http://lattes.cnpq.br/9395715443254344 http://lattes.cnpq.br/2569037604960951 https://orcid.org/0000-0002-3982-167X https://orcid.org/0000-0002-0381-2843 https://orcid.org/0000-0001-8821-6858 |
| dc.contributor.author.fl_str_mv |
DUARTE, João Pedro Henrique Santos |
| dc.subject.por.fl_str_mv |
Integração de código Ferramentas de merge Merge estruturado Linguagens de programação |
| topic |
Integração de código Ferramentas de merge Merge estruturado Linguagens de programação |
| description |
Ferramentas de merge não estruturadas são amplamente utilizadas na prática. Ferramen tas de merge estruturadas baseadas em ASTs apresentam uma precisão de merge significati vamente melhor, mas são específicas para cada linguagem e custosas, o que faz com que não estejam disponíveis para muitas linguagens de programação. Essa restrição limita a adoção de ferramentas estruturadas na indústria, já que muitas equipes trabalham com múltiplas lin guagens e não podem arcar com a manutenção de uma ferramenta de merge separada para cada uma delas. Para melhorar a precisão do merge em uma ampla variedade de linguagens, propomos LastMerge, uma ferramenta de merge estruturada genérica que pode ser confi gurada por meio de uma interface simples, reduzindo significativamente o esforço necessário para dar suporte ao merge estruturado. Para entender o impacto que uma ferramenta de merge estruturada genérica pode ter na precisão e no desempenho do merge, conduzimos um experimento com quatro ferramentas de merge estruturado: duas específicas para Java, jDime e Spork, e suas contrapartes genéricas, respectivamente LastMerge e Mergiraf . Utilizando cada ferramenta, reexecutamos cenários de merge de um conjunto de projetos significativo e coletamos dados sobre tempo de execução, divergências comportamentais e precisão do merge. Nossos resultados mostram que não há evidências de que o merge estruturado genérico im pacte significativamente a precisão do merge. Embora observemos uma taxa de diferença de aproximadamente 10% entre as ferramentas específicas para Java e suas contrapartes gené ricas, a maioria das diferenças decorre de detalhes de implementação e poderia ser evitada. LastMerge reporta 15% menos falsos positivos (conflitos espúrios) que o jDime, enquanto o Mergiraf deixa de identificar 42% menos falsos negativos (conflitos reais ignorados) que o Spork. Ambas as ferramentas genéricas apresentam desempenho de tempo de execução com parável às implementações específicas por linguagem mais avançadas. Também exploramos o esforço necessário para configurar LastMerge para uso com linguagens de programação, configurando-o para uso com Java e C#. Verificamos que o esforço é significativamente menor do que o necessário para manter uma ferramenta de merge específica por linguagem, exigindo apenas um conhecimento mínimo da estrutura da linguagem de programação. Além disso, essa configuração pode ser melhorada de forma incremental ao longo do tempo, conforme a ferramenta é usada na prática, para aprimorar a precisão do merge nos diversos cenários en contrados. Esses resultados sugerem que ferramentas de merge estruturadas genéricas podem substituir efetivamente as ferramentas específicas por linguagem, abrindo caminho para uma adoção mais ampla do merge estruturado na indústria. |
| publishDate |
2025 |
| dc.date.none.fl_str_mv |
2025-07-29 2026-01-12T13:45:28Z 2026-01-12T13:45:28Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
DUARTE, João Pedro Henrique Santos. The impact of language independence on structured merge accuracy and efficiency. 2025. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2025. https://repositorio.ufpe.br/handle/123456789/67530 |
| identifier_str_mv |
DUARTE, João Pedro Henrique Santos. The impact of language independence on structured merge accuracy and efficiency. 2025. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2025. |
| url |
https://repositorio.ufpe.br/handle/123456789/67530 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| dc.rights.driver.fl_str_mv |
https://creativecommons.org/licenses/by-nc-nd/4.0/ info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
https://creativecommons.org/licenses/by-nc-nd/4.0/ |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Pernambuco UFPE Brasil Programa de Pos Graduacao em Ciencia da Computacao |
| publisher.none.fl_str_mv |
Universidade Federal de Pernambuco UFPE Brasil Programa de Pos Graduacao em Ciencia da Computacao |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFPE instname:Universidade Federal de Pernambuco (UFPE) instacron:UFPE |
| instname_str |
Universidade Federal de Pernambuco (UFPE) |
| instacron_str |
UFPE |
| institution |
UFPE |
| reponame_str |
Repositório Institucional da UFPE |
| collection |
Repositório Institucional da UFPE |
| repository.name.fl_str_mv |
Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE) |
| repository.mail.fl_str_mv |
attena@ufpe.br |
| _version_ |
1856042116730322944 |