Contexto
Atualmente, o compilador GPT gera código assembly x86 e utiliza o NASM para montar o código em executável.
Essa dependência externa torna o projeto dependente do NASM e limitado à arquitetura x86.
Motivação
- Reduzir dependências externas no projeto.
- Possível suporte a outras arquiteturas além de x86.
- Aprendizado sobre compiladores, gerando binário direto ou usando outro backend (ex: C → GCC/Clang, LLVM).
Alternativas para remoção do NASM
- Substituir por outro assembler
- Exemplos:
as (GNU assembler), yasm.
- Gerar binário diretamente
- Implementar backend próprio para gerar código de máquina.
- Traduzir para C e compilar com GCC/Clang
- Usar a etapa de tradução existente para C e gerar executáveis sem NASM.
Considerações
- Simplesmente remover o NASM sem substituição quebraria a geração de executáveis.
- A implementação de alternativas exige mudanças significativas no compilador.
- A manutenção e complexidade podem aumentar, mas há ganho em flexibilidade e aprendizado.
Contexto
Atualmente, o compilador GPT gera código assembly x86 e utiliza o NASM para montar o código em executável.
Essa dependência externa torna o projeto dependente do NASM e limitado à arquitetura x86.
Motivação
Alternativas para remoção do NASM
as(GNU assembler),yasm.Considerações