Reparo automático de programas usando corretude relativa
Autor(a) principal: | |
---|---|
Data de Publicação: | 2023 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRJ |
Texto Completo: | http://hdl.handle.net/11422/19672 |
Resumo: | O reparo automático de programas consiste em identificar e consertar falhas em um código até que o mesmo passe a se adequar a uma especificação fornecida. Tal especificação é geralmente feita através de uma suíte de testes. Neste caso, um código é considerado absolutamente correto se passa em todos os testes. Ferramentas atuais nesse ramo fazem uso de técnicas como a programação genética, que se baseia em princípios da computação evolutiva, para construir programas corretos a partir de incorretos. Tais ferramentas são capazes de realizar consertos em diversos casos, mas têm sua utilidade limitada por se basearem em uma noção muito simples de corretude, onde programas são considerados apenas absolutamente corretos ou absolutamente incorretos, sem se levar em conta programas intermediários. Essa dificuldade aparece frequentemente em casos com múltiplas falhas. O presente trabalho propõe expandir o escopo de algumas das ferramentas existentes através de uma teoria de corretude relativa, na qual é possível determinar quais programas podem ser considerados estritamente mais corretos que outros. O uso dessa teoria permite a criação de um paradigma novo de reparo de programas focado em aprimoramentos graduais. O trabalho também relata estudos de caso que visam verificar que, com esse novo paradigma, há a possibilidade de consertar programas que não eram reparáveis pelos métodos originais. |
id |
UFRJ_89384eeaf5711e8d92c1d130279c014c |
---|---|
oai_identifier_str |
oai:pantheon.ufrj.br:11422/19672 |
network_acronym_str |
UFRJ |
network_name_str |
Repositório Institucional da UFRJ |
repository_id_str |
|
spelling |
Reparo automático de programas usando corretude relativainteligência artificialreparo automático de programascorretude relativacorretude absolutabugs de softwareremoção de falhasCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOO reparo automático de programas consiste em identificar e consertar falhas em um código até que o mesmo passe a se adequar a uma especificação fornecida. Tal especificação é geralmente feita através de uma suíte de testes. Neste caso, um código é considerado absolutamente correto se passa em todos os testes. Ferramentas atuais nesse ramo fazem uso de técnicas como a programação genética, que se baseia em princípios da computação evolutiva, para construir programas corretos a partir de incorretos. Tais ferramentas são capazes de realizar consertos em diversos casos, mas têm sua utilidade limitada por se basearem em uma noção muito simples de corretude, onde programas são considerados apenas absolutamente corretos ou absolutamente incorretos, sem se levar em conta programas intermediários. Essa dificuldade aparece frequentemente em casos com múltiplas falhas. O presente trabalho propõe expandir o escopo de algumas das ferramentas existentes através de uma teoria de corretude relativa, na qual é possível determinar quais programas podem ser considerados estritamente mais corretos que outros. O uso dessa teoria permite a criação de um paradigma novo de reparo de programas focado em aprimoramentos graduais. O trabalho também relata estudos de caso que visam verificar que, com esse novo paradigma, há a possibilidade de consertar programas que não eram reparáveis pelos métodos originais.Universidade Federal do Rio de JaneiroBrasilInstituto de ComputaçãoUFRJSilva, João Carlos Pereira dahttp://lattes.cnpq.br/9413102524215939http://lattes.cnpq.br/8951681486947556Rossetto, Silvanahttp://lattes.cnpq.br/0054098292730720Martins Moreira, Anamariahttp://lattes.cnpq.br/2363575151206774Oliveira, Rodrigo Dottori de2023-02-06T18:05:20Z2023-12-21T03:06:12Z2023-01-12info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesishttp://hdl.handle.net/11422/19672porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRJinstname:Universidade Federal do Rio de Janeiro (UFRJ)instacron:UFRJ2023-12-21T03:06:12Zoai:pantheon.ufrj.br:11422/19672Repositório InstitucionalPUBhttp://www.pantheon.ufrj.br/oai/requestpantheon@sibi.ufrj.bropendoar:2023-12-21T03:06:12Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ)false |
dc.title.none.fl_str_mv |
Reparo automático de programas usando corretude relativa |
title |
Reparo automático de programas usando corretude relativa |
spellingShingle |
Reparo automático de programas usando corretude relativa Oliveira, Rodrigo Dottori de inteligência artificial reparo automático de programas corretude relativa corretude absoluta bugs de software remoção de falhas CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
title_short |
Reparo automático de programas usando corretude relativa |
title_full |
Reparo automático de programas usando corretude relativa |
title_fullStr |
Reparo automático de programas usando corretude relativa |
title_full_unstemmed |
Reparo automático de programas usando corretude relativa |
title_sort |
Reparo automático de programas usando corretude relativa |
author |
Oliveira, Rodrigo Dottori de |
author_facet |
Oliveira, Rodrigo Dottori de |
author_role |
author |
dc.contributor.none.fl_str_mv |
Silva, João Carlos Pereira da http://lattes.cnpq.br/9413102524215939 http://lattes.cnpq.br/8951681486947556 Rossetto, Silvana http://lattes.cnpq.br/0054098292730720 Martins Moreira, Anamaria http://lattes.cnpq.br/2363575151206774 |
dc.contributor.author.fl_str_mv |
Oliveira, Rodrigo Dottori de |
dc.subject.por.fl_str_mv |
inteligência artificial reparo automático de programas corretude relativa corretude absoluta bugs de software remoção de falhas CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
topic |
inteligência artificial reparo automático de programas corretude relativa corretude absoluta bugs de software remoção de falhas CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
description |
O reparo automático de programas consiste em identificar e consertar falhas em um código até que o mesmo passe a se adequar a uma especificação fornecida. Tal especificação é geralmente feita através de uma suíte de testes. Neste caso, um código é considerado absolutamente correto se passa em todos os testes. Ferramentas atuais nesse ramo fazem uso de técnicas como a programação genética, que se baseia em princípios da computação evolutiva, para construir programas corretos a partir de incorretos. Tais ferramentas são capazes de realizar consertos em diversos casos, mas têm sua utilidade limitada por se basearem em uma noção muito simples de corretude, onde programas são considerados apenas absolutamente corretos ou absolutamente incorretos, sem se levar em conta programas intermediários. Essa dificuldade aparece frequentemente em casos com múltiplas falhas. O presente trabalho propõe expandir o escopo de algumas das ferramentas existentes através de uma teoria de corretude relativa, na qual é possível determinar quais programas podem ser considerados estritamente mais corretos que outros. O uso dessa teoria permite a criação de um paradigma novo de reparo de programas focado em aprimoramentos graduais. O trabalho também relata estudos de caso que visam verificar que, com esse novo paradigma, há a possibilidade de consertar programas que não eram reparáveis pelos métodos originais. |
publishDate |
2023 |
dc.date.none.fl_str_mv |
2023-02-06T18:05:20Z 2023-12-21T03:06:12Z 2023-01-12 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
format |
bachelorThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/11422/19672 |
url |
http://hdl.handle.net/11422/19672 |
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 do Rio de Janeiro Brasil Instituto de Computação UFRJ |
publisher.none.fl_str_mv |
Universidade Federal do Rio de Janeiro Brasil Instituto de Computação UFRJ |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRJ instname:Universidade Federal do Rio de Janeiro (UFRJ) instacron:UFRJ |
instname_str |
Universidade Federal do Rio de Janeiro (UFRJ) |
instacron_str |
UFRJ |
institution |
UFRJ |
reponame_str |
Repositório Institucional da UFRJ |
collection |
Repositório Institucional da UFRJ |
repository.name.fl_str_mv |
Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ) |
repository.mail.fl_str_mv |
pantheon@sibi.ufrj.br |
_version_ |
1815456041142321152 |