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