WebAssemby - это что-то новейшее и лучшее, которое конвертирует код c / c ++ в двоичный формат.
- WebAssembly стремится выполнять на собственной скорости, используя преимущества обычного оборудования. Он предназначен для интеграции с веб-платформой.
Вот ссылка, где из одного приложения вы можете увидеть, как быстро оно конвертирует простую факториальную программу в машинный код.
Проверьте этого зверя, https://godbolt.org/
Вы можете использовать этот пример программы для запуска на этом сайте, чтобы увидеть сборку.
# include<stdio.h>
int square(int num) {
return num * num;
}
int main() {
int res = square(4);
printf("%d\n",res);
return 0;
}
- Определите переносимый двоичный формат с эффективным размером и временем загрузки, который будет служить целью компиляции, который может быть скомпилирован для выполнения на собственной скорости, используя преимущества общих аппаратных возможностей, доступных на широком спектре платформ, включая мобильные и IoT.
Немного базовой информации о хосте и цели, о том, как язык программирования переведен на 10101010.
host=>pc :(windows, iOS, Linux, zOS, Solaris..etc)
target=>CPUhardware: (Intel x86, ARM, PowerPC, etc)
GCC преобразует код C / C ++ в код сборки. Инструмент под названием «ассемблер» преобразует ассемблерный код в машинный код, а инструмент под названием «компоновщик» соединяет несколько файлов машинного кода в один исполняемый файл (.EXE под Windows). Большинство этих компиляторов позволяют записывать полученный ассемблерный код в файл, чтобы вы могли посмотреть на ассемблерный код или изменить его.
Ассемблер и компоновщик являются частью цепочки инструментов, что означает, что они обычно поставляются вместе с компилятором.
Однако некоторые компиляторы (например, Microsoft) напрямую конвертируют код C / C ++ в машинный язык, поэтому ассемблер больше не нужен. Многие из этих компиляторов не могут создавать ассемблерный код, поэтому вы не можете записать ассемблерный код в файл.
Кстати, есть даже компиляторы (не для C / C ++, а для других языков программирования), которые напрямую создают файл .EXE, поэтому компоновщик не требуется.
WebAssembly: https://github.com/WebAssembly/design