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 अंडर विंडोज) फ़ाइल में जोड़ता है। इनमें से अधिकांश संकलक आपको परिणामी कोडांतरक कोड को एक फ़ाइल में लिखने की अनुमति देते हैं ताकि आप कोडांतरक कोड को देख सकें या इसे संशोधित कर सकें।
कोडांतरक और लिंकर उपकरण श्रृंखला का हिस्सा हैं जिसका अर्थ है कि वे आम तौर पर कंपाइलर के साथ वितरित किए जाते हैं।
कुछ संकलक (जैसे Microsoft) हालाँकि C / C ++ कोड को सीधे मशीन की भाषा में बदलते हैं, इसलिए किसी भी कोडांतरक की आवश्यकता नहीं है। इनमें से कई कंपाइलर असेंबलर कोड बनाने में सक्षम नहीं हैं, इसलिए आप असेंबलर कोड को फाइल में नहीं लिख सकते।
वैसे: यहां तक कि संकलक भी हैं (सी / सी ++ के लिए नहीं, लेकिन अन्य प्रोग्रामिंग भाषाओं के लिए) जो सीधे एक .EXE फ़ाइल बनाते हैं, ताकि कोई लिंकर की आवश्यकता न हो।
WebAssembly: https://github.com/WebAssembly/design