Detalhes dos Anais Veja o resumo do trabalho

Publicado no Encontro de Saberes 2015

Evento: XXIII Seminário de Iniciação Científica

Área: ENGENHARIAS

Subárea: Engenharia de Computação

Título
Análise da eficiência dos compiladores para diferentes arquiteturas.
Autores
RAFAEL DE CASTRO SOARES FONSECA (Autor)
Aline da Silva Galantine (Autor)
Marco Brando Alves Costa (Autor)
Roger Santos Teixeira (Autor)
Luiz Guilherme Hilel Drumond Silveira (Orientador)
Resumo
Para o desenvolvimento das ferramentas computacionais, têm-se vários estágios, desde a tradução do código de alto para baixo nível, até a execução desses códigos na arquitetura desejada. Em outras palavras, o compilador converte o código que foi executado em alto nível, para uma linguagem de montagem denominada Assembly. Com isso, surge a necessidade de analisar a eficiência destes estágios. Objetiva-se verificar e comparar a eficiência de um código gerado por compilador para uma arquitetura X86 com outro escrito manualmente para mesma arquitetura. Em seguida, desenvolver o mesmo para o MIPS, cuja arquitetura é RISC, a qual possui conjunto reduzido de instruções em relação à CISC. Para realizar a análise desenvolveu-se um pequeno código em C, o qual realiza uma análise combinatória e que foi traduzido manualmente para as linguagens de montagem das arquiteturas MIPS e x86. Esse mesmo código em C foi compilado em um computador de arquitetura x86 e teve seu assembly gerado a partir do compilador GCC. A métrica utilizada na análise de desempenho foi a quantidade de instruções. Os resultados apresentaram que o código MIPS gerou 31 instruções aritméticas, 11 de desvio e 3 de comparação. O X86 gerou 9 aritméticas, 6 de desvio, 1 de comparação e 19 de transferência. O código gerado pelo compilador, na arquitetura X86, gerou 12 instruções aritméticas, 16 de desvio, 2 de comparação, 45 de transferência, 7 de memória e 16 comandos de cabeçalho, sendo o sistema operacional e interoperabilidade do código responsável por esse tipo de instrução, não necessárias para pequenos códigos. Verificou-se que o código escrito manualmente para X86 e até mesmo para a arquitetura RISC gerou menos instruções que o compilador na arquitetura X86. Com base no estudo realizado, conclui-se que os compiladores são menos eficazes quando comparados a pequenos códigos desenvolvidos manualmente. Como trabalhos futuros, projeta-se realizar a análise com códigos mais complexos.
Voltar Visualizar PDF