Dissertação

Automatic Bug Detection in R - Approaching R debugging differently EVALUATED

Tal como em grande parte das linguagens de programação, as capacidades de depuração disponíveis para o R (quer seja através dos mecanismos nativos ou via aplicações terceiras) nao tiveram grandes avanços nas últimas décadas. Posto isto, o paradigma de depuração continua o mesmo desde o lançamento oficial da linguagem: definir um ponto paragem, analisar cada instrução para assegurar se está correta e iterar sobre todas elas até que o problema seja encontrado. Este paradigma é totalmente linear relativamente ao tempo (para estar num determinado ponto da execução, executar as n-1 instruções é obrigatório). A Automatic Bug Detection in R implementa um paradigma diferente: depuração intemporal. Assim, a ferramenta fornece um grafo gerado a partir dos dados colecionados (durante a execução), permitindo analisar, em qualquer altura, cada instrução executada. Isto significa que, para analisar a enésima instrução, reconstruir o contexto de execução, executando as n-1 últimas instruções, não é necessário pois os dados do processamento das instruções já haviam sido guardados na primeira execução. Conceptualmente, esta abordagem implica algumas penalizações de desempenho e então, no geral, a velocidade de execução diminuirá (comparando com o R nativo) devido às instruções adicionadas. A ferramenta ABD_tool providencia todas as suas funcionalidades com uma penalização de desempenho consideravelmente baixa/média. Por exemplo, um ciclo for com 1 milhão de iterações e múltiplas instruções IF (secção 5.6), consome mais 1 minuto que o R nativo, mas oferece a capacidade de analisar cada iteração do ciclo separadamente, bem como as instruções executadas em cada iteração, quando desejado/necessário.
R, Depuração, Depuração intemporal, Depuração dinâmica

janeiro 20, 2021, 9:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

João Coelho Garcia

Departamento de Engenharia Informática (DEI)

Professor Auxiliar