Using natural language processing techniques for automated code refactoring (2023)
- Authors:
- Autor USP: BARZILAY, ALAN - IME
- Unidade: IME
- Sigla do Departamento: MAC
- DOI: 10.11606/D.45.2023.tde-18012024-163530
- Subjects: APRENDIZADO COMPUTACIONAL; PROCESSAMENTO DE LINGUAGEM NATURAL; ENGENHARIA DE SOFTWARE
- Keywords: Aprendizado de máquina; Code refactoring; Machine learning; Natural language processing; Refatoração; Software engineering
- Agências de fomento:
- Language: Inglês
- Abstract: Técnicas de processamento de linguagem natural podem ser aplicadas aos mais diversos textos, não somente àqueles redigidos em linguagens humanas como também àqueles redigidos em linguagens ditas artificiais, como códigos escritos em linguagens de programação. Refatoração de código é uma técnica fundamental em engenharia de software, sendo utilizada tanto como uma ferramenta para garantir a qualidade do código como também como um passo importante na expansão de funcionalidades e depuração. Nesse trabalho propomos um modelo para refatoração automática de código. Ao utilizar diretamente o código fonte como entrada em nosso modelo de processamento de código nós obtemos automaticamente sugestões de refatorações do tipo extração de função. O modelo proposto consiste em uma rede neural capaz de receber uma representação vetorial do código a ser refatorado e gerar uma representação da refatoração sugerida. Essa rede foi treinada com base numa lista de repositórios de código obtida através de uma colaboração com a TU Delft na Holanda. Com base nessa lista foi criado o maior dataset de refatorações de extração de função existente --- até o momento da publicação dessa tese --- sendo 60% maior do que o segundo maior dataset de seu tipo. Além disso, nosso modelo final atingiu uma acurácia de teste de 0.7275
- Imprenta:
- Data da defesa: 01.09.2023
- Este periódico é de acesso aberto
- Este artigo é de acesso aberto
- URL de acesso aberto
- Cor do Acesso Aberto: gold
- Licença: cc-by-nc-sa
-
ABNT
BARZILAY, Alan. Using natural language processing techniques for automated code refactoring. 2023. Dissertação (Mestrado) – Universidade de São Paulo, São Paulo, 2023. Disponível em: https://www.teses.usp.br/teses/disponiveis/45/45134/tde-18012024-163530/. Acesso em: 03 jan. 2026. -
APA
Barzilay, A. (2023). Using natural language processing techniques for automated code refactoring (Dissertação (Mestrado). Universidade de São Paulo, São Paulo. Recuperado de https://www.teses.usp.br/teses/disponiveis/45/45134/tde-18012024-163530/ -
NLM
Barzilay A. Using natural language processing techniques for automated code refactoring [Internet]. 2023 ;[citado 2026 jan. 03 ] Available from: https://www.teses.usp.br/teses/disponiveis/45/45134/tde-18012024-163530/ -
Vancouver
Barzilay A. Using natural language processing techniques for automated code refactoring [Internet]. 2023 ;[citado 2026 jan. 03 ] Available from: https://www.teses.usp.br/teses/disponiveis/45/45134/tde-18012024-163530/
Informações sobre o DOI: 10.11606/D.45.2023.tde-18012024-163530 (Fonte: oaDOI API)
How to cite
A citação é gerada automaticamente e pode não estar totalmente de acordo com as normas
