2011-06-08 17 views
9

जनरेटर, RPython में समर्थित हैं क्योंकि मैं सिर्फ PyPy के दस्तावेज में कुछ कहते हैं कि वेजेपीटर RPYthon में समर्थित हैं?

PyPy Doc - Coding Guide

वे सी की तरह एक स्थिर टाइप किया भाषा में अनुवाद किया जा सकता है क्योंकि हर पीढ़ी चरण में उत्पन्न होता है आसान प्रतीत नहीं कर रहे हैं पढ़ने के लिए फंक्शन कॉल

क्या कोई समझा सकता है क्यों? या इस विषय पर कुछ और प्रकाश डाला। मैं वर्तमान में RPython सुरक्षित कोड लिखने की मूल बातें सीखने की कोशिश कर रहा हूं।

+1

यह एक ऑर्थोगोनल प्रश्न है, लेकिन आप किस भाषा के लिए एक दुभाषिया लिख ​​रहे हैं? यदि आप नहीं हैं, तो RPython शायद गलत समाधान है। – DSM

+0

मैं एक दुभाषिया नहीं लिख रहा हूं, जैसा कि मैंने कहा था कि मैं सुरक्षित आरपीथन कोड लिखने के लिए युक्तियां जानना चाहता हूं, और जब मैं पीपीपी कोडिंग गाइड पढ़ रहा था, तो मुझे इस जेनरेटर चीज़ –

उत्तर

21

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

यह केवल कठिन/आवश्यक नहीं था और लागू नहीं किया गया था।

+0

से चिंतित हो गया जब आप कहते हैं कि 'जनरेटर फ्रेम को जीवित रखना' क्या आप उपज के आधार पर जनरेटर का संदर्भ लेते हैं? –

+0

यकृत के साथ लागू जनरेटर को स्मृति-आधारित जेनरेटर में मेमोरी में परिवर्तित नहीं किया जा सकता है? जो मुझे लगता है कि इसे अपने स्वयं के –

+0

@costy के फ्रेम की आवश्यकता नहीं है: मुझे पूरा यकीन है कि ऐसा परिवर्तन संभव होगा ([लैम्ब्डा उठाने] के समान (http://en.wikipedia.org/wiki/Lambda_lifting) शायद) , लेकिन फिर भी यह बहुत काम होगा। – delnan

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