लेक्सिकल एनालिसिस क्या है? | Lexical Analysis in Compiler Design in Hindi


लेक्सिकल एनालिसिस क्या है? (What is Lexical Analysis in Compiler Design?)

लेक्सिकल एनालिसिस (Lexical Analysis) कंपाइलर डिजाइन का पहला चरण होता है, जिसमें स्रोत कोड (Source Code) को छोटे-छोटे भागों (Tokens) में विभाजित किया जाता है। यह चरण कंपाइलर के फ्रंटएंड का एक महत्वपूर्ण भाग होता है।

लेक्सिकल एनालिसिस का उद्देश्य

  • सोर्स कोड को टोकन्स (Tokens) में विभाजित करना।
  • कीवर्ड्स, ऑपरेटर्स, पहचानकर्ताओं (Identifiers) और सिंबॉल्स को पहचानना।
  • सिंबल टेबल (Symbol Table) को अपडेट करना।
  • लेक्सिकल एरर (Lexical Errors) को पहचानना।

लेक्सिकल एनालिसिस की प्रक्रिया (Lexical Analysis Process)

लेक्सिकल एनालिसिस में सोर्स कोड को स्कैन करके निम्नलिखित चरणों में प्रोसेस किया जाता है:

  1. इनपुट: सोर्स कोड को इनपुट के रूप में लिया जाता है।
  2. स्कैनिंग: कोड को कैरेक्टर बाय कैरेक्टर पढ़ा जाता है।
  3. टोकन जनरेशन: शब्दों को टोकन्स में बदला जाता है।
  4. सिंबल टेबल अपडेट: वेरिएबल्स, कीवर्ड्स और ऑपरेटर्स की जानकारी स्टोर की जाती है।
  5. लेक्सिकल एरर हैंडलिंग: गलत टोकन्स को डिटेक्ट किया जाता है।
  6. आउटपुट: टोकन्स को अगले चरण (Syntax Analysis) में भेजा जाता है।

टोकन्स (Tokens) क्या होते हैं?

टोकन्स वे प्राथमिक यूनिट्स होती हैं, जो सोर्स कोड को विभाजित करके बनाई जाती हैं।

मुख्य प्रकार के टोकन्स:

टोकन प्रकार उदाहरण
कीवर्ड (Keywords) int, float, if, else, return
पहचानकर्ता (Identifiers) variable_name, function_name
ऑपरेटर्स (Operators) +, -, *, /, ==, !=
संख्या (Literals) 10, 3.14, "Hello"
संकेत चिन्ह (Punctuations) ;, { }, ( )

लेक्सिकल एनालिसिस का उदाहरण (Example of Lexical Analysis)

अगर हमारे पास निम्नलिखित सोर्स कोड है:

int a = b + 5;

तो लेक्सिकल एनालिसिस के बाद यह टोकन्स में बदल जाएगा:

टोकन प्रकार
int Keyword
a Identifier
= Operator
b Identifier
+ Operator
5 Literal
; Punctuation

लेक्सिकल एनालाइज़र (Lexical Analyzer) का कार्य

लेक्सिकल एनालाइज़र को स्कैनर (Scanner) भी कहा जाता है, और यह निम्नलिखित कार्य करता है:

  • सोर्स कोड को स्कैन करता है।
  • टोकन्स को अलग करता है।
  • सिंबल टेबल को अपडेट करता है।
  • लेक्सिकल एरर्स को हैंडल करता है।

लेक्सिकल एनालिसिस के लाभ (Advantages of Lexical Analysis)

  • सोर्स कोड को छोटे भागों में विभाजित करके इसे आसान बनाता है।
  • एरर हैंडलिंग की प्रक्रिया को तेज़ करता है।
  • टोकन्स को फॉर्मेट करके सिंटैक्स एनालिसिस के लिए तैयार करता है।

लेक्सिकल एनालिसिस में उपयोग होने वाली तकनीकें (Techniques Used in Lexical Analysis)

  • नियमित व्याकरण (Regular Expressions): सोर्स कोड में पैटर्न्स को पहचानने के लिए।
  • फाइनाइट स्टेट मशीन (Finite State Machine - FSM): टोकन्स को पहचानने के लिए।
  • सिंबल टेबल (Symbol Table): वेरिएबल्स और फंक्शंस की जानकारी स्टोर करने के लिए।

लेक्सिकल एनालिसिस और सिंटैक्स एनालिसिस में अंतर (Lexical Analysis vs Syntax Analysis)

लेक्सिकल एनालिसिस सिंटैक्स एनालिसिस
सोर्स कोड को टोकन्स में विभाजित करता है। टोकन्स का सही क्रम सुनिश्चित करता है।
यह कंपाइलर का पहला चरण होता है। यह लेक्सिकल एनालिसिस के बाद आता है।
यह लेक्सिकल एरर्स को पहचानता है। यह सिंटैक्स एरर्स को पहचानता है।

निष्कर्ष (Conclusion)

लेक्सिकल एनालिसिस कंपाइलर डिज़ाइन का पहला चरण होता है, जिसमें सोर्स कोड को टोकन्स में विभाजित किया जाता है। यह प्रक्रिया सिंबल टेबल को अपडेट करती है और एरर को डिटेक्ट करने में मदद करती है। इसके बाद यह टोकन्स को अगले चरण सिंटैक्स एनालिसिस के लिए भेजता है।

Related Post

Comments

Comments