2010-10-09 16 views
6

उद्देश्य-जे को ब्राउज़र पर सीधे जावास्क्रिप्ट में संकलित/रूपांतरित किया गया है। (यह सर्वर पर ऐसा करने के विपरीत है, क्योंकि जीडब्ल्यूटी जावा के लिए करता है।) क्या इस दृष्टिकोण को उद्देश्य-जे के अलावा किसी भी भाषा के लिए लागू किया गया है?क्या उद्देश्य-जे की तुलना में अन्य भाषाएं हैं जो ब्राउज़र में जावास्क्रिप्ट को "संकलित" करती हैं?

उत्तर

4

एक उदाहरण है जो जावास्क्रिप्ट को भाषा की तरह रूबी संकलित करता है - और संकलन ब्राउज़र में किया जा सकता है।

http://jashkenas.github.com/coffee-script/

14

CoffeeScript संकलक ECMAScript में CoffeeScript संकलित करता है। चूंकि कॉफीस्क्रिप्ट कंपाइलर स्वयं कॉफीस्क्रिप्ट में लिखा गया है, इसलिए यह स्वयं को ईसीएमएस्क्रिप्ट में संकलित कर सकता है और इस प्रकार ब्राउज़र में चलाया जा सकता है। <script type='text/coffeescript'> तत्वों का समर्थन करने के लिए आवश्यक बिट्स और टुकड़े मानक कॉफीस्क्रिप्ट कंपाइलर में पहले से ही शामिल हैं।

सामान्य तौर पर, किसी भी भाषा ECMAScript का संकलन किया जा सकता है, आप सभी की जरूरत एक संकलक है। और, बाद से किसी भी भाषा ECMAScript को संकलित किया जा सकता, किसी भी संकलक ECMAScript का संकलन किया जा सकता है, आप सभी की जरूरत भाषा कि संकलक में लिखा है के लिए एक संकलक है।

यह एक मिश्रित विस्फोट की ओर जाता है ब्राउज़र के भीतर भाषाओं को संकलित करने की संभावनाओं की।

उदाहरण के लिए, यह लड़का है जो मज़े के लिए C compilers which target high-level languages लिखता है। उसके पास एक कंपाइलर है जो सी से जावा, पर्ल, कॉमन लिस्प, लुआ या ईसीएमएस्क्रिप्ट को संकलित करता है। तो, आप का उपयोग कर सकते हैं कि कंपाइलर को किसी भी अन्य संकलन को सी से ईसीएमएस्क्रिप्ट में संकलित करने के लिए संकलित करने के लिए उपयोग कर सकते हैं। और अधिकांश भाषाओं में कहीं कुछ कंपाइलर होता है जो सी

सुराग सी में लिखा गया है। सीएलई ईसीएमएस्क्रिप्ट को संकलित करता है। Ergo, आप Clue को ECMAScript में संकलित करने के लिए क्ले का उपयोग कर सकते हैं। फिर, आप फ्लाई पर ईसीएमएस्क्रिप्ट को सी संकलित करने के लिए ब्राउज़र में सुराग चला सकते हैं। <script type='text/c'>, कोई भी? (मज़ा सोचा: Node.js सी हम्म है & hellip में लिखा है;)

एक और अधिक गंभीर नोट पर:

  1. पुन: उपयोग
  2. safety
  3. : वहाँ आम तौर पर ECMAScript के संकलन के लिए तीन कारण हैं व्यक्तित्व

यदि आप बस एक अलग भाषा में लिखे गए मौजूदा कोड का पुन: उपयोग करना चाहते हैं (या एक अलग भाषा में मौजूदा जानकारियों) का उपयोग करना चाहते हैं, तो क्ली पर संकलन/व्याख्या करना एनटी ज्यादा समझ में नहीं आता है। कोड या कोडर <script> तत्वों का उपयोग करने में सक्षम होने की अपेक्षा नहीं करता है। इस श्रेणी में GWT या Volta जैसी सामग्री शामिल है।

यदि (टाइप-) सुरक्षा आपका लक्ष्य है, तो क्लाइंट पर संकलन/व्याख्या करना बस काम नहीं करता है: यदि आप कंपाइलर को नियंत्रित नहीं करते हैं तो आप सुरक्षा की गारंटी कैसे दे सकते हैं? यही कारण है कि Ur/Web, Links, Flapjax, haXe, Caja और इस तरह सर्वर पर कोड संकलित करें। वे स्थिर टाइपिंग या तंग एकीकरण या दोनों द्वारा सुरक्षा की गारंटी देते हैं। (कड़े एकीकरण से मेरा मतलब है कि बैकएंड, फ्रंटएंड और ऐप कसकर जुड़े हुए हैं, उदाहरण के लिएडेटा संरचनाओं को निर्दिष्ट करना एक बार और फिर उस एकल स्रोत से संबंधित एसक्यूएल, ईसीएमएस्क्रिप्ट और एचटीएमएल फॉर्म उत्पन्न करना सुनिश्चित करने के लिए कि वे सभी मेल खाते हैं। यह स्पष्ट होना चाहिए कि इसे सर्वर पर प्रसंस्करण की आवश्यकता क्यों है।)

व्यक्तित्व पर ध्यान केंद्रित करने वाले लोगों को ईसीएमएस्क्रिप्ट के लिए प्रतिस्थापन के रूप में उपयोग करने की उम्मीद है, यानी <script> तत्वों के अंदर, और इस प्रकार वे अक्सर दुभाषियों और/या कंप्यूटर्स जो क्लाइंट पर चलते हैं। कॉफीस्क्रिप्ट, Objective-J और Clamato इस श्रेणी में आते हैं। http://altjs.org/ जो है:

+0

वाह, वह ... दिलचस्प था। दो Tylenol पोप्स। – UnkwnTech

+0

बहुत अच्छा जवाब! और मुझे कुछ कॉफीस्क्रिप्ट आज़माएंगी। –

0

इन सूचियों के अलावा यहां एक सूचकांक है

  • नई भाषाएं
  • जावास्क्रिप्ट संवर्द्धन
  • बंदरगाहों (जावा, सी, रूबी, आदि)

और अधिक

संबंधित मुद्दे

 संबंधित मुद्दे