Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/32056
Full metadata record
DC FieldValueLanguage
dc.contributor.advisor1Fernando Magno Quintão Pereirapt_BR
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/4608001746330875pt_BR
dc.contributor.referee1Edson Marchetti da Silvapt_BR
dc.contributor.referee2Rodolfo Sérgio Ferreira de Resendept_BR
dc.creatorMarcus Rodrigues de Araújopt_BR
dc.creator.Latteshttp://lattes.cnpq.br/8125776158198770pt_BR
dc.date.accessioned2020-01-20T19:16:22Z-
dc.date.available2020-01-20T19:16:22Z-
dc.date.issued2017-11-30-
dc.identifier.urihttp://hdl.handle.net/1843/32056-
dc.description.abstractCurrently the computer science community has several powerful programs for performing dynamic analysis. Examples of these analyzers are: Valgrind, useful for performing several types of checks related to the running of programs; and aprof, used to aid in the search for asymptotic inefficiencies. However, these tools expect to receive as an input an executable program. This fact complicates the analysis of specific code snippets, such as functions. Considering this difficulty, in this dissertation we present a set of techniques that, together, enable us to execute isolated functions written in C language automatically. In particular, we focus on methods that deal with access to arrays by indexing. Besides that, it is our goal that, when executed, a target function does not contain invalid memory accesses caused by the data automatically generated to test it. With the ideas presented here, we developed a tool, amazonc, which enable us to execute functions in C isolated from the rest of the code. Experiments performed with the kernels of the Polybench benchmarks suite reinforce the effectiveness of the method presented. Together with aprof, amazonc was able to reconstruct the asymptotic complexity curves of all core functions in that benchmark. In addition, the process of reconstructing these curves did not lead to memory errors, as Valgrind has certified.pt_BR
dc.description.resumoAtualmente a comunidade conta com diversos programas poderosos para a realização de análises dinâmicas. Exemplos desses analisadores são: Valgrind, útil para realizar diversos tipos de verificação em relação à execução de programas; e aprof, usada para auxiliar na busca por ineficiências assintóticas. Entretanto, essas ferramentas esperam receber como entrada um programa executável. Isso pode dificultar a tarefa de desenvolvedores em analisar trechos de código específicos, como funções. Considerando essa dificuldade, nesta dissertação são apresentadas um conjunto de técnicas que, juntas, possibilitam a execução automática de uma função escrita na linguagem C de forma isolada. Em especial, focamos em métodos que lidam com acessos a arranjos e é tido como objetivo que, ao ser executada, a função alvo não deve gerar acessos de memória inválidos causados pelos dados fornecidos para executá-la. Com as ideias apresentadas aqui, foi construída uma ferramenta, amazonc, que possibilita a execução de funções em C de forma isolada. Experimentos realizados com as funções núcleos (kernels) do Polybench reforçam a eficácia do método apresentado. Juntamente com aprof, amazonc possibilitou a reconstrução das curvas de complexidade assintóticas de todos os kernels considerados. Além disso, as reconstruções das curvas foram feitas sem que Valgrind apontasse nenhum erro de acessos inválidos a memória.pt_BR
dc.description.sponsorshipCNPq - Conselho Nacional de Desenvolvimento Científico e Tecnológicopt_BR
dc.languageporpt_BR
dc.publisherUniversidade Federal de Minas Geraispt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.departmentICEX - INSTITUTO DE CIÊNCIAS EXATASpt_BR
dc.publisher.programPrograma de Pós-Graduação em Ciência da Computaçãopt_BR
dc.publisher.initialsUFMGpt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectExecução automáticapt_BR
dc.subjectAnálise estáticapt_BR
dc.subjectAnálise dinâmicapt_BR
dc.subjectLinguagem Cpt_BR
dc.subject.otherComputação — Tesespt_BR
dc.subject.otherCompiladores (Computadores) — Teses.pt_BR
dc.subject.otherLinguagens de programação (Computadores) — Teses.pt_BR
dc.titleExecução de funções parciais em linguagem de programação Cpt_BR
dc.typeDissertaçãopt_BR
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
dissertacao27112019.pdf1.59 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.