2009-07-21 22 views
27

सकते हैं प्रोग्रामिंग भाषा जो अजगर की तरह वाक्य रचना है, लेकिन शुरू से ही करने के लिए किसी को भी बिंदु मूल कोड उत्पन्न करने के लिए डिजाइन किया गया था? मुझे केवल बू के बारे में पता है, लेकिन यह .NET का उपयोग करता है, देशी कोड पीढ़ी नहीं। खैर, अगर पाइथन जैसी भाषाओं से कुछ और नहीं है जो .NET/जावा बाइटकोड उत्पन्न करता है तो भी ठीक है।प्रोग्रामिंग भाषाओं

उत्तर

13

Cython ऐसा कर सकता है - सी कोड जो इसे उत्पन्न करता है वह पाइथन एक्सटेंशन के लिए है, लेकिन पूरी चीज को पैक किया जा सकता है और आप पूरे 'देशी' कोड के बाद देशी कोड चलाएंगे।

3

आप कुछ है कि जावा बाईटकोड करने के लिए नीचे संकलित के साथ खुश हैं, तो आप Jython पर एक नज़र हो सकता था। उनके FAQ से हवाला देते हुए:

JPython अजगर प्रोग्रामिंग भाषा जो जावा (टीएम) मंच पर चलने के लिए डिज़ाइन किया गया है के एक कार्यान्वयन है। इसमें पाइथन स्रोत कोड को जावा बाइटकोड पर संकलित करने के लिए एक कंपाइलर होता है जो सीधे जेवीएम पर चलाया जा सकता है, जो कि समर्थित लाइब्रेरीज़ का एक सेट है जिसे संकलित जावा बाइटकोड द्वारा उपयोग किया जाता है, और जेपीथॉन के भीतर जावा पैकेज का उपयोग करने के लिए इसे छोटा बनाने के लिए अतिरिक्त समर्थन ।

मैंने वास्तव में इसका उपयोग नहीं किया है, लेकिन कुछ परियोजनाओं पर विचार कर रहा हूं जहां मुझे मौजूदा जावा कोडबेस के साथ एकीकृत करना है।

HTH

+0

जावा बाईटकोड = मूल कोड –

+2

@Ed - प्रश्न पढ़ें!। उन्होंने कहा, "ठीक है, अगर पाइथन जैसी भाषाओं से कुछ और नहीं है जो .NET/जावा बाइटकोड उत्पन्न करता है तो भी ठीक है।" – Rad

+0

टॉच, मुझे इसे और अधिक बारीकी से पढ़ना चाहिए था। –

1

तुम भी IronPython जाँच कर सकते हैं - नेट ढांचे पर एक अजगर inplementation

+2

* श्वास * .NET मूल कोड नहीं है। कम से कम, डिफ़ॉल्ट रूप से नहीं, वैसे भी। यह जावा की तरह वर्चुअल मशीन है। –

11

मैं मानता होगा कि मैं काफी दो कारणों के लिए, अपने प्रश्न समझ में नहीं आता:

  1. आप देशी कोड पीढ़ी के साथ एक भाषा के लिए पूछ रहे हैं, लेकिन मूल कोड पीढ़ी के पास भाषा के साथ कुछ लेना देना नहीं है, यह कार्यान्वयन की विशेषता है। प्रत्येक भाषा देशी कोड पीढ़ी के साथ कार्यान्वयन कर सकती है। कई पायथन कार्यान्वयन में मूल कोड पीढ़ी है। सी कंपाइलर हैं जो जेवीएम बाइटकोड, सीआईएल बाइटकोड या यहां तक ​​कि ईसीएमएस्क्रिप्ट स्रोत कोड को संकलित करते हैं। सी दुभाषिया भी हैं। ऐसे कंपाइलर भी हैं जो जावा कोडकोड या जेवीएम बाइटकोड को देशी कोड में संकलित करते हैं।

  2. आप वाक्यविन्यास की परवाह क्यों करते हैं? प्रोग्रामिंग भाषा चुनने के बारे में शायद यह कम से कम महत्वपूर्ण कारक है।

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

हालांकि, इस तथ्य यह pythonic वाक्य रचना है कि सब पर मदद करने के लिए यदि आप यूरोपीय शैली भाषा डिजाइन या Wirthian शैली OOP पसंद नहीं है नहीं जा रहा है।

+4

वास्तव में नहीं। एक प्रोग्रामिंग भाषा पूरी तरह से है: भाषा वाक्यविन्यास + मूल पुस्तकालय + पर्यावरण जहां यह चलता है। इसके बारे में सोचें ओओ प्रोग्रामिंग भाषा जिसका रूट क्लास 'java.lang.Object' नहीं है, लेकिन' System.Object' जावा नहीं है लेकिन सी #: पी – OscarRyz

+11

मैं सहमत हूं। महान प्रदर्शन के साथ एक प्रोग्रामिंग भाषा लेकिन थकाऊ वाक्यविन्यास एक चाकू की तरह है जो अविश्वसनीय रूप से तेज है लेकिन हैंडल पर सुई है। इसके अलावा, "यूरोपीय शैली भाषा डिजाइन" जैसी कोई चीज़ नहीं है। – paniq

+3

ओपी कुछ ऐसा चाहता है जो "बहुत शुरुआत से मूल कोड उत्पन्न करने के लिए डिज़ाइन किया गया था"। भाषाओं की बहुत सारी, जैसे पायथन, कुछ गतिशील विशेषताओं के कारण देशी कोड पीढ़ी को बहुत मुश्किल बनाते हैं। जबकि कई अन्य केवल थोड़ा अलग हैं, लेकिन देशी कोड को बहुत आसानी से संकलित किया जा सकता है (उदाहरण के लिए निम्रोद)। तो मैं आपके पहले बिंदु से असहमत हूं। – Ponkadoodle

7

भी पाया आज Delight एक डी बैक-एंड पर पायथन वाक्य रचना को लागू करने।

और Converge भी।

3

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

4

जिन्न जो सूक्ति परियोजना का हिस्सा है: http://live.gnome.org/Genie

मुझे लगता है कि आप वास्तव में क्या ढूंढ रहे हैं।

6

shedskin सी ++

को अजगर संकलित परियोजना पृष्ठ एक प्रयोगात्मक संकलक, कि शुद्ध अनुवाद कर सकते हैं shedskin

शेड त्वचा है से, लेकिन परोक्ष स्थिर टाइप किया अजगर अनुकूलित सी में कार्यक्रमों ++। यह स्टैंड-अलोन प्रोग्राम या एक्सटेंशन मॉड्यूल उत्पन्न कर सकता है जिसे आयात किया जा सकता है और बड़े पायथन प्रोग्राम में उपयोग किया जा सकता है।

7

चेक बाहर Cobra

यह दृढ़ता से अजगर, सी #, एफिल, ऑब्जेक्टिव-सी और अन्य प्रोग्रामिंग भाषाओं से प्रभावित है। यह स्थिर और गतिशील टाइपिंग दोनों का समर्थन करता है। यूनिट परीक्षणों और अनुबंधों के लिए इसका प्रथम श्रेणी का समर्थन है। कोबरा एक ही भाषा में तेजी से विकास और प्रदर्शन दोनों प्रदान करता है।

+1

कोबरा सभ्य दिखता है। मैं विशेष रूप से सही वास्तविक संख्याओं को डिफ़ॉल्ट रूप से पसंद करता हूं: हालांकि यह अक्सर सुरक्षित रूप से सुरक्षित है, "हानिकारक" फ़्लोटिंग पॉइंट केवल तब तक अनुकूलन होना चाहिए जब यह सुरक्षित हो, कभी भी डिफ़ॉल्ट न हो। हालांकि, कोबरा देशी कोड उत्पन्न नहीं करता है, दुख की बात है। यह .NET पर चलता है, जो वर्चुअल मशीन है। यह एक बड़ा अंतर बना सकता है, जब आप कोड लिख रहे होते हैं जो डेटा के गीगाबाइट को संसाधित करता है जिसमें प्रत्येक आइटम को वीएम में कुछ ओवरहेड होता है, उदाहरण के लिए। निमरोद यहां जाने का तरीका है, डी उचित विकल्प है। –

+1

कोबरा * करता है * मूल कोड उत्पन्न करता है यदि आप चाहते हैं। वीएम पर इसे चलाने की आवश्यकता नहीं है। डी या निम के साथ जाने की कोई जरूरत नहीं है –

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