Estratégias de solução para o problema de alocação de registradores em compiladores
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | por |
Título da fonte: | Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
Texto Completo: | http://repositorio.utfpr.edu.br/jspui/handle/1/24656 |
Resumo: | O principal objetivo de um compilador é transformar o código de uma linguagem fonte em uma linguagem objeto. Para isso, o código gerado pelo compilador deve fazer uso efetivo dos recursos limitados do processador. Entre os recursos mais restritos, está o conjunto de registradores. Portanto, a alocação de registradores é uma etapa de extrema importância para o processo de compilação. Compiladores modernos geralmente abstraem esse problema como um problema de Coloração de Grafo, pois este tipo de abordagem captura alguns dos aspectos críticos da alocação. Porém, realizar esta coloração de forma ótima, ou seja, da melhor maneira possível, caracteriza-se como um problema NP-Completo. Como os algoritmos conhecidos que resolvem estes problemas de maneira exata possuem um comportamento de pior caso exponencial, as heurísticas são adotas. Elas são capazes de dar uma boa solução em um tempo aceitável. Com o desenvolvimento deste trabalho foi possível realizar um comparativo entre diferentes estratégias e implementar uma solução alternativa com resultados iguais ou superiores. |
id |
UTFPR-12_6bd54b73e453f401eb4181d54c98be1c |
---|---|
oai_identifier_str |
oai:repositorio.utfpr.edu.br:1/24656 |
network_acronym_str |
UTFPR-12 |
network_name_str |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
repository_id_str |
|
spelling |
2021-04-06T19:19:40Z2021-04-06T19:19:40Z2019-12-12SHIMOSAKA, Gabriel Hitoshi. Estratégias de solução para o problema de alocação de registradores em compiladores. 2019. Trabalho de Conclusão de Curso (Engenharia de Computação) - Universidade Tecnológica Federal do Paraná (UTFPR), Pato Branco, 2019.http://repositorio.utfpr.edu.br/jspui/handle/1/24656O principal objetivo de um compilador é transformar o código de uma linguagem fonte em uma linguagem objeto. Para isso, o código gerado pelo compilador deve fazer uso efetivo dos recursos limitados do processador. Entre os recursos mais restritos, está o conjunto de registradores. Portanto, a alocação de registradores é uma etapa de extrema importância para o processo de compilação. Compiladores modernos geralmente abstraem esse problema como um problema de Coloração de Grafo, pois este tipo de abordagem captura alguns dos aspectos críticos da alocação. Porém, realizar esta coloração de forma ótima, ou seja, da melhor maneira possível, caracteriza-se como um problema NP-Completo. Como os algoritmos conhecidos que resolvem estes problemas de maneira exata possuem um comportamento de pior caso exponencial, as heurísticas são adotas. Elas são capazes de dar uma boa solução em um tempo aceitável. Com o desenvolvimento deste trabalho foi possível realizar um comparativo entre diferentes estratégias e implementar uma solução alternativa com resultados iguais ou superiores.The main purpose of a compiler is to transform the code from a source language into a target language. To this end, the code generated by the compiler must make effective use of the limited processor resources. The set of registers is one of the most restricted resources in a processor. Therefore, the register allocation is an extremely important stage for the compilation process. Modern compilers generally abstract this problem as a Graph Coloring problem, because this type of approach captures some of the critical aspects of allocation. However, performing this coloration optimally, that is, in the best possible way, is characterized as an NP-Complete problem. Because known algorithms that solve these problems accurately have a worst-case exponential behavior, heuristics are adopted. They are able to give a good solution in an acceptable time. With the development of this paper, it was possible to compare different strategies and implement an alternative solution with equal or better results.porUniversidade Tecnológica Federal do ParanáPato BrancoEngenharia de ComputaçãoUTFPRBrasilDepartamento Acadêmico de InformáticaCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOCompiladores (Computadores)Programação heurísticaGrafos de ligaçãoCompiling (Electronic computers)Heuristic programmingBond graphsEstratégias de solução para o problema de alocação de registradores em compiladoresSolution strategies for the register allocation problem in compilersinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisPato BrancoBarbosa, Marco Antonio de CastroBarbosa, Marco Antonio de CastroCasanova, DalcimarDenardin, Gustavo WeberShimosaka, Gabriel Hitoshiinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))instname:Universidade Tecnológica Federal do Paraná (UTFPR)instacron:UTFPRORIGINALPB_COENC_2019_207.pdfPB_COENC_2019_207.pdfapplication/pdf815938http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/24656/1/PB_COENC_2019_207.pdf587702ed8172887d33e61226ec42535fMD51LICENSElicense.txtlicense.txttext/plain; charset=utf-81290http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/24656/2/license.txtb9d82215ab23456fa2d8b49c5df1b95bMD52TEXTPB_COENC_2019_207.pdf.txtPB_COENC_2019_207.pdf.txtExtracted texttext/plain120763http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/24656/3/PB_COENC_2019_207.pdf.txtd419957b81af2d41dc0d2754e7076068MD53THUMBNAILPB_COENC_2019_207.pdf.jpgPB_COENC_2019_207.pdf.jpgGenerated Thumbnailimage/jpeg1307http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/24656/4/PB_COENC_2019_207.pdf.jpg9f293c653ef700583f178be6e5897796MD541/246562021-04-07 03:11:46.889oai:repositorio.utfpr.edu.br:1/24656TmEgcXVhbGlkYWRlIGRlIHRpdHVsYXIgZG9zIGRpcmVpdG9zIGRlIGF1dG9yIGRhIHB1YmxpY2HDp8OjbywgYXV0b3Jpem8gYSBVVEZQUiBhIHZlaWN1bGFyLCAKYXRyYXbDqXMgZG8gUG9ydGFsIGRlIEluZm9ybWHDp8OjbyBlbSBBY2Vzc28gQWJlcnRvIChQSUFBKSBlIGRvcyBDYXTDoWxvZ29zIGRhcyBCaWJsaW90ZWNhcyAKZGVzdGEgSW5zdGl0dWnDp8Ojbywgc2VtIHJlc3NhcmNpbWVudG8gZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCBkZSBhY29yZG8gY29tIGEgTGVpIG5vIDkuNjEwLzk4LCAKbyB0ZXh0byBkZXN0YSBvYnJhLCBvYnNlcnZhbmRvIGFzIGNvbmRpw6fDtWVzIGRlIGRpc3BvbmliaWxpemHDp8OjbyByZWdpc3RyYWRhcyBubyBpdGVtIDQgZG8gCuKAnFRlcm1vIGRlIEF1dG9yaXphw6fDo28gcGFyYSBQdWJsaWNhw6fDo28gZGUgVHJhYmFsaG9zIGRlIENvbmNsdXPDo28gZGUgQ3Vyc28gZGUgR3JhZHVhw6fDo28gZSAKRXNwZWNpYWxpemHDp8OjbywgRGlzc2VydGHDp8O1ZXMgZSBUZXNlcyBubyBQb3J0YWwgZGUgSW5mb3JtYcOnw6NvIGUgbm9zIENhdMOhbG9nb3MgRWxldHLDtG5pY29zIGRvIApTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIGRhIFVURlBS4oCdLCBwYXJhIGZpbnMgZGUgbGVpdHVyYSwgaW1wcmVzc8OjbyBlL291IGRvd25sb2FkLCB2aXNhbmRvIGEgCmRpdnVsZ2HDp8OjbyBkYSBwcm9kdcOnw6NvIGNpZW50w61maWNhIGJyYXNpbGVpcmEuCgogIEFzIHZpYXMgb3JpZ2luYWlzIGUgYXNzaW5hZGFzIHBlbG8ocykgYXV0b3IoZXMpIGRvIOKAnFRlcm1vIGRlIEF1dG9yaXphw6fDo28gcGFyYSBQdWJsaWNhw6fDo28gZGUgClRyYWJhbGhvcyBkZSBDb25jbHVzw6NvIGRlIEN1cnNvIGRlIEdyYWR1YcOnw6NvIGUgRXNwZWNpYWxpemHDp8OjbywgRGlzc2VydGHDp8O1ZXMgZSBUZXNlcyBubyBQb3J0YWwgCmRlIEluZm9ybWHDp8OjbyBlIG5vcyBDYXTDoWxvZ29zIEVsZXRyw7RuaWNvcyBkbyBTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIGRhIFVURlBS4oCdIGUgZGEg4oCcRGVjbGFyYcOnw6NvIApkZSBBdXRvcmlh4oCdIGVuY29udHJhbS1zZSBhcnF1aXZhZGFzIG5hIEJpYmxpb3RlY2EgZG8gQ8OibXB1cyBubyBxdWFsIG8gdHJhYmFsaG8gZm9pIGRlZmVuZGlkby4gCk5vIGNhc28gZGUgcHVibGljYcOnw7VlcyBkZSBhdXRvcmlhIGNvbGV0aXZhIGUgbXVsdGljw6JtcHVzLCBvcyBkb2N1bWVudG9zIGZpY2Fyw6NvIHNvYiBndWFyZGEgZGEgCkJpYmxpb3RlY2EgY29tIGEgcXVhbCBvIOKAnHByaW1laXJvIGF1dG9y4oCdIHBvc3N1YSB2w61uY3Vsby4KRepositório de PublicaçõesPUBhttp://repositorio.utfpr.edu.br:8080/oai/requestopendoar:2021-04-07T06:11:46Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR)false |
dc.title.pt_BR.fl_str_mv |
Estratégias de solução para o problema de alocação de registradores em compiladores |
dc.title.alternative.pt_BR.fl_str_mv |
Solution strategies for the register allocation problem in compilers |
title |
Estratégias de solução para o problema de alocação de registradores em compiladores |
spellingShingle |
Estratégias de solução para o problema de alocação de registradores em compiladores Shimosaka, Gabriel Hitoshi CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO Compiladores (Computadores) Programação heurística Grafos de ligação Compiling (Electronic computers) Heuristic programming Bond graphs |
title_short |
Estratégias de solução para o problema de alocação de registradores em compiladores |
title_full |
Estratégias de solução para o problema de alocação de registradores em compiladores |
title_fullStr |
Estratégias de solução para o problema de alocação de registradores em compiladores |
title_full_unstemmed |
Estratégias de solução para o problema de alocação de registradores em compiladores |
title_sort |
Estratégias de solução para o problema de alocação de registradores em compiladores |
author |
Shimosaka, Gabriel Hitoshi |
author_facet |
Shimosaka, Gabriel Hitoshi |
author_role |
author |
dc.contributor.advisor1.fl_str_mv |
Barbosa, Marco Antonio de Castro |
dc.contributor.referee1.fl_str_mv |
Barbosa, Marco Antonio de Castro |
dc.contributor.referee2.fl_str_mv |
Casanova, Dalcimar |
dc.contributor.referee3.fl_str_mv |
Denardin, Gustavo Weber |
dc.contributor.author.fl_str_mv |
Shimosaka, Gabriel Hitoshi |
contributor_str_mv |
Barbosa, Marco Antonio de Castro Barbosa, Marco Antonio de Castro Casanova, Dalcimar Denardin, Gustavo Weber |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO Compiladores (Computadores) Programação heurística Grafos de ligação Compiling (Electronic computers) Heuristic programming Bond graphs |
dc.subject.por.fl_str_mv |
Compiladores (Computadores) Programação heurística Grafos de ligação Compiling (Electronic computers) Heuristic programming Bond graphs |
description |
O principal objetivo de um compilador é transformar o código de uma linguagem fonte em uma linguagem objeto. Para isso, o código gerado pelo compilador deve fazer uso efetivo dos recursos limitados do processador. Entre os recursos mais restritos, está o conjunto de registradores. Portanto, a alocação de registradores é uma etapa de extrema importância para o processo de compilação. Compiladores modernos geralmente abstraem esse problema como um problema de Coloração de Grafo, pois este tipo de abordagem captura alguns dos aspectos críticos da alocação. Porém, realizar esta coloração de forma ótima, ou seja, da melhor maneira possível, caracteriza-se como um problema NP-Completo. Como os algoritmos conhecidos que resolvem estes problemas de maneira exata possuem um comportamento de pior caso exponencial, as heurísticas são adotas. Elas são capazes de dar uma boa solução em um tempo aceitável. Com o desenvolvimento deste trabalho foi possível realizar um comparativo entre diferentes estratégias e implementar uma solução alternativa com resultados iguais ou superiores. |
publishDate |
2019 |
dc.date.issued.fl_str_mv |
2019-12-12 |
dc.date.accessioned.fl_str_mv |
2021-04-06T19:19:40Z |
dc.date.available.fl_str_mv |
2021-04-06T19:19:40Z |
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.citation.fl_str_mv |
SHIMOSAKA, Gabriel Hitoshi. Estratégias de solução para o problema de alocação de registradores em compiladores. 2019. Trabalho de Conclusão de Curso (Engenharia de Computação) - Universidade Tecnológica Federal do Paraná (UTFPR), Pato Branco, 2019. |
dc.identifier.uri.fl_str_mv |
http://repositorio.utfpr.edu.br/jspui/handle/1/24656 |
identifier_str_mv |
SHIMOSAKA, Gabriel Hitoshi. Estratégias de solução para o problema de alocação de registradores em compiladores. 2019. Trabalho de Conclusão de Curso (Engenharia de Computação) - Universidade Tecnológica Federal do Paraná (UTFPR), Pato Branco, 2019. |
url |
http://repositorio.utfpr.edu.br/jspui/handle/1/24656 |
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 Tecnológica Federal do Paraná Pato Branco |
dc.publisher.program.fl_str_mv |
Engenharia de Computação |
dc.publisher.initials.fl_str_mv |
UTFPR |
dc.publisher.country.fl_str_mv |
Brasil |
dc.publisher.department.fl_str_mv |
Departamento Acadêmico de Informática |
publisher.none.fl_str_mv |
Universidade Tecnológica Federal do Paraná Pato Branco |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) instname:Universidade Tecnológica Federal do Paraná (UTFPR) instacron:UTFPR |
instname_str |
Universidade Tecnológica Federal do Paraná (UTFPR) |
instacron_str |
UTFPR |
institution |
UTFPR |
reponame_str |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
collection |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
bitstream.url.fl_str_mv |
http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/24656/1/PB_COENC_2019_207.pdf http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/24656/2/license.txt http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/24656/3/PB_COENC_2019_207.pdf.txt http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/24656/4/PB_COENC_2019_207.pdf.jpg |
bitstream.checksum.fl_str_mv |
587702ed8172887d33e61226ec42535f b9d82215ab23456fa2d8b49c5df1b95b d419957b81af2d41dc0d2754e7076068 9f293c653ef700583f178be6e5897796 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR) |
repository.mail.fl_str_mv |
|
_version_ |
1805923095107600384 |