मैं पाइथनिक सेमेन्टिक्स के साथ लिखे गए कोड को स्वचालित रूप से संकलित/परिवर्तित करने की कोशिश कर रहा हूं, मूल और तेज़ जावास्क्रिप्ट कोड में।पाइथन/बू/रूबी को सी/सी ++/एलएलवीएम/जावास्क्रिप्ट (गति के लिए जेएस अर्रेबफर का उपयोग करके) के सिंटैक्स की तरह संकलित करने के लिए उपकरण
जावा इत्यादि जैसे अच्छे डिबगिंग समर्थन के साथ, कौन से टूल्स यह कर सकते हैं?
क्या किसी ने ऐसा किया है?
क्यों?
मैं एक जटिल मुख्य पाश, एक समयरेखा, कुछ भौतिकी सिमुलेशन, और कुछ जटिल बातचीत के साथ कुछ विज़ुअलाइजेशन कोड लिखने की कोशिश कर रहा हूं। आईई: यह एक वास्तविक सीपीयू बाध्य समस्या है।
जावास्क्रिप्ट के साथ लेखन और ब्राउज़र के वातावरण में परीक्षण करना, जावा, .NET या पायथन एक सभ्य आईडीई में चलने से डीबग करना कठिन है। लेकिन जटिल क्लाइंट साइड कोड के साथ वास्तविक बड़े पैमाने पर वेब विकास करने के लिए, कम से कम इसमें लिखने के लिए, जावास्क्रिप्ट को कम से कम संकलित करना आवश्यक है।
पृष्ठभूमि: हाल के अग्रिमों
Emscripten की अनुमति देता है संकलन C/C++ जावास्क्रिप्ट को, कि ASM.js रूप ArrayBuffer के द्वारा लिखा गया सरणी समर्थन और नई ब्राउज़र जे एस इंजन की वजह से ब्राउज़र में दक्षता में वृद्धि के साथ चला सकते हैं, और LLJS लाभ लेने मोज़िला के हालिया गति सुधार (जो अन्य विक्रेताओं की जल्द ही पालन करेंगे)।
Altjs.org में जावास्क्रिप्ट वैकल्पिकता की एक कपड़े धोने की सूची है, लेकिन अभी तक हाल ही में गति सुधार या अच्छे अर्थशास्त्र पर ध्यान केंद्रित नहीं किया गया है, लेकिन लोगों के लिए बेहतर उपकरण वाले ब्राउज़र के लिए कोड करना आम बात हो रही है। विशेष रूप से Emscripten loads of amazing demos है।
संभावित विकल्पों को पहले से ही माना जाता है:
- Shedskin - वर्तमान में मैं काम कर रहा Shedskin हो रही कोशिश की है, लेकिन मैं सी ++/सी कौशल सीमित है (Emscripten केवल एक सी एपीआई को उजागर करता है बोहम के लिए कचरा कलेक्टर इसे इस्तेमाल करता है प्रेरित, और शेडस्किन को इसकी वस्तुओं के लिए एक सी ++ कचरा संग्रहण वर्ग की आवश्यकता होती है, जो अभी तक मौजूद नहीं है)।
- Unladen निगल/RPython, LLVM के लिए - नहीं सेटअप करने में सक्षम Ubuntu पर सही ढंग से अभी तक
- बू जावा के लिए तो LLVM (अभी तक मेरी Ubuntu पर सेटअप करने के लिए सक्षम किया गया)
अतिरिक्त करने के लिए किया गया है बाधाएं:
- मुझे इसे अपने उबंटू सिस्टम पर उपयोग करने की आवश्यकता है।
- संकलित जावास्क्रिप्ट शायद 1 एमबी
- मूल भाषा में डिबगिंग जो संकलित भी है, को मौजूदा डीबग टूल का लाभ उठाने की अनुमति देनी चाहिए, अभी भी संभव होनी चाहिए।
"निर्देश टेबल के निर्माण की यह प्रक्रिया बहुत ही आकर्षक होना चाहिए। इसके बारे में कोई वास्तविक खतरा कभी एक परिश्रम से काम बनने, किसी भी प्रक्रिया है कि काफी यांत्रिक मशीन ही खत्म कर दिया जा सकता है के लिए वहाँ होना चाहिए।" - एलन एम ट्यूरिंग, 1 9 46
आपकी प्रेरणा ("क्यों") [Google वेब टूलकिट] द्वारा बहुत अच्छी तरह से कवर की जाती है (https://developers.google.com/web-toolkit/सिंहावलोकन) (जावा के बावजूद, पायथन नहीं), क्या आपने इसे एक विचार दिया है? – Oak
हां, मैंने GWT और PlayN विचार जैसे टूल दिए हैं लेकिन वे अभी तक ASM.js अनुकूलन का समर्थन नहीं करते हैं। @ ओक –