Learning Code Transformations from Repositories

Library updates, program errors, and maintenance tasks in general force developers to apply the same code change to different locations within their projects. If the locations are very different to each other, it is very time-consuming to identify all of them. Even with sufficient time, there is no...

Szczegółowa specyfikacja

Zapisane w:
Opis bibliograficzny
1. autor: Dotzler, Georg
Format: Online
Język:angielski
Wydane: FAU University Press 2025
Hasła przedmiotowe:
Dostęp online:ONIX_20251215T160010_9783961471423_42
Etykiety: Dodaj etykietę
Nie ma etykietki, Dołącz pierwszą etykiete!
_version_ 1869528844558401536
author Dotzler, Georg
author_browse Dotzler, Georg
author_facet Dotzler, Georg
author_sort Dotzler, Georg
collection Directory of Open Access Books
description Library updates, program errors, and maintenance tasks in general force developers to apply the same code change to different locations within their projects. If the locations are very different to each other, it is very time-consuming to identify all of them. Even with sufficient time, there is no guarantee that a manual search reveals all locations. If the change is critical, each missed location can lead to severe consequences. The manual application of the code change to each location can also get tedious. If the change is larger, developers have to execute several transformation steps for each code location. In the worst case, they forget a required step and thus add new errors to their projects. To support developers in this task, this thesis presents the recommendation system ARES. It leads to more accurate recommendations compared to previous approaches. ARES achieves this by conserving variations in the training examples in more detail due to its pattern design and by an improved handling of code movements. With the tool C3, this thesis also presents an extension to ARES that allows the extraction of training examples from code repositories. In combination, both tools create a recommendation system that automatically learns code recommendation patterns from repositories. ARES, C3, and similar tools rely on lists of edit operations to express code changes. However, creating compact (i.e., short) lists of edit operations from data in repositories is difficult. As previous approaches produce too long lists for ARES and C3, this thesis presents a novel tree differencing approach called MTDIFF. The evaluation shows that MTDIFF shortens the edit operation lists compared to other state-of-the-art approaches.
format Online
id doab-20.500.12854ir-170260
institution Directory of Open Access Books
language eng
publishDate 2025
publishDateRange 2025
publishDateSort 2025
publisher FAU University Press
publisherStr FAU University Press
record_format ojs
spelling doab-20.500.12854ir-1702602025-12-16T05:40:42Z Learning Code Transformations from Repositories Dotzler, Georg Refactoring Empfehlungssystem Tree Differencing Software Engineering Programmtransformation Program Transformation Software Engineering Abstrakter Syntaxbaum thema EDItEUR::U Computing and Information Technology Library updates, program errors, and maintenance tasks in general force developers to apply the same code change to different locations within their projects. If the locations are very different to each other, it is very time-consuming to identify all of them. Even with sufficient time, there is no guarantee that a manual search reveals all locations. If the change is critical, each missed location can lead to severe consequences. The manual application of the code change to each location can also get tedious. If the change is larger, developers have to execute several transformation steps for each code location. In the worst case, they forget a required step and thus add new errors to their projects. To support developers in this task, this thesis presents the recommendation system ARES. It leads to more accurate recommendations compared to previous approaches. ARES achieves this by conserving variations in the training examples in more detail due to its pattern design and by an improved handling of code movements. With the tool C3, this thesis also presents an extension to ARES that allows the extraction of training examples from code repositories. In combination, both tools create a recommendation system that automatically learns code recommendation patterns from repositories. ARES, C3, and similar tools rely on lists of edit operations to express code changes. However, creating compact (i.e., short) lists of edit operations from data in repositories is difficult. As previous approaches produce too long lists for ARES and C3, this thesis presents a novel tree differencing approach called MTDIFF. The evaluation shows that MTDIFF shortens the edit operation lists compared to other state-of-the-art approaches. 2025-12-16T05:40:41Z 2025-12-16T05:40:41Z 2025-12-15T15:04:21Z 2018 book ONIX_20251215T160010_9783961471423_42 https://library.oapen.org/handle/20.500.12657/109162 9783961471423 9783961471416 https://directory.doabooks.org/handle/20.500.12854/170260 eng FAU Studien aus der Informatik open access image/jpeg Attribution-NonCommercial-NoDerivatives 4.0 International https://library.oapen.org/bitstream/20.500.12657/109162/1/9783961471423.pdf FAU University Press 10.25593/978-3-96147-142-3 10.25593/978-3-96147-142-3 2c600dea-eece-4066-87be-da335e323fdb 9783961471423 9783961471416 288 Erlangen open access
spellingShingle Refactoring
Empfehlungssystem
Tree Differencing
Software Engineering Programmtransformation Program Transformation
Software Engineering
Abstrakter Syntaxbaum
thema EDItEUR::U Computing and Information Technology
Dotzler, Georg
Learning Code Transformations from Repositories
title Learning Code Transformations from Repositories
title_full Learning Code Transformations from Repositories
title_fullStr Learning Code Transformations from Repositories
title_full_unstemmed Learning Code Transformations from Repositories
title_short Learning Code Transformations from Repositories
title_sort learning code transformations from repositories
topic Refactoring
Empfehlungssystem
Tree Differencing
Software Engineering Programmtransformation Program Transformation
Software Engineering
Abstrakter Syntaxbaum
thema EDItEUR::U Computing and Information Technology
topic_facet Refactoring
Empfehlungssystem
Tree Differencing
Software Engineering Programmtransformation Program Transformation
Software Engineering
Abstrakter Syntaxbaum
thema EDItEUR::U Computing and Information Technology
url ONIX_20251215T160010_9783961471423_42
work_keys_str_mv AT dotzlergeorg learningcodetransformationsfromrepositories