WebAssemby è qualcosa di più recente e più grande, che converte il codice c / c ++ in formato binario.
- WebAssembly si propone di eseguire a velocità nativa sfruttando l'hardware comune. È progettato per integrarsi con la piattaforma web.
Questo è il link in cui una delle applicazioni è visibile, quanto velocemente converte il semplice programma fattoriale in codice macchina.
Controlla questo animale, link
Puoi utilizzare questo programma di esempio per l'esecuzione in quel sito per vedere l'assemblaggio.
# include<stdio.h>
int square(int num) {
return num * num;
}
int main() {
int res = square(4);
printf("%d\n",res);
return 0;
}
- Definisci un formato binario portatile, dimensionato e in grado di caricare in modo efficiente come target di compilazione che può essere compilato per l'esecuzione a velocità nativa sfruttando le funzionalità hardware comuni disponibili su una vasta gamma di piattaforme, inclusi dispositivi mobili e degli oggetti.
Alcune informazioni di base su host e destinazione, 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 "assembler" converte il codice assembly in codice macchina e uno strumento chiamato "linker" collega più file di codice macchina in un singolo file eseguibile (.EXE in Windows). La maggior parte di questi compilatori ti consente di scrivere il codice assembler risultante in un file in modo da poter esaminare il codice dell'assemblatore o modificarlo.
-
L'assemblatore e il linker fanno parte della catena di strumenti, il che significa che in genere vengono forniti insieme al compilatore.
-
Alcuni compilatori (come Microsoft) convertono direttamente il codice C / C ++ in linguaggio macchina, quindi nessun assemblatore è più necessario. Molti di questi compilatori non sono in grado di creare codice assembler in modo da non poter scrivere il codice assemblatore 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