मुख्य रूप से एक सीखने के अभ्यास के रूप में, मैं कोई बाहरी उपकरण के आधार पर वर्चुअल मशीन, एक असेंबलर और स्क्रैच से कंपाइलर लिख रहा हूं।सिंटैक्स पेड़ को असेंबली में बदलने पर संसाधन?
मेरा मानना है कि मेरे पास वर्चुअल मशीन और असेंबलर काम करेगा, साथ ही साथ कंपाइलर के कुछ हिस्सों के बारे में एक सभ्य वैचारिक समझ है।
यहां मैं क्या जानना चाहता हूं: कंपाइलर में, मान लीजिए कि मैंने स्रोत कोड को सिंटैक्स पेड़ में बदल दिया है। इस वाक्यविन्यास पेड़ को असेंबली में बदलने के लिए मैं किस प्रक्रिया के माध्यम से जाता हूं?
(के, कुछ सरल भाषा निर्माणों मान की तरह अगर और जब तक। मैं एक न्यूनतम और सरल व्याख्या के लिए यहाँ देख रहा हूँ करते हैं।)
मैं विशेष रूप से जटिल समाधान में कोई दिलचस्पी नहीं है, या मौजूदा उपकरणों के आधार पर समाधान कर रहा हूँ । इसके बजाय, मुझे 1 पृष्ठ के क्रम में कुछ चाहिए, सिंटैक्स पेड़ से असेंबली जाने के पीछे विचारों का विस्तृत व्यापक विवरण।
कोई भी ऐसे संसाधन के बारे में जानता है? (: सिद्धांत, तकनीक और उपकरण संकलनकर्ता)
धन्यवाद :)
निश्चित रूप से। किसी भी कंपाइलर पुस्तक के अध्याय 1 के दूसरे और तीसरे पृष्ठ। लेकिन मुझे लगता है कि आप उम्मीद कर रहे हैं कि आपको बस इतना ही चाहिए, और लंबे शॉट से नहीं है। समस्या यह है कि * अच्छे * मशीन कोड (यहां तक कि वर्चुअल मशीन के लिए) प्रक्रियात्मक लैंगुग का अनुवाद करने के लिए बहुत सारी मशीनरी की आवश्यकता होती है, और जब वे 2 पृष्ठ आवश्यकतानुसार अस्पष्ट भाव देंगे, तो आप निर्माण करने में सक्षम नहीं होंगे संकलक पुस्तक के अन्य 200 पृष्ठों को पढ़ने के बिना किसी भी तरह का समझदार कोड जेनरेटर। –