Estratégias para exploração de sequências de transformações do compilador

Detalhes bibliográficos
Autor(a) principal: Fabrício Filho, João
Data de Publicação: 2017
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da Universidade Estadual de Maringá (RI-UEM)
Texto Completo: http://repositorio.uem.br:8080/jspui/handle/1/2515
Resumo: Compilers aims to translate a source language program to a target language, usually a machine language. Find the best correspondence between programming languages is a complex problem, due to the size of search space. Because of this complexity, a code transformation step is needed, where transformation algorithms modify the code, trying to improve it without semantic alterations. Despite, the result of the application of these algorithms depends on code particularities. The Transformations Selection Problem (TSP) consists of the search for the best transformations to an input code, such that target code achieves a good performance. The state-of-art does not have strategies that allow the application of TSP solutions to final users, because the response time is very high to this. This work aims to formulate techniques to find effective transformations sequences to be applied to an input code, in a way to increase programs performance reducing its execution time. Furthermore, another objective is to reduce the compiler response time, to approximate a TSP solution to final users application. Initially, the metaheuristic Variable Neighborhood Search (VNS) is explored to solve TSP, compiling iteratively each input code. VNS achieved results up to 15.72% better than another iterative strategy, reaching improvement for all evaluated programs compared to the best compiler transformation level. However, the iterative compilation demands a high response time. Therefore, it is necessary to explore machine learning techniques, which can provide good results based on compiler previous experiences, with a cost of an initial training phase. Thus, this work explores different program characterizations to represent the cumulated knowledge on transformations application, to formulate a code generation system with Case-Based Reasoning (CBR), which chooses certain sequence to an input program. The knowledge representation is capable to reach 81% of proximity of the best possible result to evaluated programs, while the CBR system generates results 13.74% better than -O3 level, on a response time 99% lower than iterative compilation techniques. The improvement of previous experiences recovering method obtained performances over 20.23% compared to another strategy with a close evaluations number.
id UEM-10_d66e272bdc964dd3b29922a8a49347b8
oai_identifier_str oai:localhost:1/2515
network_acronym_str UEM-10
network_name_str Repositório Institucional da Universidade Estadual de Maringá (RI-UEM)
repository_id_str
spelling Estratégias para exploração de sequências de transformações do compiladorStrategies to Exploration of Compiler Transformations SequencesSistemas de computaçãoCompiladoresCaracterização de programasRaciocínio baseado em casos., Compilação interativaCompiladoresTransformações de CódigoBrasil.CompilerCode transformationsProgram characterizationCase-Based reasoningIterative compilationBrazil.Ciências Exatas e da TerraCiência da ComputaçãoCompilers aims to translate a source language program to a target language, usually a machine language. Find the best correspondence between programming languages is a complex problem, due to the size of search space. Because of this complexity, a code transformation step is needed, where transformation algorithms modify the code, trying to improve it without semantic alterations. Despite, the result of the application of these algorithms depends on code particularities. The Transformations Selection Problem (TSP) consists of the search for the best transformations to an input code, such that target code achieves a good performance. The state-of-art does not have strategies that allow the application of TSP solutions to final users, because the response time is very high to this. This work aims to formulate techniques to find effective transformations sequences to be applied to an input code, in a way to increase programs performance reducing its execution time. Furthermore, another objective is to reduce the compiler response time, to approximate a TSP solution to final users application. Initially, the metaheuristic Variable Neighborhood Search (VNS) is explored to solve TSP, compiling iteratively each input code. VNS achieved results up to 15.72% better than another iterative strategy, reaching improvement for all evaluated programs compared to the best compiler transformation level. However, the iterative compilation demands a high response time. Therefore, it is necessary to explore machine learning techniques, which can provide good results based on compiler previous experiences, with a cost of an initial training phase. Thus, this work explores different program characterizations to represent the cumulated knowledge on transformations application, to formulate a code generation system with Case-Based Reasoning (CBR), which chooses certain sequence to an input program. The knowledge representation is capable to reach 81% of proximity of the best possible result to evaluated programs, while the CBR system generates results 13.74% better than -O3 level, on a response time 99% lower than iterative compilation techniques. The improvement of previous experiences recovering method obtained performances over 20.23% compared to another strategy with a close evaluations number.Os compiladores têm por função traduzir um programa em uma linguagem fonte para uma linguagem alvo, geralmente uma linguagem de máquina. Nessa tradução, encontrar a melhor correspondência entre as linguagens é um problema complexo, pelo tamanho do espaço de busca. Por tal complexidade, uma etapa de transformação de código é necessária, na qual algoritmos de transformação modificam o código tentando melhorá-lo sem alterar seu significado. O Problema de Seleção de Transformações (PST) consiste na busca das melhores transformações para um código de entrada, tal que o código final obtenha um bom desempenho. O estado-da-arte não possui estratégias que possibilitem soluções para o PST aplicáveis a usuários finais, pois o tempo de resposta é alto para tal aplicação. O objetivo deste trabalho é formular técnicas para encontrar efetivas sequências de transformações a serem aplicadas a um código de entrada, de forma a aumentar seu desempenho reduzindo o tempo de execução. Além disso, objetiva-se reduzir o tempo de resposta de forma que a solução para o PST se aproxime da utilização por usuários finais. Inicialmente, se explora a Variable Neighborhood Search (VNS) para solucionar o PST, compilando iterativamente cada código de entrada. A aplicação da VNS alcançou resultados até 15,72% melhores do que outra estratégia iterativa, conseguindo melhoria em todos os programas avaliados em relação ao melhor nível de transformação. Contudo, a compilação iterativa possui alto tempo de resposta. Assim, é necessário explorar técnicas de aprendizagem de máquina, que podem prover bons resultados baseadas em experiências anteriores do compilador. Dessa forma, esta dissertação explora diferentes caracterizações de programas para representar o conhecimento acumulado na aplicação de transformações, para então aplicar a um sistema de geração de código com Raciocínio Baseado em Casos (RBC), que escolhe determinada sequência para um programa de entrada. A representação do conhecimento é capaz de atingir 81% de proximidade do melhor resultado possível para os programas avaliados, enquanto o sistema RBC gera resultados 13,74% melhores do que o nível -O3, em um tempo de resposta 99% inferior ao de estratégias de compilação iterativa. A melhoria nas formas de recuperação de experiências anteriores conseguiu superar em 20,23% o desempenho obtido por outra estratégia comparada com um número de avaliações próximo.89 fUniversidade Estadual de MaringáBrasilDepartamento de InformáticaPrograma de Pós-Graduação em Ciência da ComputaçãoUEMMaringá, PRCentro de TecnologiaAnderson Faustino da SilvaYandre Maldonado e Gomes da Costa - UEMEdson Borin - UEMFabrício Filho, João2018-04-10T20:12:15Z2018-04-10T20:12:15Z2017info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://repositorio.uem.br:8080/jspui/handle/1/2515porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da Universidade Estadual de Maringá (RI-UEM)instname:Universidade Estadual de Maringá (UEM)instacron:UEM2018-10-18T20:18:01Zoai:localhost:1/2515Repositório InstitucionalPUBhttp://repositorio.uem.br:8080/oai/requestopendoar:2024-04-23T14:55:34.406919Repositório Institucional da Universidade Estadual de Maringá (RI-UEM) - Universidade Estadual de Maringá (UEM)false
dc.title.none.fl_str_mv Estratégias para exploração de sequências de transformações do compilador
Strategies to Exploration of Compiler Transformations Sequences
title Estratégias para exploração de sequências de transformações do compilador
spellingShingle Estratégias para exploração de sequências de transformações do compilador
Fabrício Filho, João
Sistemas de computação
Compiladores
Caracterização de programas
Raciocínio baseado em casos., Compilação interativa
Compiladores
Transformações de Código
Brasil.
Compiler
Code transformations
Program characterization
Case-Based reasoning
Iterative compilation
Brazil.
Ciências Exatas e da Terra
Ciência da Computação
title_short Estratégias para exploração de sequências de transformações do compilador
title_full Estratégias para exploração de sequências de transformações do compilador
title_fullStr Estratégias para exploração de sequências de transformações do compilador
title_full_unstemmed Estratégias para exploração de sequências de transformações do compilador
title_sort Estratégias para exploração de sequências de transformações do compilador
author Fabrício Filho, João
author_facet Fabrício Filho, João
author_role author
dc.contributor.none.fl_str_mv Anderson Faustino da Silva
Yandre Maldonado e Gomes da Costa - UEM
Edson Borin - UEM
dc.contributor.author.fl_str_mv Fabrício Filho, João
dc.subject.por.fl_str_mv Sistemas de computação
Compiladores
Caracterização de programas
Raciocínio baseado em casos., Compilação interativa
Compiladores
Transformações de Código
Brasil.
Compiler
Code transformations
Program characterization
Case-Based reasoning
Iterative compilation
Brazil.
Ciências Exatas e da Terra
Ciência da Computação
topic Sistemas de computação
Compiladores
Caracterização de programas
Raciocínio baseado em casos., Compilação interativa
Compiladores
Transformações de Código
Brasil.
Compiler
Code transformations
Program characterization
Case-Based reasoning
Iterative compilation
Brazil.
Ciências Exatas e da Terra
Ciência da Computação
description Compilers aims to translate a source language program to a target language, usually a machine language. Find the best correspondence between programming languages is a complex problem, due to the size of search space. Because of this complexity, a code transformation step is needed, where transformation algorithms modify the code, trying to improve it without semantic alterations. Despite, the result of the application of these algorithms depends on code particularities. The Transformations Selection Problem (TSP) consists of the search for the best transformations to an input code, such that target code achieves a good performance. The state-of-art does not have strategies that allow the application of TSP solutions to final users, because the response time is very high to this. This work aims to formulate techniques to find effective transformations sequences to be applied to an input code, in a way to increase programs performance reducing its execution time. Furthermore, another objective is to reduce the compiler response time, to approximate a TSP solution to final users application. Initially, the metaheuristic Variable Neighborhood Search (VNS) is explored to solve TSP, compiling iteratively each input code. VNS achieved results up to 15.72% better than another iterative strategy, reaching improvement for all evaluated programs compared to the best compiler transformation level. However, the iterative compilation demands a high response time. Therefore, it is necessary to explore machine learning techniques, which can provide good results based on compiler previous experiences, with a cost of an initial training phase. Thus, this work explores different program characterizations to represent the cumulated knowledge on transformations application, to formulate a code generation system with Case-Based Reasoning (CBR), which chooses certain sequence to an input program. The knowledge representation is capable to reach 81% of proximity of the best possible result to evaluated programs, while the CBR system generates results 13.74% better than -O3 level, on a response time 99% lower than iterative compilation techniques. The improvement of previous experiences recovering method obtained performances over 20.23% compared to another strategy with a close evaluations number.
publishDate 2017
dc.date.none.fl_str_mv 2017
2018-04-10T20:12:15Z
2018-04-10T20:12:15Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://repositorio.uem.br:8080/jspui/handle/1/2515
url http://repositorio.uem.br:8080/jspui/handle/1/2515
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 Estadual de Maringá
Brasil
Departamento de Informática
Programa de Pós-Graduação em Ciência da Computação
UEM
Maringá, PR
Centro de Tecnologia
publisher.none.fl_str_mv Universidade Estadual de Maringá
Brasil
Departamento de Informática
Programa de Pós-Graduação em Ciência da Computação
UEM
Maringá, PR
Centro de Tecnologia
dc.source.none.fl_str_mv reponame:Repositório Institucional da Universidade Estadual de Maringá (RI-UEM)
instname:Universidade Estadual de Maringá (UEM)
instacron:UEM
instname_str Universidade Estadual de Maringá (UEM)
instacron_str UEM
institution UEM
reponame_str Repositório Institucional da Universidade Estadual de Maringá (RI-UEM)
collection Repositório Institucional da Universidade Estadual de Maringá (RI-UEM)
repository.name.fl_str_mv Repositório Institucional da Universidade Estadual de Maringá (RI-UEM) - Universidade Estadual de Maringá (UEM)
repository.mail.fl_str_mv
_version_ 1813258652463661056