WebAssemby es algo último y mejor, que convierte el código c / c ++ en formato binario.
- WebAssembly tiene como objetivo ejecutar a la velocidad nativa aprovechando el hardware común. Diseñado para integrarse con la plataforma web.
Aquí está el enlace donde puede ver una de las aplicaciones, qué tan rápido convierte el programa factorial simple en código de máquina.
Mira esta bestia, https://godbolt.org/
Puede usar este programa de muestra para ejecutar en ese sitio para ver el ensamblaje.
# include<stdio.h>
int square(int num) {
return num * num;
}
int main() {
int res = square(4);
printf("%d\n",res);
return 0;
}
- Defina un formato binario portátil, eficiente en tamaño y tiempo de carga para que sirva como un objetivo de compilación que pueda compilarse para ejecutarse a la velocidad nativa aprovechando las capacidades comunes de hardware disponibles en una amplia gama de plataformas, incluidos dispositivos móviles e IoT.
Alguna información básica sobre el host y el destino, cómo se traduce el lenguaje de programación al 10101010.
host=>pc :(windows, iOS, Linux, zOS, Solaris..etc)
target=>CPUhardware: (Intel x86, ARM, PowerPC, etc)
GCC convierte el código C / C ++ en código ensamblador. Una herramienta llamada "ensamblador" convierte el código de ensamblaje en código de máquina y una herramienta llamada "enlazador" conecta múltiples archivos de código de máquina en un solo archivo ejecutable (.EXE en Windows). La mayoría de estos compiladores le permiten escribir el código ensamblador resultante en un archivo para que pueda ver el código ensamblador o modificarlo.
El ensamblador y el enlazador son parte de la cadena de herramientas, lo que significa que generalmente se entregan junto con el compilador.
Sin embargo, algunos compiladores (como Microsoft) convierten directamente el código C / C ++ en lenguaje máquina, por lo que ya no se necesita ensamblador. Muchos de estos compiladores no pueden crear código ensamblador, por lo que no puede escribir el código ensamblador en un archivo.
Por cierto: incluso hay compiladores (no para C / C ++, sino para otros lenguajes de programación) que crean directamente un archivo .EXE, por lo que no se requiere un vinculador.
WebAssembly: https://github.com/WebAssembly/design