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.