WebAssemby là một cái gì đó mới nhất và lớn nhất, giúp chuyển đổi mã c / c ++ ở định dạng nhị phân.
- WebAssugging nhằm mục đích thực thi ở tốc độ gốc bằng cách tận dụng phần cứng thông thường. Nó được thiết kế để tích hợp với nền tảng web.
Đây là liên kết nơi một trong những ứng dụng bạn có thể thấy, tốc độ chuyển đổi chương trình giai thừa đơn giản trong mã máy.
Kiểm tra con thú này, https://godbolt.org/
Bạn có thể sử dụng chương trình mẫu này để chạy trong trang web đó để xem lắp ráp.
# include<stdio.h>
int square(int num) {
return num * num;
}
int main() {
int res = square(4);
printf("%d\n",res);
return 0;
}
- Xác định định dạng nhị phân di động, kích thước và thời gian tải hiệu quả để phục vụ như một mục tiêu biên dịch có thể được biên dịch để thực thi ở tốc độ gốc bằng cách tận dụng các khả năng phần cứng phổ biến có sẵn trên nhiều nền tảng, bao gồm cả di động và IoT.
Một số thông tin cơ bản về máy chủ và mục tiêu, cách ngôn ngữ lập trình được dịch sang 10101010.
host=>pc :(windows, iOS, Linux, zOS, Solaris..etc)
target=>CPUhardware: (Intel x86, ARM, PowerPC, etc)
GCC chuyển đổi mã C / C ++ thành mã lắp ráp. Một công cụ gọi là "trình biên dịch mã" chuyển đổi mã lắp ráp thành mã máy và một công cụ có tên là "trình liên kết" kết nối nhiều tệp mã máy thành một tệp thực thi (.EXE trong Windows). Hầu hết các trình biên dịch này cho phép bạn viết mã trình biên dịch kết quả vào một tệp để bạn có thể xem mã trình biên dịch hoặc sửa đổi nó.
Trình biên dịch và trình liên kết là một phần của chuỗi công cụ, có nghĩa là chúng thường được phân phối cùng với trình biên dịch.
Tuy nhiên, một số trình biên dịch (như Microsoft) chuyển đổi trực tiếp mã C / C ++ sang ngôn ngữ máy để không cần trình biên dịch nữa. Nhiều trình biên dịch này không thể tạo mã trình biên dịch nên bạn không thể ghi mã trình biên dịch vào một tệp.
Nhân tiện: thậm chí còn có các trình biên dịch (không dành cho C / C ++, nhưng đối với các ngôn ngữ lập trình khác) trực tiếp tạo tệp .EXE để không cần trình liên kết.
WebAssugging: https://github.com/WebAssugging/design