Utilize este link para identificar ou citar este item: https://bdm.unb.br/handle/10483/26356
Arquivos neste item:
Arquivo Descrição TamanhoFormato 
2019_JulianaDoCoutoAlmeida_tcc.pdf774,59 kBAdobe PDFver/abrir
Título: Identificação de erros semânticos em código-fonte oriundos da representação numérica em computadores e em matemática
Autor(es): Almeida, Julliana do Couto
Orientador(es): Costa Júnior, Edson Alves da
Assunto: Computadores
Programação (Computadores)
Semântica
Engenharia de software
Data de apresentação: 13-Dez-2019
Data de publicação: 19-Jan-2021
Referência: ALMEIDA, Julliana do Couto. Identificação de erros semânticos em código-fonte oriundos da representação numérica em computadores e em matemática. 2019. 60 f. il. Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software)–Universidade de Brasília, Gama-DF, 2019.
Resumo: Produzir código gera erros que fazem parte do processo de aprendizagem. O problema disso é que muitas vezes eles não apresentam indícios visuais, o que significa que não geram erros pelo compilador. Neste caso, o erro é dito semântico, ele ocorre quando o desenvolvedor escreve um bloco de código que não condiz com a teoria naquele contexto. O erro semântico acontece porque as propriedades contidas nas operações do computador não reproduzem o que acontece na matemática. A associação, por exemplo, é propriedade válida dos inteiros que não acontece em todas as entradas em código. O objetivo deste trabalho, é apresentar problemas de erros semânticos de overflow em inteiros, overflow em ponto flutuantee, adicionalmente, classificar o operador % de acordo com seu retorno nas linguagens mais populares de 2019. Para os problemas de overflow houveram exemplos onde foi possível demonstrar matematicamente a taxa de erro esperada. E para todos os casos de overflow foram realizados experimentos, onde comparo os códigos com e sem overflow utilizando valores randômicos para as respectivas variáveis. E então, gero a taxa de erro para 10, 102 , 103 , 104 , 105 e 106 casos de testes, ilustradas no gráfico de cada problema.
Abstract: Producing code causes errors that are part of the learning process. The problem of this is that they often do not show visual cues, which means that they do not generates errors by the compiler. In this case, the error is said to be semantic, it occurs when the developer writes a block of code that does not fit the theory in that context. The purpose of this paper is to present code examples where there are these errors followed by their respective solution.The examples chosen for this work were: arithmetic mean, minimum common multiple and remainder of the division, zero division of numbers floating point and associativity of three elements in the sum and multiplication. The first two examples reflect data invalid in overflow, to verify the error rate was plotted a comparative chart, already for the third case, there is a same operator that generates different results depending of the language it has been implemented, the proposed solution for this case is a table comparing them by classifying them. The results were 50% chance of the function of the mean return an invalid value while in the case of mmc were 31%. The last two problems work with floating point overflow, the fourth problem being referring to division by zero and their respective values congruent to it. In this problem it was verified than computers that use 32 textit bit archiving, this value is congruent to zero when implemented in code, such as body mass index (𝐼𝑀𝐶 = 𝑓𝑟𝑎𝑐𝑚ℎ2 ) when ℎ = 16. Lastly, and Not least, the associativity problem in addition and multiplication of three elements. That problem reports the sum of three decimal numbers results in different values depending on the order in which were willing. This same scenario happens in three floating point numbers when multiplied with 38.8% chance of invalid results, while in total the chance is 36.1%.
Informações adicionais: Trabalho de Conclusão de Curso (graduação)–Universidade de Brasília, Faculdade UnB Gama, 2019.
Licença: A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor que autoriza a Biblioteca Digital da Produção Intelectual Discente da Universidade de Brasília (BDM) a disponibilizar o trabalho de conclusão de curso por meio do sítio bdm.unb.br, com as seguintes condições: disponível sob Licença Creative Commons 4.0 International, que permite copiar, distribuir e transmitir o trabalho, desde que seja citado o autor e licenciante. Não permite o uso para fins comerciais nem a adaptação desta.
Aparece na Coleção:Engenharia de Software



Todos os itens na BDM estão protegidos por copyright. Todos os direitos reservados.