वेब असेंबली

वेब असेंबली (कभी-कभी संक्षिप्त रूप से वासम) एक सॉफ्टवेयर पोर्टेबिलिटी बाइनरी कोड प्रारूप और निष्पादन योग्य कार्यक्रमों के साथ-साथ ऐसे कार्यक्रमों और उनके होस्ट वातावरण के बीच बातचीत को सुविधाजनक बनाने के लिए सॉफ्टवेयर इंटरफेस के लिए एक संबंधित पाठ प्रारूप को परिभाषित करता है।

वेब असेंबली का मुख्य लक्ष्य वेब पृष्ठों पर उच्च-प्रदर्शन अनुप्रयोगों को सक्षम करना है, किन्तु यह कोई वेब-विशिष्ट धारणा नहीं बनाता है या वेब-विशिष्ट सुविधाएँ प्रदान नहीं करता है, इसलिए इसे अन्य वातावरणों में भी नियोजित किया जा सकता है। यह खुला मानक है और किसी भी ऑपरेटिंग प्रणाली पर किसी भी भाषा का समर्थन करने का लक्ष्य रखता है, और व्यवहार में सभी सबसे लोकप्रिय भाषाओं में पहले से ही कम से कम कुछ स्तर का समर्थन है।

2015 में घोषित किया गया और पहली बार मार्च 2017 में जारी किया गया वेब असेंबली 5 दिसंबर 2019 को वर्ल्ड वाइड वेब कंसोर्टियम की सिफारिश बन गया  और इसे 2021 में संगणक तंत्र संस्था सिगप्लान से प्रोग्रामिंग भाषा सॉफ्टवेयर अवार्ड प्राप्त किया था। वर्ल्ड वाइड वेब कंसोर्टियम (W3C) मोजिल्ला, माइक्रोसॉफ्ट, गूगल, एप्पल इंक., फास्टली, इंटेल, और रेड हैट के योगदान से मानक बनाए रखता है।

इतिहास
वेब असेंबली का नाम सभा की भाषा की अवधारणा को विकसित करने के लिए रखा गया है, यह शब्द 1950 के दशक का है। यह नाम असेंबली जैसी प्रोग्रामिंग को वर्ल्ड वाइड वेब पर लाने का सुझाव देता है, जहां इसे ग्राहक की ओर निष्पादित किया जाएगा — वेबसाइट उपयोगकर्ता के कंप्यूटर द्वारा उपयोगकर्ता के वेब ब्राउज़र के माध्यम से। इसे पूरा करने के लिए, वेब असेंबली को वास्तविक असेंबली भाषा की तुलना में कहीं अधिक हार्डवेयर-स्वतंत्र होना चाहिए।

वेब असेंबली की घोषणा पहली बार 2015 में की गई थी, और पहला प्रदर्शन फ़ायरफ़ॉक्स में यूनिटी (गेम इंजन) के एंग्री बॉट्स को क्रियान्वित कर रहा था, गूगल क्रोम, और माइक्रोसॉफ्ट बढ़त पूर्ववर्ती प्रौद्योगिकियां मोज़िला और गूगल मूल क्लाइंट से एएसएमडॉटजेएस थीं, और प्रारंभिक कार्यान्वयन एएसएमडॉटजेएस के फीचर समूह पर आधारित था। एएसएमडॉटजेएस विधि पहले से ही निकट-देशी कोड निष्पादन गति प्रदान करती है  और उन ब्राउज़रों के लिए व्यवहार्य विकल्प माना जा सकता है जो वेब असेंबली का समर्थन नहीं करते हैं या सुरक्षा कारणों से इसे अक्षम कर दिया है।

मार्च 2017 में, न्यूनतम व्यवहार्य उत्पाद (एमवीपी) का डिज़ाइन समाप्त होने की घोषणा की गई और पूर्वावलोकन चरण समाप्त हो गया। सितंबर 2017 के अंत में, सफारी (वेब ​​​​ब्राउज़र) को समर्थन के साथ जारी किया गया था। फरवरी 2018 में, वेब असेंबली वर्किंग ग्रुप में कोर स्पेसिफिकेशन, जावास्क्रिप्टइंटरफ़ेस और वेब एपीआई के लिए तीन सार्वजनिक कार्य प्रारूप प्रकाशित किए गये थे।

जून 2019 में, क्रोम 75 को डिफ़ॉल्ट रूप से सक्षम वेब असेंबली थ्रेड्स के साथ जारी किया गया था।

अप्रैल 2022 से, वेब असेंबली 2.0 ड्राफ़्ट स्थिति में है, जो कई सिमद-संबंधित निर्देश और नया वी128 डेटाटाइप जोड़ता है, फ़ंक्शन के लिए कई मान वापस करने की क्षमता, और मास मेमोरी इनिशियलाइज़/कॉपी करता है।

कार्यान्वयन
चूंकि वेब असेंबली को प्रारंभ में वेब ब्राउज़र में निकट-देशी कोड निष्पादन गति को सक्षम करने के लिए डिज़ाइन किया गया था, इसे अधिक सामान्यीकृत संदर्भों में इस प्रकार के बाहर मूल्यवान माना गया है। चूंकि वेब असेंबली के रनटाइम वातावरण (आरई) निम्न स्तर की स्टैक मशीन (जावा वर्चुअल मशीन या एडोब फ्लैश के समान) हैं, जिन्हें होस्ट अनुप्रयोगों में एम्बेड किया जा सकता है, उनमें से कुछ ने वासमटाइम और वासमर जैसे स्टैंडअलोन रनटाइम वातावरणों का विधि खोज लिया है।

वेब ब्राउज़र
नवंबर 2017 में, वेब असेंबली को एज 16 में डिफ़ॉल्ट रूप से सक्षम करने के बाद, मोज़िला ने सभी प्रमुख ब्राउज़रों में समर्थन की घोषणा की थी। इस समर्थन में आईओएस और एंड्रॉयड के लिए मोबाइल वेब ब्राउज़र सम्मिलित हैं।, 96% स्थापित ब्राउज़र  वेब असेंबली (संस्करण 1.0) का समर्थन करें। किन्तु पुराने ब्राउज़रों के लिए, वासम को जावास्क्रिप्ट पॉलीफ़िल (प्रोग्रामिंग) द्वारा एएसएमडॉटजेएस में संकलित किया जा सकता है।

संकलक
वेब असेंबली कार्यान्वयन सामान्यतः समय से पहले (एओटी) या समय से पहले संकलन (जेआईटी) संकलन का उपयोग करता है, किन्तु एक दुभाषिया (कंप्यूटिंग) का भी उपयोग कर सकता है। चूंकि पहला कार्यान्वयन वेब ब्राउज़र में आ चुका है, सामान्य प्रयोजन के उपयोग के लिए गैर-ब्राउज़र कार्यान्वयन भी हैं, जिनमें वास्मेर, वासटाइम या डब्ल्यूएएमआर, वाएसएम3, डब्ल्यूएवीएम, और कई अन्य सम्मिलित हैं।

क्योंकि वेब असेंबली के निष्पादन योग्य पहले से संकलित होते हैं, उन्हें बनाने के लिए विभिन्न प्रकार की प्रोग्रामिंग भाषाओं का उपयोग करना संभव है। यह वासम के सीधे संकलन के माध्यम से या वासम में संबंधित वर्चुअल मशीन # प्रोसेस वर्चुअल मशीनों के कार्यान्वयन के माध्यम से प्राप्त किया जाता है। संकलन लक्ष्य के रूप में वासम का समर्थन करने के लिए लगभग 40 प्रोग्रामिंग भाषाओं की सूचना दी गई है।

एमस्क्रिप्टेन बैकएंड के रूप में बाइनरीन और एलएलवीएम का उपयोग करके C (प्रोग्रामिंग भाषा) और C ++ को वास्म में संकलित करता है। एमस्क्रिप्टेन किसी भी एलएलवीएम- समर्थित भाषाओं (जैसे C (प्रोग्रामिंग भाषा), C++ या जंग (प्रोग्रामिंग भाषा), अन्य के बीच) स्रोत कोड को बाइनरी फ़ाइल में संकलित कर सकता है जो उसी सैंडबॉक्स (कंप्यूटर सुरक्षा) में जावास्क्रिप्ट कोड के रूप में चलता है। एमस्क्रिप्टेन वेबजीएल जैसे कई सामान्य रूप से उपयोग किए जाने वाले पर्यावरण इंटरफेस के लिए बाइंडिंग प्रदान करता है।

संस्करण 8 के अनुसार, स्टैंडअलोन बजना सी (प्रोग्रामिंग भाषा) और सी ++ को वासम में संकलित कर सकता है।

इसका प्रारंभिक उद्देश्य C (प्रोग्रामिंग भाषा) और C++ से संकलन (कंप्यूटिंग) का समर्थन करना है, चूंकि अन्य स्रोत प्रोग्रामिंग भाषा जैसे रस्ट (प्रोग्रामिंग भाषा), .NET भाषाओं के लिए समर्थन और असेंबलीस्क्रिप्ट (टाइपप्रति-लाइक) भी उभर रहा है। एमवीपी जारी होने के बाद, थ्रेड (कंप्यूटिंग) #बहु सूत्रण और कचरा संग्रह (कंप्यूटर विज्ञान) का समर्थन करने की योजना है जो वेब असेंबली को सी शार्प (प्रोग्रामिंग भाषा) (ब्लेज़र द्वारा समर्थित), F शार्प (प्रोग्रामिंग भाषा) (बोलेरो द्वारा समर्थित) जैसी कचरा एकत्र करने वाली प्रोग्रामिंग भाषाओं के लिए संकलन लक्ष्य बना देगा पायथन (प्रोग्रामिंग भाषा), और यहां तक ​​​​कि जावास्क्रिप्ट की सहायता से जहां ब्राउजर की समय-समय पर संकलन की गति बहुत धीमी मानी जाती है। पायथन (प्रोग्रामिंग भाषा), जूलिया (प्रोग्रामिंग भाषा),  और रूबी (प्रोग्रामिंग भाषा) सहित कई अन्य भाषाओं को कुछ समर्थन प्राप्त है।

सीमाएं

 * 1) सामान्य तौर पर, वेब असेंबली दस्तावेज़ ऑब्जेक्ट मॉडल के साथ सीधे संपर्क की अनुमति नहीं देता है। सभी इंटरैक्शन जावास्क्रिप्ट इंटरऑप के माध्यम से प्रवाहित होने चाहिए।
 * 2) कचरा संग्रह की अनुपस्थिति (कंप्यूटर विज्ञान) (चूंकि इसे संबोधित करने की योजना है।)
 * 3) सुरक्षा विचार (नीचे चर्चा की गई)

वेब असेंबली डेस्कटॉप और मोबाइल पर समर्थित है, किन्तु बाद में, व्यवहार में (गैर-छोटी मेमोरी आवंटन के लिए, जैसे कि यूनिटी (गेम इंजन) गेम इंजन के साथ) गंभीर सीमाएँ हैं जो कई अनुप्रयोगों को मोबाइल पर शक्तिशाली से नियुक्त करने के लिए अक्षम बनाती हैं। ब्राउज़र [..] वर्तमान में क्रोम-विशिष्ट वर्कअराउंड का सहारा लिए बिना एंड्रॉयड पर क्रोम पर ~300MB से अधिक मेमोरी आवंटित करना विश्वसनीय नहीं है, न ही iOS पर सफारी में विश्वसनीय हैं।

कोई प्रत्यक्ष दस्तावेज़ ऑब्जेक्ट मॉडल (डॉम) एक्सेस नहीं है; चूँकि, इसके लिए प्रॉक्सी फ़ंक्शंस बनाना संभव है, उदाहरण के लिए एसटीडीवेब के माध्यम से या वेब_एसवाईएस जंग (प्रोग्रामिंग भाषा) का उपयोग करते समय।

सभी प्रमुख वेब ब्राउज़र वेब असेंबली की अनुमति देते हैं यदि सामग्री-सुरक्षा-नीति निर्दिष्ट नहीं है, या यदि असुरक्षित-ईवल का उपयोग किया जाता है, किन्तु अन्यथा प्रमुख वेब ब्राउज़र अलग व्यवहार करते हैं। व्यावहारिक रूप से वेब असेंबली का उपयोग क्रोम पर असुरक्षित-मूल्यांकन के बिना नहीं किया जा सकता है, चूंकि वर्कर थ्रेड वर्कअराउंड उपलब्ध है।

सुरक्षा विचार
जून 2018 में, सुरक्षा शोधकर्ता ने स्पेक्टर (सुरक्षा भेद्यता) और मेल्टडाउन (सुरक्षा भेद्यता) सुरक्षा भेद्यताओं के लिए वेबएसेम्बली का उपयोग करने की संभावना प्रस्तुत की, बार साझा मेमोरी के साथ थ्रेड (कंप्यूटिंग) के लिए समर्थन जोड़ा गया। इस चिंता के कारण, वेब असेंबली विकासकर्ताओं ने इस सुविधा को होल्ड पर रख दिया। चूँकि, इन भविष्य के भाषा एक्सटेंशन का पता लगाने के लिए, गूगल क्रोम ने अक्टूबर 2018 में वेब असेंबली थ्रेड प्रस्ताव के लिए प्रायोगिक समर्थन जोड़ा।

वेब असेंबली की मैलवेयर लेखकों, स्कैमर्स और फ़िशिंग हमलावरों के लिए सबूत छिपाने में अधिक आसानी की अनुमति देने के लिए आलोचना की गई है; वेब असेंबली केवल अपने संकलित रूप में उपयोगकर्ता की मशीन पर मौजूद है, जो [मैलवेयर बनाता है] का पता लगाना मुश्किल है। वेब असेंबली की गति और छुपाने की क्षमता ने वेबसाइट विज़िटर के डिवाइस पर छिपे हुए क्रिप्टोकुरेंसी खनन में इसका उपयोग किया है। कॉइनहाइव, वेबसाइट विज़िटर के ब्राउज़रों में क्रिप्टोक्यूरेंसी खनन की सुविधा प्रदान करने वाली अब निष्क्रिय सेवा है, उनका प्रमाणित है कि उनका माइनर वेब असेंबली का उपयोग करता है और देशी माइनर के प्रदर्शन के लगभग 65% के साथ चलता है। टेक्नीश यूनिवर्सिटी ब्राउनश्वेग के जून 2019 के अध्ययन ने एलेक्सा की शीर्ष 1 मिलियन वेबसाइटों में वेब असेंबली के उपयोग का विश्लेषण किया और पाया कि प्रचलित उपयोग दुर्भावनापूर्ण क्रिप्टो खनन के लिए था, और यह मैलवेयर अध्ययन किए गए वेब असेंबली-उपयोग करने वाली वेबसाइटों के आधे से अधिक के लिए जिम्मेदार है।  यूनिवर्सिटी स्टटगार्ट के अप्रैल 2021 के अध्ययन में पाया गया कि तब से क्रिप्टो खनन को हाशिए पर डाल दिया गया है, जो एलेक्सा की शीर्ष 1 मिलियन वेबसाइटों सहित स्रोतों की विस्तृत श्रृंखला से एकत्र किए गए सभी वेब असेंबली मॉड्यूल के 1% से नीचे गिर गया है।

बड़ी मात्रा में कोड को प्रभावी ढंग से अस्पष्ट करने की क्षमता का उपयोग विज्ञापन अवरोधन और गोपनीयता टूल को अक्षम करने के लिए भी किया जा सकता है जो गोपनीयता बैजर जैसे वेब ट्रैकिंग को रोकते हैं।

जैसा कि वेब असेंबली केवल संरचित नियंत्रण प्रवाह का समर्थन करता है, यह प्रतीकात्मक निष्पादन सहित सुरक्षा सत्यापन विधिों के प्रति उत्तरदायी है। इस दिशा में वर्तमान प्रयासों में मोनिकोर प्रतीकात्मक निष्पादन इंजन सम्मिलित है।

वासी
वेब असेंबली प्रणाली इंटरफ़ेस (वासी) मोज़िला द्वारा डिज़ाइन किया गया सरल इंटरफ़ेस (अनुप्रयोग बाइनरी इंटरफ़ेस और अप्लिकेशन प्रोग्रामिंग अंतरफलक) है, जिसका उद्देश्य किसी भी प्लेटफ़ॉर्म पर पोर्टेबल होना है। यह क्षमता-आधारित सुरक्षा द्वारा विवश फ़ाइल आई/ओ जैसी पोसिक्स जैसी सुविधाएँ प्रदान करता है। कुछ अन्य प्रस्तावित एबीआई/एपीआई भी हैं।

वासी शिमला मिर्च (यूनिक्स) क्लाउडएबीआई और शिमला मिर्च (यूनिक्स) से प्रभावित है।

डॉकर (सॉफ्टवेयर) के सह-संस्थापक सोलोमन हाइक्स ने 2019 में लिखा, यदि वास्म+वासी 2008 में मौजूद होता, तो हमें डॉकर बनाने की जरूरत नहीं होती। यह कितना महत्वपूर्ण है। सर्वर पर वेब असेंबली कंप्यूटिंग का भविष्य है। वासमर, संस्करण 1.0 में, सॉफ्टवेयर कंटेनरीकरण प्रदान करता है, हम सार्वभौमिक बायनेरिज़ बनाते हैं जो बिना किसी संशोधन के कहीं भी काम करते हैं, जिसमें लिनक्स, मैकओएस, विंडोज और वेब ब्राउज़र जैसे ऑपरेटिंग प्रणाली सम्मिलित हैं। सुरक्षित निष्पादन के लिए डिफ़ॉल्ट रूप से वासम स्वचालित रूप से सैंडबॉक्स करता है।

होस्ट पर्यावरण
सामान्य मानक जावास्क्रिप्ट एपीआई के लिए मुख्य विनिर्देश और अंत: स्थापन पर विवरण प्रदान करता है।

वर्चुअल मशीन
वासम कोड (बाइनरी कोड, अर्थात बायटेकोड) को सॉफ्टवेयर पोर्टेबिलिटी वर्चुअल स्टैक मशीन (वीएम) पर चलाने का विचार है। वीएम को जावास्क्रिप्ट की तुलना में तेजी से पार्स और निष्पादित करने और सघन कोड प्रतिनिधित्व करने के लिए डिज़ाइन किया गया है। बाहरी कार्यक्षमता (जैसे प्रणाली कॉल) जो वासम बाइनरी कोड द्वारा अपेक्षित हो सकती है, मानक द्वारा निर्धारित नहीं की जाती है। इसके अतिरिक्त यह होस्ट पर्यावरण द्वारा मॉड्यूल के माध्यम से इंटरफेसिंग प्रदान करने का विधि प्रदान करता है जिसमें वीएम कार्यान्वयन चलता है।

वासम कार्यक्रम
वासम प्रोग्राम को अलग मॉड्यूल के रूप में डिज़ाइन किया गया है जिसमें विभिन्न वासम-परिभाषित मूल्यों और प्रोग्राम प्रकार की परिभाषाओं का संग्रह है। ये या तो द्विआधारी या शाब्दिक प्रारूप (नीचे देखें) में व्यक्त किए गए हैं कि दोनों की सामान्य संरचना है।

निर्देश समूह
वासम प्रोग्राम के बाइनरी प्रारूप के लिए मुख्य मानक निर्देश समूह आर्किटेक्चर (आईएसए) को परिभाषित करता है जिसमें वीएम द्वारा निष्पादित विशिष्ट प्रकार के ऑपरेशन सम्मिलित होते हैं (यह निर्दिष्ट किए बिना कि उन्हें कैसे निष्पादित किया जाना चाहिए)। निर्देशों की सूची में मानक मेमोरी लोड / स्टोर निर्देश, संख्यात्मक, पैरामीट्रिक, नियंत्रण प्रवाह निर्देश समूह आर्किटेक्चर और वास-विशिष्ट चर निर्देश सम्मिलित हैं।

मूल मानक (एमवीपी) में उपयोग किए गए ऑपकोड की संख्या 256 संभावित ऑपकोड में से 200 से थोड़ी कम थी। वेब असेंबली के बाद के संस्करणों ने opcodes की संख्या को 200 से थोड़ा अधिक बढ़ा दिया। वेब असेंबली सिमद प्रस्ताव (समानांतर प्रसंस्करण के लिए) 128-बिट कंप्यूटिंग के लिए वैकल्पिक ओपकोड उपसर्ग (ओएक्सऍफ़डी) प्रस्तुत करता है। सिमद उपसर्ग का संयोजन, साथ ही ऑपकोड जो सिमद उपसर्ग के बाद मान्य है, सिमद ऑपकोड बनाता है। सिमद ऑपकोड न्यूनतम व्यवहार्य उत्पाद (एमवीपी) सिमद क्षमता के लिए अतिरिक्त 236 निर्देश लाते हैं (कुल लगभग 436 निर्देशों के लिए)। वे निर्देश, अंतिम रूप दिए गए ऑपकोड गूगल के V8 (गूगल क्रोम में) और मोज़िला फ़ायरफ़ॉक्स में संबंधित इंजन में प्रायुक्त किया गया है (किन्तु वेब ब्राउज़र के स्थिर संस्करणों में सक्षम नहीं है), और बाद में सिमद एमवीपी के निर्देशों के लिए कुछ अतिरिक्त प्रस्ताव भी हैं, और टेबल पर अलग रिलैक्स-सिम प्रस्ताव भी है।

ये सिमद ऑपकोड पोर्टेबल भी हैं और x64 और एआरएम जैसे देशी निर्देश समूह में अनुवादित हैं। इसके विपरीत, न तो जावा की जावा बायटेकोड निर्देश सूची (न ही सीआईएल निर्देशों की सूची) सिमद का समर्थन करती है, उनके ऑपकोड स्तर पर, अर्थात मानक में; दोनों में कुछ समांतर एपीआई हैं जो सिम स्पीडअप प्रदान करते हैं। जावा के लिए x64 सिमद के लिए आंतरिक कार्यों को जोड़ने के लिए विस्तार है, वह पोर्टेबल नहीं है, अर्थात एआरएम या स्मार्टफोन पर प्रयोग करने योग्य नहीं है। एसएमडी के साथ असेंबली कोड को कॉल करके स्मार्टफोन सिमड का समर्थन कर सकते हैं, और सी # में समान समर्थन है।

कोड प्रतिनिधित्व
मार्च 2017 में, वेब असेंबली सामुदायिक समूह प्रारंभिक (एमवीपी) बाइनरी प्रारूप, जावास्क्रिप्ट एपीआई और संदर्भ दुभाषिया पर आम सहमति पर पहुंच गया। यह वेब असेंबली बाइनरी प्रारूप (.wasm) को परिभाषित करता है, जिसे मनुष्यों द्वारा उपयोग किए जाने के लिए डिज़ाइन नहीं किया गया है, साथ ही मानव-पठनीय वेब असेंबली पाठ प्रारूप (.wat) जो एस-एक्सप्रेशन और पारंपरिक असेंबली भाषाओं के बीच क्रॉस जैसा दिखता है।

नीचे दी गई तालिका संकलन के बाद C (प्रोग्रामिंग भाषा) और इसके संबंधित वेब असेंबली कोड में लिखे गए फैक्टोरियल फ़ंक्शन का उदाहरण दिखाती है, जो .wat पाठ प्रारूप (वेबअसेंबली का मानव-पठनीय शाब्दिक प्रतिनिधित्व) और .wasm बाइनरी प्रारूप (रॉड बाईटकोड, जिसे नीचे हेक्साडेसिमल में व्यक्त किया गया है) दोनों में दिखाया गया है। जिसे वेब ब्राउज़र या रन-टाइम वातावरण द्वारा निष्पादित किया जाता है जो वेब असेंबली का समर्थन करता है।

सभी पूर्णांक स्थिरांक अंतरिक्ष-कुशल, चर-लंबाई एलईबी128 एन्कोडिंग का उपयोग करके एन्कोड किए गए हैं।

वेब असेंबली पाठ प्रारूप को एस-अभिव्यक्ति का उपयोग करके फोल्ड किए गए प्रारूप में अधिक कैननिक रूप से लिखा गया है। निर्देशों और अभिव्यक्तियों के लिए, यह प्रारूप विशुद्ध रूप से वाक्यात्मक चीनी है और इसमें रैखिक प्रारूप के साथ कोई व्यवहारिक अंतर नहीं है। wasm2wat के माध्यम से, ऊपर दिए गए कोड को विघटित करता है: ध्यान दें कि मॉड्यूल निहित रूप से संकलक द्वारा उत्पन्न होता है। फ़ंक्शन को वास्तव में बाइनरी में टाइप टेबल की प्रविष्टि द्वारा संदर्भित किया जाता है, इसलिए एक प्रकार का खंड और डिकंपाइलर द्वारा उत्सर्जित type हैं। कंपाइलर और डीकंपलर को ऑनलाइन एक्सेस किया जा सकता है।

यह भी देखें

 * वास्तुकला तटस्थ वितरण प्रारूप (ANDF)
 * UNCOL
 * जावा बाइटकोड
 * सामान्य भाषा रनटाइम
 * एलएलवीएम
 * संकलक
 * में porting

बाहरी संबंध

 * W3C Community Group
 * वेब असेंबली Design
 * – with info on browser compatibility and specifications (वेब असेंबली जावास्क्रिप्ट API)
 * – with info on browser compatibility and specifications (वेब असेंबली जावास्क्रिप्ट API)