Banca de DEFESA: FERNANDO HENRIQUE DE ALBUQUERQUE ALVES

Uma banca de DEFESA de MESTRADO foi cadastrada pelo programa.
DISCENTE : FERNANDO HENRIQUE DE ALBUQUERQUE ALVES
DATA : 08/07/2022
HORA: 08:00
LOCAL: Virtual
TÍTULO:

On the usage of functional programming concepts in JavaScript 


PALAVRAS-CHAVES:

Programação Funcional. JavaScript. Mineração de Dados.


PÁGINAS: 65
RESUMO:

Constructos de linguagem de programação inspirados no paradigma funcional chegaram à maioria das linguagens convencionais. Muitos pesquisadores e desenvolvedores consideram que esses constructos levam a programas mais concisos, reutilizáveis e mais fáceis de entender. No entanto, poucos estudos investigam a prevalência dessas estruturas e as implicações de usá-las em linguagens de programação convencionais. Este trabalho quantifica a prevalência de quatro conceitos, normalmente associados à programação funcional, em JavaScript: recursão, imutabilidade, avaliação preguiçosa e funções como valores. Dividimos o último em dois grupos, funções de ordem superior e callbacks & promises. Focamos em programas JavaScript devido à disponibilidade de alguns desses conceitos na linguagem desde seu início, sua inspiração em linguagens de programação funcionais e a popularidade da linguagem. Mineramos 91 repositórios GitHub (mais de 22 milhões de linhas de código (LOC)) escritos principalmente em JavaScript (mais de 50% do código), medindo o uso desses conceitos de perspectivas estáticas e temporais. Também medimos a probabilidade de commits de correção de bugs removendo usos desses conceitos (o que sugeriria propensão a bugs) e sua associação com a presença de comentários de código (o que sugeriria um código difícil de entender). Descobrimos que esses conceitos estão em uso generalizado (478,605 ocorrências, 1 para cada 46.65 linhas de código, 43.59% de LOC). Além disso, o uso de funções de ordem superior, imutabilidade e estruturas relacionadas à avaliação preguiçosa vêm crescendo ao longo dos anos para os projetos analisados, enquanto o uso de recursão e callbacks & promises diminuiu. Também encontramos evidências estatísticas de que a remoção dessas estruturas, com exceção das associadas à imutabilidade, é menos comum em commits de correção de bugs do que em outros commits. Além disso, sua presença não está correlacionada com o tamanho do comentário associado. Nossas descobertas sugerem que os conceitos de programação funcional são importantes para desenvolvedores que usam uma linguagem multiparadigma, como JavaScript, e seu uso não torna os programas mais difíceis de entender.


MEMBROS DA BANCA:
Presidente - 1944532 - BRENO ALEXANDRO FERREIRA DE MIRANDA
Interno - 1668064 - FERNANDO JOSE CASTOR DE LIMA FILHO
Externo à Instituição - RODRIGO BONIFACIO DE ALMEIDA - UnB
Notícia cadastrada em: 22/06/2022 08:00
SIGAA | Superintendência de Tecnologia da Informação (STI-UFPE) - (81) 2126-7777 | Copyright © 2006-2024 - UFRN - sigaa03.ufpe.br.sigaa03