2012-01-06 16 views
13

मैं अजगरअजगर संकलक

  1. क्यों कोई अजगर संकलक मूल कोड बनाने के लिए है के बारे में कुछ प्रश्न हैं? मुझे py2exe आदि मिला है लेकिन वे सिर्फ उनके साथ एक अजगर दुभाषिया पैक करते हैं और इसलिए, यह कोड को निष्पादित करने वाला दुभाषिया है।

  2. क्या एलआईएसपी कंपाइलर की तरह एक पायथन कंपाइलर बनाना संभव नहीं है और इसलिए कोड तेजी से निष्पादित होगा (सी ++ की तुलना में)?

धन्यवाद, विनय

+3

आपको यह प्रश्न दिलचस्प लगेगा: http://stackoverflow.com/questions/138521/is-it-feasible-to-compile-python-to-machine-code – charlax

उत्तर

15

Nuitka – Python Compiler

यह

मैंने सोचा था कि वहाँ अजगर, क्या CPython पहले से ही अपने बाईटकोड के साथ है की तुलना में बेहतर संकलक के लिए एक संकलक का उपयोग करना संभव होना चाहिए है क्या। यह नुइटका क्या होना चाहिए।

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

+1

धन्यवाद .. यह पहली बार है जब मैं कुछ समय के लिए खोज कर इस बारे में सुन रहा हूं, और यह बहुत दिलचस्प लगता है। यह कुछ ऐसा था जो मैं ढूंढ रहा था .. :) मैंने यह जांच नहीं की है कि यह कैसे काम करता है। – Vinay

2

अजगर के लिए निकटतम समकक्ष cython और pypy हैं।

2

वहाँ है, तरह।

  1. Cython देखें - मैं पूरी तरह से अभी तक यह पता लगाने के लिए एक मौका मैं बता सकता हूँ, यह सीधे अजगर कोड संकलित रूप में नहीं पड़ा है, लेकिन जैसा कि सबसे अच्छा। आप (वैकल्पिक) स्थैतिक टाइपिंग का भी उपयोग कर सकते हैं - यह अब वेनिला पायथन नहीं होगा, लेकिन यदि आप इसे सही करते हैं, तो इससे गति वृद्धि हो सकती है। साथ ही, इसे देखें: Can Cython compile to an EXE?

  2. ऐसा इसलिए हो सकता है क्योंकि मुझे लिस्प के साथ अधिक अनुभव नहीं है, लेकिन मुझे 'लिस्प कंपाइलर की तरह एक पायथन कंपाइलर' का अर्थ है, इसका पूरा अर्थ नहीं है।

+0

मैंने कहीं पढ़ा है एक LISP संकलक और प्रदर्शन मौजूद है एलआईएसपी कार्यक्रम का सी ++ के बराबर है। क्या मै गलत हु? क्या LISP कंपाइलर मूल निष्पादन योग्य बना सकता है? – Vinay

+0

आह, मैंने आपके मूल प्रश्न को गलत समझा। हां, कुछ लिस्प कंपाइलर मूल निष्पादन योग्य बना सकते हैं। साइथन (जो मैंने ऊपर लिंक किया है) लगभग एक ही चीज़ करता है। – Michael0x2a

8

प्रश्न 1:

  • Nuitka (सी करने के लिए प्रत्यक्ष अजगर कोड ++)
  • ShedSkin (संकलन परोक्ष स्थिर टाइप किया सेल्सियस के लिए अजगर ++, स्टैंड-अलोन प्रोग्राम या विस्तार मॉड्यूल)
  • Cython (पायथन से सी एक्सटेंशन के सुपरसेट से।Cython Pyrex से आता है)

प्रश्न 2:
सुनिश्चित नहीं हैं कि अगर मैं इसे सही ढंग से मिल लेकिन शायद जवाब है:

  • psyco (एक बस समय में संकलक (JIT) अजगर कोड के लिए, PyPy JIT की पूर्ववर्ती)
1

Numba एक नए अजगर संकलक NumPy & LLVM, के आधार पर जो वापस टी गिर जाता है ओ सीपीथन।

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