में एक योजना दुभाषिया मैं तुम्हें कैसे मेरे दुभाषिया काम करता है, इसका संक्षिप्त विवरण दे सकते हैं बनाता है की सिफारिश करेंगे, हो सकता है यह आप सामान्य बात की एक विचार दे सकते हैं। हालांकि उत्तर बहुत देर हो चुकी है, मुझे उम्मीद है कि यह किसी और की मदद कर सकता है, जो इस धागे पर आया है और एक सामान्य विचार चाहता है।
- योजना की प्रत्येक पंक्ति दर्ज करने के लिए, एक कमांड ऑब्जेक्ट बनाया गया है। यदि आदेश आंशिक है तो इसका घोंसला स्तर संग्रहीत किया जाता है (अभिव्यक्ति को पूरा करने के लिए शेष दाएं ब्रैकेट की संख्या)। यदि आदेश पूरा हो गया है तो अभिव्यक्ति ऑब्जेक्ट बनाया गया है और मूल्यांकनकर्ता को इस ऑब्जेक्ट पर निकाल दिया गया है।
- परिभाषित मूल्यांकनकर्ता वर्गों के 4 प्रकार, प्रत्येक आधार वर्ग मूल्यांकनकर्ता से प्राप्त
क) Define_Evaluator हैं: के लिए बयान को परिभाषित
ख) Funcall_Evaluator: अन्य उपयोगकर्ता द्वारा निर्धारित कार्यों
के प्रसंस्करण के लिए सी) Read_Evaluator: एक अभिव्यक्ति पढ़ने और इसे एक स्कीम ऑब्जेक्ट में बदलने के लिए
डी) Print_Evaluator: ऑब्जेक्ट के प्रकार के आधार पर ऑब्जेक्ट प्रिंट करता है।
ई) Eval_Evaluator: अभिव्यक्ति की वास्तविक प्रसंस्करण करता है।
3 .-> पहले प्रत्येक अभिव्यक्ति को पढ़ने वाले मूल्यांकनकर्ता का उपयोग करके पढ़ा जाता है जो अभिव्यक्ति से एक योजना वस्तु बना देगा। अभिव्यक्ति पूर्ण होने तक नेस्टेड अभिव्यक्तियों की गणना लगातार की जाती है।
-> अगला, Eval_Evaluator निकाल दिया गया है जो पहले चरण में बनाई गई योजना अभिव्यक्ति ऑब्जेक्ट को संसाधित करता है। ऐसा होता है
ए) यदि मूल्यांकन की अभिव्यक्ति एक प्रतीक है। अपना मूल्य वापस करें। इसलिए परिवर्तनीय ब्लैक उस ब्लॉक के लिए ऑब्जेक्ट वापस कर देगा।
बी) यदि मूल्यांकन की अभिव्यक्ति एक सूची है। सूची प्रिंट करें।
सी) यदि मूल्यांकन की अभिव्यक्ति एक कार्य है। फ़ंक्शन की परिभाषा की तलाश करें जो Funcall_Evaluator का उपयोग करके मूल्यांकन वापस कर देगा।
-> अंत में प्रिंट मूल्यांकनकर्ता को परिणाम मुद्रित करने के लिए निकाल दिया जाता है, यह प्रिंट आउटपुट अभिव्यक्ति के किस प्रकार पर निर्भर करेगा।
अस्वीकरण: यह कैसे मेरे दुभाषिया काम करता है, उस तरह से होना जरूरी नहीं करता है।
स्रोत
2012-06-18 14:28:20
एसआईसीपी पढ़ने के बाद, ऐसा लगता है कि आप योजना में अपने दुभाषिया को लिखने से अधिक प्राप्त करेंगे (या कुछ अन्य लिस्प बोली - मुझे क्लोजर पसंद है) और दुभाषिया लिखने से बाहर कुछ अभ्यास करना सी – mwd
में आप एसआईसीपी में कितने दूर हैं? आप अध्याय दुभाषिया (वास्तव में एक से अधिक) और अध्याय 4 और 5 पढ़ने के दौरान एक कंपाइलर लिखेंगे। यदि आप पुस्तक को पूरा करते हैं, तो आपको वह मिल जाएगा जो आप चाहते हैं: मेटासिर्क्यूलर दुभाषिया (योजना में योजना) खूबसूरती से है कम। – spacemanaki