Um estudo empírico sobre o uso de tipagem opcional em sistemas de software

Detalhes bibliográficos
Ano de defesa: 2014
Autor(a) principal: Carlos Alexandre Garcia de Souza
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Minas Gerais
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://hdl.handle.net/1843/ESBF-9Q3N3Z
Resumo: The recent popularization of dynamically typed languages, such as Ruby and JavaScript, has brought more attention to the discussion about the impact of typing strategies on software development. Types allow the compiler to find type errors sooner and potentially improve the readability and maintainability of code. On the other hand, 'untyped' code may be easier to change and require less work from programmers. This paper tries to identify the programmers' point of view about these tradeoffs. An analysis of the source code of 6638 projects written in Groovy, a programming language which features optional typing, shows in which scenarios programmers prefer to type or not to type their declarations. Our results show that types are popular in the definition of module interfaces, but are less used in scripts, test classes and frequently changed code. There is no correlation between the size and age of projects and how their constructs are typed. Finally, we also found evidence that the background of programmers influences how they use types.
id UFMG_16045e366d6d5e07f0ea892e3291ab32
oai_identifier_str oai:repositorio.ufmg.br:1843/ESBF-9Q3N3Z
network_acronym_str UFMG
network_name_str Repositório Institucional da UFMG
repository_id_str
spelling 2019-08-10T04:17:39Z2025-09-08T23:15:41Z2019-08-10T04:17:39Z2014-04-03https://hdl.handle.net/1843/ESBF-9Q3N3ZThe recent popularization of dynamically typed languages, such as Ruby and JavaScript, has brought more attention to the discussion about the impact of typing strategies on software development. Types allow the compiler to find type errors sooner and potentially improve the readability and maintainability of code. On the other hand, 'untyped' code may be easier to change and require less work from programmers. This paper tries to identify the programmers' point of view about these tradeoffs. An analysis of the source code of 6638 projects written in Groovy, a programming language which features optional typing, shows in which scenarios programmers prefer to type or not to type their declarations. Our results show that types are popular in the definition of module interfaces, but are less used in scripts, test classes and frequently changed code. There is no correlation between the size and age of projects and how their constructs are typed. Finally, we also found evidence that the background of programmers influences how they use types.Universidade Federal de Minas GeraisTipagem opcionalSistemas de tiposAnálise de repositórioGroovyComputaçãoLinguagem de programaçãoUm estudo empírico sobre o uso de tipagem opcional em sistemas de softwareinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisCarlos Alexandre Garcia de Souzainfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFMGinstname:Universidade Federal de Minas Gerais (UFMG)instacron:UFMGEduardo Magno Lages FigueiredoFernando Magno Quintao PereiraMarcelo de Almeida MaiaA recente popularização de linguagens dinamicamente tipadas, como Ruby e Javascript, tem chamado a atenção para a discussão sobre os impactos de diferentes sistemas de tipos sobre o desenvolvimento de software. Tipos permitem que o compilador encontre erros de tipo mais cedo e potencialmente melhoram a legibilidade e manutenibilidade do código. Por outro lado, código 'não tipado' pode ser mais fácil de se alterar e requer menos trabalho dos programdores. Esta dissertação tenta identificar qual é o ponto de vista dos programdores sobre esses compromissos. Uma análise do código fonte de 6638 projetos escritos em Groovy, uma linguagem de programação com tipagem opcional, mostra em que cenários programadores preferem tipar ou não suas declarações. Nossos resultados mostram que tipos são populares na definição da interface de módulos, mas são menos usados em scripts, classes de teste e código frequentemente alterado. Não há correlação entre o tamanho e a idade de projetos e como estes são tipados. Por fim, tambem foi possível encontrar evidências de que a experiência de programdores com outras linguagens de programação possui influência sobre como tipos são usados por esses programadores.UFMGORIGINALcarlosalexandregarcia.pdfapplication/pdf3663919https://repositorio.ufmg.br//bitstreams/4afc68c4-e4b1-448c-9140-b3f4b427711b/downloadfc435937f668f42d075bf9608b49e462MD51trueAnonymousREADTEXTcarlosalexandregarcia.pdf.txttext/plain112244https://repositorio.ufmg.br//bitstreams/d5fe9ca1-c1d4-4593-a065-fdefc8ce841a/downloadeb128c5830fea56bef6fdad9760a21bcMD52falseAnonymousREAD1843/ESBF-9Q3N3Z2025-09-08 20:15:41.752open.accessoai:repositorio.ufmg.br:1843/ESBF-9Q3N3Zhttps://repositorio.ufmg.br/Repositório InstitucionalPUBhttps://repositorio.ufmg.br/oairepositorio@ufmg.bropendoar:2025-09-08T23:15:41Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)false
dc.title.none.fl_str_mv Um estudo empírico sobre o uso de tipagem opcional em sistemas de software
title Um estudo empírico sobre o uso de tipagem opcional em sistemas de software
spellingShingle Um estudo empírico sobre o uso de tipagem opcional em sistemas de software
Carlos Alexandre Garcia de Souza
Computação
Linguagem de programação
Tipagem opcional
Sistemas de tipos
Análise de repositório
Groovy
title_short Um estudo empírico sobre o uso de tipagem opcional em sistemas de software
title_full Um estudo empírico sobre o uso de tipagem opcional em sistemas de software
title_fullStr Um estudo empírico sobre o uso de tipagem opcional em sistemas de software
title_full_unstemmed Um estudo empírico sobre o uso de tipagem opcional em sistemas de software
title_sort Um estudo empírico sobre o uso de tipagem opcional em sistemas de software
author Carlos Alexandre Garcia de Souza
author_facet Carlos Alexandre Garcia de Souza
author_role author
dc.contributor.author.fl_str_mv Carlos Alexandre Garcia de Souza
dc.subject.por.fl_str_mv Computação
Linguagem de programação
topic Computação
Linguagem de programação
Tipagem opcional
Sistemas de tipos
Análise de repositório
Groovy
dc.subject.other.none.fl_str_mv Tipagem opcional
Sistemas de tipos
Análise de repositório
Groovy
description The recent popularization of dynamically typed languages, such as Ruby and JavaScript, has brought more attention to the discussion about the impact of typing strategies on software development. Types allow the compiler to find type errors sooner and potentially improve the readability and maintainability of code. On the other hand, 'untyped' code may be easier to change and require less work from programmers. This paper tries to identify the programmers' point of view about these tradeoffs. An analysis of the source code of 6638 projects written in Groovy, a programming language which features optional typing, shows in which scenarios programmers prefer to type or not to type their declarations. Our results show that types are popular in the definition of module interfaces, but are less used in scripts, test classes and frequently changed code. There is no correlation between the size and age of projects and how their constructs are typed. Finally, we also found evidence that the background of programmers influences how they use types.
publishDate 2014
dc.date.issued.fl_str_mv 2014-04-03
dc.date.accessioned.fl_str_mv 2019-08-10T04:17:39Z
2025-09-08T23:15:41Z
dc.date.available.fl_str_mv 2019-08-10T04:17:39Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://hdl.handle.net/1843/ESBF-9Q3N3Z
url https://hdl.handle.net/1843/ESBF-9Q3N3Z
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Minas Gerais
publisher.none.fl_str_mv Universidade Federal de Minas Gerais
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFMG
instname:Universidade Federal de Minas Gerais (UFMG)
instacron:UFMG
instname_str Universidade Federal de Minas Gerais (UFMG)
instacron_str UFMG
institution UFMG
reponame_str Repositório Institucional da UFMG
collection Repositório Institucional da UFMG
bitstream.url.fl_str_mv https://repositorio.ufmg.br//bitstreams/4afc68c4-e4b1-448c-9140-b3f4b427711b/download
https://repositorio.ufmg.br//bitstreams/d5fe9ca1-c1d4-4593-a065-fdefc8ce841a/download
bitstream.checksum.fl_str_mv fc435937f668f42d075bf9608b49e462
eb128c5830fea56bef6fdad9760a21bc
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFMG - Universidade Federal de Minas Gerais (UFMG)
repository.mail.fl_str_mv repositorio@ufmg.br
_version_ 1862105751675207680