How do developers use dynamic features? The case of ruby

dc.creatorRodrigues Júnior, Elder
dc.creatorTerra, Ricardo
dc.date.accessioned2019-06-07T12:01:04Z
dc.date.available2019-06-07T12:01:04Z
dc.date.issued2018-09
dc.description.abstractProgramming languages provide features that allow developers—at run time—to evaluate strings as expressions, to define and invoke methods, etc. Nevertheless, the overuse of dynamic features may negatively impact performance, decrease the accuracy of static code analysis techniques, and hinder compiler optimizations. This paper, therefore, investigates how developers use dynamic features based on 28 open-source Ruby projects. The main findings are fourfold: (i) dynamic features correspond on average to 2.58% of the language features in a Ruby project, and almost half of them are when we disregard features that are ascribed to common programming practices; (ii) we identified that 1417 out of 2849 dynamic statements (49.7%) could be easily converted to static code; (iii) we identified, classified, and also illustrated the ten most common scenarios where developers opt for dynamic statements instead of static ones, e.g., we found that developers rely mostly on dynamic features to access private members (20.35%), which reveals flaws in the architectural design; and (iv) we identified five motivations why developers use dynamic features: unusual coding style, overpassing privacy restrictions, defining new structures, contextualizing block executions, and generalizing code tasks.pt_BR
dc.description.provenanceSubmitted by Eliana Bernardes (eliana@biblioteca.ufla.br) on 2019-06-07T12:00:47Z No. of bitstreams: 0en
dc.description.provenanceApproved for entry into archive by Eliana Bernardes (eliana@biblioteca.ufla.br) on 2019-06-07T12:01:04Z (GMT) No. of bitstreams: 0en
dc.description.provenanceMade available in DSpace on 2019-06-07T12:01:04Z (GMT). No. of bitstreams: 0 Previous issue date: 2018-09en
dc.identifier.citationRODRIGUES JÚNIOR, E.; TERRA, R. How do developers use dynamic features? The case of ruby. Computer Languages, Systems & Structures, [S.l.], v. 53 , p. 73-89, Sept. 2018.pt_BR
dc.identifier.urihttps://repositorio.ufla.br/handle/1/34683
dc.identifier.urihttps://www.sciencedirect.com/science/article/pii/S1477842417300945pt_BR
dc.languageen_USpt_BR
dc.publisherElsevierpt_BR
dc.rightsopenAccesspt_BR
dc.sourceComputer Languages, Systems & Structurespt_BR
dc.subjectProgramming languagespt_BR
dc.subjectDynamic featurespt_BR
dc.subjectEmpirical studypt_BR
dc.titleHow do developers use dynamic features? The case of rubypt_BR
dc.typeArtigopt_BR

Arquivos

Licença do pacote

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
953 B
Formato:
Item-specific license agreed upon to submission
Descrição: