Um back end para o desenvolvimento de compiladores - De Bastiani, Júlio Cesar Sotoriva (My University, 2022)
A compiler is an application that translates programs into a form that can be executed by a computer, presenting to the user any errors found during the translation process, said process can be separated into two major steps: analysis and synthesis. The objective of this work is the creation of a framework to facilitate the implementation of compilers on academic environments. In this work, an intermediate representation based on three address code was defined, and a compiler (and library) to translate said intermediate representation into x86_64 assembly was implemented. This was done in order to enable students of the compilers subject to focus exclusively on the implementation of the analysis step and still create functional compilers that are able to produce executable applications. [resumo fornecido pelo autor]
Um compilador traduz um programa para um programa equivalente escrito em outra linguagem, apresentando para o usuário quaisquer erros encontrados durante o processo de tradução, esse que pode ser dividido em duas grandes etapas: análise e síntese. O objetivo deste trabalho é a criação de uma ferramenta para facilitar a implementação de compiladores em ambientes acadêmicos. Neste trabalho foi definida uma representação intermediária em código de três endereços e implementado um compilador e biblioteca para transformar essa representação intermediária em assembly para processadores x86_64. Isto foi feito para que alunos da disciplina de compiladores possam focar exclusivamente na implementação da etapa de análise e ainda assim criar compiladores funcionais que geram aplicações executáveis e depuráveis. [resumo fornecido pelo autor]
Keywords: Compiladores (Programas de computador)