अनुवादक कैसे लिखें

विषयसूची:

अनुवादक कैसे लिखें
अनुवादक कैसे लिखें

वीडियो: अनुवादक कैसे लिखें

वीडियो: अनुवादक कैसे लिखें
वीडियो: संस्कृत - भाषा बोलना (हिंदी से संस्कृत में अनुवाद कैसे करें) 2024, अप्रैल
Anonim

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

अनुवादक कैसे लिखें
अनुवादक कैसे लिखें

ज़रूरी

  • - स्रोत भाषा का प्राकृतिक व्याकरण या बीएनएफ;
  • - विकास उपकरण।

निर्देश

चरण 1

स्रोत भाषा में पाठ के शाब्दिक विश्लेषण के लिए डेटा तैयार करें। भाषा में सभी टोकन की सूची बनाएं। उन्हें श्रेणियों (कीवर्ड, न्यूमेरिक और स्ट्रिंग लिटरल, आइडेंटिफ़ायर, व्हाइटस्पेस, विराम चिह्न, आदि) में विभाजित करें।

चरण 2

एक मॉड्यूल या लेक्सर लागू करें। इनपुट पर, इसे "कच्चा" डेटा स्ट्रीम प्राप्त करना चाहिए, और आउटपुट पर टोकन और उनके प्रकार के पहचानकर्ताओं वाले तत्वों की एक सूची बनाते हैं जिसमें वे स्रोत टेक्स्ट में होते हैं। पार्सिंग प्रोग्राम काफी सरल हो सकता है " सिंगल-लेवल" स्कैनर। त्रुटि पुनर्प्राप्ति को लागू करने का कोई मतलब नहीं है। अमान्य वर्णों को त्रुटियों के रूप में माना जाना चाहिए।

चरण 3

पार्सिंग के लिए डेटा तैयार करें। स्रोत भाषा के प्राकृतिक व्याकरण या BNF के आधार पर, इसके LL1 व्याकरण की रचना करें। इस प्रकार के व्याकरण के आधार पर, वैध टोकन की श्रेणियों और भाषा के अर्थ निर्माण के संदर्भ में एक पार्सिंग योजना तैयार करें।

चरण 4

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

चरण 5

यदि आवश्यक हो तो एक अनुकूलन मॉड्यूल बनाएं। इसे पिछले चरण में तैयार किए गए डेटा संरचनाओं को संसाधित और परिवर्तित करना चाहिए। अनुकूलन एल्गोरिदम और विधियां बहुत विविध हैं।

चरण 6

एक कोड जनरेटर विकसित करें। चौथे या पांचवें चरण में तैयार की गई संरचनाओं को संसाधित करते समय, इसे केवल एक विशिष्ट मंच पर निष्पादन के लिए अमूर्त निर्देशों के अनुक्रमों को निर्देशों में बदलना चाहिए।

चरण 7

यदि आवश्यक हो तो एक बाइंडर प्रोग्राम (लिंकर) बनाएं। इसे कोड सेगमेंट के स्थान का चयन करके, लेबल के पते की गणना आदि करके परिणामी निष्पादन योग्य मॉड्यूल बनाना चाहिए।

सिफारिश की: