WebAssemby è qualcosa di più recente e più grande, che converte il codice c / c ++ in formato binario.
- WebAssembly mira a eseguire a velocità nativa sfruttando l'hardware comune. Ha progettato per integrarsi con la piattaforma web.
Ecco il link in cui è possibile visualizzare un'applicazione, la velocità con cui converte il semplice programma fattoriale in codice macchina.
Dai un'occhiata a questa bestia, https://godbolt.org/
È possibile utilizzare questo programma di esempio per eseguire in quel sito per vedere assembly.
# include<stdio.h>
int square(int num) {
return num * num;
}
int main() {
int res = square(4);
printf("%d\n",res);
return 0;
}
- Definire un formato binario portatile, efficiente in termini di dimensioni e tempo di caricamento che funga da obiettivo di compilazione che può essere compilato per essere eseguito a velocità nativa sfruttando le funzionalità hardware comuni disponibili su una vasta gamma di piattaforme, tra cui mobile e IoT.
Alcune informazioni di base su host e target, su come il linguaggio di programmazione viene tradotto in 10101010.
host=>pc :(windows, iOS, Linux, zOS, Solaris..etc)
target=>CPUhardware: (Intel x86, ARM, PowerPC, etc)
GCC converte il codice C / C ++ in codice assembly. Uno strumento chiamato "assemblatore" converte il codice assembly in codice macchina e uno strumento chiamato "linker" collega più file di codice macchina in un unico file eseguibile (.EXE sotto Windows). La maggior parte di questi compilatori consente di scrivere il codice assembler risultante in un file in modo da poter guardare il codice assembler o modificarlo.
L'assemblatore e il linker fanno parte della catena degli strumenti, il che significa che vengono generalmente forniti insieme al compilatore.
Alcuni compilatori (come Microsoft) tuttavia convertono direttamente il codice C / C ++ in linguaggio macchina, quindi non è più necessario alcun assemblatore. Molti di questi compilatori non sono in grado di creare codice assembler, quindi non è possibile scrivere il codice assembler in un file.
A proposito: ci sono anche compilatori (non per C / C ++, ma per altri linguaggi di programmazione) che creano direttamente un file .EXE, quindi non è richiesto alcun linker.
WebAssembly: https://github.com/WebAssembly/design