On the use of statistical machine translation for suggesting variable names for decompiled code: The Pharo case

dc.catalogadorjlo
dc.contributor.authorSandoval Alcocer, Juan Pablo
dc.contributor.authorCamacho-Jaimes, Harold
dc.contributor.authorGalindo-Gutierrez, Geraldine
dc.contributor.authorNeyem, Hugo Andrés
dc.contributor.authorBergel, Alexandre
dc.contributor.authorDucassee, Stéphane
dc.date.accessioned2024-05-31T13:16:00Z
dc.date.available2024-05-31T13:16:00Z
dc.date.issued2024
dc.description.abstractAdequately selecting variable names is a difficult activity for practitioners. In 2018, Jaffe et al. proposed the use of statistical machine translation (SMT) to suggest descriptive variable names for decompiled code. A large corpus of decompiled C code was used to train the SMT model. Our paper presents the results of a partial replication of Jaffe’s experiment. We apply the same technique and methodology to a dataset made of code written in the Pharo programming language. We selected Pharo since its syntax is simple – it fits on half of a postcard – and because the optimizations performed by the compiler are limited to method scope. Our results indicate that SMT may recover between 8.9% and 69.88% of the variable names depending on the training set. Our replication concludes that: (i) the accuracy depends on the code similarity between the training and testing sets; (ii) the simplicity of the Pharo syntax and the satisfactory decompiled code alignment have a positive impact on predicting variable names; and (iii) a relatively small code corpus is sufficient to train the SMT model, which shows the applicability of the approach to less popular programming languages. Additionally, to assess SMT’s potential in improving original variable names, ten Pharo developers reviewed 400 SMT name suggestions, with four reviews per variable. Only 15 suggestions (3.75%) were unanimously viewed as improvements, while 45 (11.25%) were perceived as improvements by at least two reviewers, highlighting SMT’s limitations in providing suitable alternatives.
dc.fechaingreso.objetodigital2024-08-30
dc.fuente.origenORCID
dc.identifier.doi10.1016/j.cola.2024.101271
dc.identifier.issn2590-1184
dc.identifier.urihttps://doi.org/10.1016/j.cola.2024.101271
dc.identifier.urihttps://repositorio.uc.cl/handle/11534/86122
dc.identifier.wosidWOS:001217002000001
dc.information.autorucEscuela de Ingeniería; Sandoval Alcocer, Juan Pablo; S/I; 1210748
dc.information.autorucEscuela de Ingeniería; Neyem, Hugo Andrés; 0000-0002-5734-722X; 1007638
dc.language.isoen
dc.nota.accesoContenido parcial
dc.rightsacceso restringido
dc.subjectStatistical machine translation
dc.subjectDecompiled code
dc.subjectIdentifiers
dc.subjectVariable names
dc.subject.ddc000
dc.subject.deweyCiencias de la computaciónes_ES
dc.titleOn the use of statistical machine translation for suggesting variable names for decompiled code: The Pharo case
dc.typeartículo
sipa.codpersvinculados1210748
sipa.codpersvinculados1007638
sipa.trazabilidadORCID;2024-05-27
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
On the use of statistical machine translation for suggesting variable names for decompiled code - The Pharo case.pdf
Size:
3.12 KB
Format:
Adobe Portable Document Format
Description: