Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Geovani de Souza

Compiladores: Como gerar o código-objeto?

Recommended Posts

Olá!

 

Sou estudante de Sistemas de Informação, e estou preparando um trabalho sobre um compilador para uma nova linguagem de programação.

 

Já tenho a gramática, o léxico e parte do sintático. Agora, estou começando a me preocupar em como vou transformar a representação intermediária do programa (AST ou código de 3 endereços) em código binário que a máquina possa entender.

 

Minha dúvida é: Há algum tipo de padrão para este código binário a ser gerado? Existe algum tipo de técnica/ferramenta que demonstre como um compilador possa gerar o código binário para a plataforma em que ele está e/ou para uma plataforma de arquitetura diferente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Termine o analisador sintático antes de passar para a próxima fase. Que tipo de análise sintática está sendo feita, e como está sendo implementada?

 

Como você tem a representação intermediária sem fazer análise semântica? Como tem a análise semântica sem ter completado a sintática?

 

A vantagem do código intermediário é justamente facilitar a otimização e tradução para o código objeto. Ele geralmente é mais simples que o código-fonte. Se você consegue traduzir do código fonte para o código intermediário, não entendo o problema que pode estar tendo para gerar o código objeto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Eu não conheço ainda muito sobre compiladores, mas já teve a ideia de estudar o código do GCC para aprender a fazer tal? Se não estou enganado, o gcj (compilador de java do GCC) compila código em byte code... por que não tenta aprender por isso? Ver o trabalho dos outros simplifica as coisas...

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.