Skip to content

Sugestão: Avaliar remoção ou substituição do NASM #5

Description

@marcelometal

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

  1. Substituir por outro assembler
    • Exemplos: as (GNU assembler), yasm.
  2. Gerar binário diretamente
    • Implementar backend próprio para gerar código de máquina.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions