Mostrar registro simples

dc.contributor.advisorGalante, Renata de Matospt_BR
dc.contributor.authorCrestani, Alexandre de Rossopt_BR
dc.date.accessioned2024-03-05T04:36:40Zpt_BR
dc.date.issued2024pt_BR
dc.identifier.urihttp://hdl.handle.net/10183/272878pt_BR
dc.description.abstractDevido as restrições físicas crescentes e aos custos elevados associados a aquisição e manutenção de componentes de hardware, a indústria de software tem se concentrado na seleção de ferramentas e linguagens de programação que maximizem a eficiência dos recursos existentes. Na atualidade, com a crescente demanda por softwares mais sofisticados e eficientes, especialmente para atender a uma base de usuários em constante expansão na Internet, a busca constante por métodos inovadores que facilitem o desenvolvimento é intensificada. Nesse contexto, linguagens de programação inteiras são continuamente atualizadas (Python 3.12.1, C++ 23, Go 1.21 e Rust 1.75 em 2023) ou mesmo criadas (Go em 2009 e Rust em 2015) com finalidade de atender essas demandas da comunidade. Diante desse cenário dinâmico, torna-se crucial realizar um estudo comparativo entre algumas dessas opções. Este trabalho tem como objetivo comparar cinco das linguagens de programação mais utilizadas para situações diversas: C++, Go, Rust, Python e JavaScript. Ao analisar essas linguagens, concentramos nossa atenção na velocidade de processamento e no subjetivo relato de experiência do autor ao decorrer do trabalho quanto à facilidade de escrita, leitura e manutenção de códigos nas diferentes linguagens. Operações alvo dessa análise são: chamadas de funções vazias, iterações em laços, calcu los aritiméticos simples, chamadas de funções recursivas simples de complexidade O(n), chamadas de funções recursivas com complexidade O(3n ) e, por fim, manipulação de arquivos e strings com testes de leitura e escrita com tradução de números inteiros para strings e vice versa. Essa abordagem nos permite compreender melhor qual linguagem oferece a melhor experiência, desempenho e eficiência no uso de recursos de hardware. Contrariamente ao esperado, C++ não foi o mais performático em vários testes, sendo superado por Rust, que mostrou excelentes resultados devido ao seu compilador eficiente. Go e JavaScript tiveram desempenhos satisfatórios em suas áreas específicas. Python, no entanto, desapontou, exibindo altos tempos de execução e falhando em alguns testes por uso excessivo de recursos. Este estudo sugere Rust e C++ como as melhores escolhas para aplicações de alto desempenho, embora o detrimento de um pelo outro possa se justificar pela aplicação alvo a ser desenvolvida. Go e JavaScript se destacaram pelo equilíbrio entre simplicidade e desempenho dentro de seus nichos. Python mostrou-se menos ade quado para sistemas fora do ensino ou uso didático.pt_BR
dc.description.abstractDue to increasing physical constraints and the high costs associated with the acquisition and maintenance of hardware components, the software industry has focused on selecting tools and programming languages that maximize the efficiency of existing resources. Cur rently, with the growing demand for more sophisticated and efficient software, especially to meet an ever-expanding user base on the Internet, the constant search for innovative methods that facilitate development is intensified. In this context, entire programming languages are continuously updated (Python 3.12.1, C++ 23, Go 1.21, and Rust 1.75 in 2023) or even created (Go in 2009 and Rust in 2015) to meet these community demands. Given this dynamic scenario, it becomes crucial to conduct a comparative study among some of these options. This work aims to compare five of the most widely used pro gramming languages for various situations: C++, Go, Rust, Python, and JavaScript. In analyzing these languages, we will focus our attention on processing speed and the sub jective experience report of the author throughout the work regarding the ease of writing, reading, and maintaining code in different languages. Operations targeted in this analy sis are calls to empty functions, iterations in loops, simple arithmetic calculations, calls to simple recursive functions of complexity O(n), calls to recursive functions with com plexity O(3n ), and finally, file and string manipulation with reading and writing tests, including the translation of integers to strings and vice versa. This approach allows us to better understand which language offers the best experience, performance, and efficiency in the use of hardware resources. Contrary to expectations, C++ was not the most per formant in various tests, being surpassed by Rust, which showed excellent results due to its efficient compiler. Go and JavaScript had satisfactory performances in their specific areas. Python, however, was disappointed, displaying high execution times and failing in some tests due to excessive resource use. This study suggests Rust and C++ as the best choices for high-performance applications, although the detriment of one for the other may be justified by the target application to be developed. Go and JavaScript stood out for their balance between simplicity and performance within their niches. Python proved to be less suitable for systems outside of teaching or didactic use.en
dc.format.mimetypeapplication/pdfpt_BR
dc.language.isoporpt_BR
dc.rightsOpen Accessen
dc.subjectPerformanceen
dc.subjectJavaScriptpt_BR
dc.subjectGoen
dc.subjectFerramentaspt_BR
dc.subjectC++pt_BR
dc.subjectRusten
dc.subjectPythonpt_BR
dc.titleUma comparação empírica em velocidade de processamento entre C++, Go, Rust, Python e JavaScriptpt_BR
dc.title.alternativeAn empirical comparison in processing speed between C++, Go, Rust, Python, and JavaScript en
dc.typeTrabalho de conclusão de graduaçãopt_BR
dc.identifier.nrb001197398pt_BR
dc.degree.grantorUniversidade Federal do Rio Grande do Sulpt_BR
dc.degree.departmentInstituto de Informáticapt_BR
dc.degree.localPorto Alegre, BR-RSpt_BR
dc.degree.date2024pt_BR
dc.degree.graduationCiência da Computação: Ênfase em Ciência da Computação: Bachareladopt_BR
dc.degree.levelgraduaçãopt_BR


Thumbnail
   

Este item está licenciado na Creative Commons License

Mostrar registro simples