O WebAssemby é algo mais recente e melhor, que converte o código c / c ++ em formato binário.
- O WebAssembly visa executar na velocidade nativa, aproveitando o hardware comum. Ele foi projetado para integrar-se à plataforma web.
Aqui está o link onde um dos aplicativos que você pode ver, com que rapidez ele converte o simples programa fatorial em código de máquina.
Verifique esta besta, https://godbolt.org/
Você pode usar este programa de amostra para executar nesse site para ver a montagem.
# include<stdio.h>
int square(int num) {
return num * num;
}
int main() {
int res = square(4);
printf("%d\n",res);
return 0;
}
- Defina um formato binário portátil, eficiente em tamanho e tempo de carregamento para servir como um destino de compilação que pode ser compilado para ser executado na velocidade nativa, aproveitando os recursos comuns de hardware disponíveis em uma ampla variedade de plataformas, incluindo móveis e IoT.
Algumas informações básicas sobre host e destino, como a linguagem de programação é traduzida para 10101010.
host=>pc :(windows, iOS, Linux, zOS, Solaris..etc)
target=>CPUhardware: (Intel x86, ARM, PowerPC, etc)
O GCC converte o código C / C ++ em código de montagem. Uma ferramenta chamada "assembler" converte o código de montagem em código de máquina e uma ferramenta chamada "linker" conecta vários arquivos de código de máquina em um único arquivo executável (.EXE no Windows). A maioria desses compiladores permite gravar o código do assembler resultante em um arquivo, para que você possa ver o código do assembler ou modificá-lo.
O montador e o vinculador fazem parte da cadeia de ferramentas, o que significa que eles geralmente são entregues juntamente com o compilador.
No entanto, alguns compiladores (como a Microsoft) convertem diretamente o código C / C ++ em linguagem de máquina, para que não seja necessário mais montador. Muitos desses compiladores não conseguem criar código assembler, portanto você não pode gravar o código assembler em um arquivo.
A propósito: Existem até compiladores (não para C / C ++, mas para outras linguagens de programação) que criam diretamente um arquivo .exe, portanto, nenhum vinculador é necessário.
WebAssembly: https://github.com/WebAssembly/design