मुझे एक कोड अनुवादक लिखने के लिए कहा गया था जो एक पायथन प्रोग्राम लेगा और एक सी प्रोग्राम तैयार करेगा। क्या आपके पास कोई विचार है कि मैं इस समस्या से कैसे संपर्क कर सकता हूं या यह भी संभव है?पायथन से सी तक कोड अनुवादक लिखना?
उत्तर
Shedskin पर एक नज़र डालें। यह ठीक है (ठीक है, सी ++ और पायथन और इसके मॉड्यूल के सबसेट के लिए)। लेकिन यह इस विशेष समस्या से संपर्क करने के तरीके के रूप में मूल्यवान अंतर्दृष्टि प्रदान करने में सक्षम होना चाहिए (हालांकि अपनी खुद की इच्छा निश्चित रूप से एक मामूली कार्य हो)।
धन्यवाद, क्रिस्टोफर। मैं अब शेडस्किन के स्रोत कोड का अध्ययन करूंगा। – bodacydo
Shedskin: http://code.google.com/p/shedskin/
बूस्ट पायथन: http://www.boost.org/doc/libs/1_42_0/libs/python/doc/index.html
PyCXX: http://cxx.sourceforge.net/
Cython: http://www.cython.org/
http://wiki.python.org/moin/compile%20Python%20to%20C से, वहाँ संबंधित परियोजनाओं की एक सूची है।
Pyrex: http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/
psyco: http://psyco.sourceforge.net/
RPython: http://code.google.com/p/rpython/
यहाँ एक बुनियादी सवाल ही नहीं है:, आशय मूल रूप से एक अजगर संकलक सी एक बैक-एंड के रूप में उपयोग करता है बनाने के लिए है या कार्यक्रम को सी में बदलने और सी को बाद में बनाए रखने के लिए?
एक कंपाइलर लिखना जो वास्तव में उत्पादन करता है (वास्तव में बदसूरत) सी इसके उत्पादन के रूप में संभवतः छोटा नहीं है - एक संकलक शायद ही कभी होता है, और पाइथन के लिए कोड उत्पन्न करना कई अन्य भाषाओं (गतिशील टाइपिंग, विशेष रूप से, संकुचित करना मुश्किल है, कम से कम बहुत ही कुशल आउटपुट)। ओटीओएच, कम से कम पार्सर कुछ भाषाओं के मुकाबले बहुत आसान होगा।
"अनुवाद" से, आप सी कि पठनीय और पोषणीय है करने के लिए अजगर परिवर्तित करने का अर्थ यह है, तो उस एक पूरी अलग सवाल है - यह काफी और अधिक कठिन है, यह हल्का डाल करने के लिए है। वास्तव में, मुझे संदेह है कि किसी भी मशीन अनुवाद के लायक होंगे - एक सामान्य मशीन अनुवाद की बहुत उम्मीद होने के लिए आप पाइथन और सी में सामान्य रूप से समस्याओं का सामना करने में बहुत अंतर रखते हैं।
+1: पायथन एक अलग सिंटेक्स के साथ सी नहीं है। यह अद्वितीय अर्थशास्त्र के साथ एक मूल रूप से अलग भाषा है। अगर यह "एक अलग वाक्यविन्यास के साथ सी" था, तो किसी ने पहले ही उस परिवर्तन को लिखा होगा। –
यह मानना है कि कोई भी Cython उल्लेख किया है मुश्किल है - काम के इस प्रकार के लिए काफी वास्तविक मानक मेरी राय में,: http://www.cython.org/
मैं और अधिक सुनने के बिना अपनी आवश्यकताओं दूसरी लगता है कि करने में संकोच कर रहा हूँ, लेकिन अगर आपको "एक कोड अनुवादक लिखने के लिए कहा गया था" (मेरे किसी सबसे बुरे मालिकों में से किसी एक द्वारा), जो कुछ स्तर पर गलतफहमी का सुझाव देता है। मेरी प्रारंभिक प्रतिक्रिया यह है कि (ए) कोई व्यक्ति "पायथन = धीमी, सी = तेज़" हमेशा सोचता है, और (बी) पायथन के लिए एक कोड अनुवादक लिखना एक आसान बात होगी। मैं वापस जाऊंगा और पूछूंगा कि वे इसे क्यों चाहते हैं। – Ken
संभावित पाइपथन प्रोग्राम को सी/सी ++ कोड में कनवर्ट करें?] (Http://stackoverflow.com/questions/4650243/convert-python-program-to-c-c-code) –