Lexical Analyzer | Lexical Analysis | Compiler Design
Summary
TLDRThe provided script discusses the role of the lexical analyzer, the first phase of a compiler, in detail. It explains how the lexical analyzer, also known as the scanner, scans the source program and converts it into meaningful tokens such as identifiers, keywords, operators, and constants. The script further delves into the process of syntax analysis, error handling, and the importance of the lexical analyzer in providing error messages with line and column numbers, which is crucial for debugging. It also touches upon the concept of semantic analysis and type checking in the context of a compiler.
Takeaways
- 📘 The Lexical Analyzer, also known as the Scanner, is the first phase of the compiler which divides the given program into meaningful words called tokens.
- 🔍 The Lexical Analyzer scans the program and converts it into tokens such as identifiers, keywords, operators, constants, and special symbols.
- 🔑 Identifiers can be variable names and keywords are predefined words in a programming language like 'if', 'else', 'while', 'for', etc.
- ➗ The Lexical Analyzer eliminates white space characters like blank spaces and tabs, which are not significant in the program.
- 👀 The script discusses the importance of the Lexical Analyzer in providing error messages with line and column numbers, which help in debugging.
- 🌐 The process of the Lexical Analyzer involves accessing the symbol table to understand the context of tokens and identifiers within the program.
- 🔄 The script mentions the iterative process of the compiler, where each phase like the parser and semantic analyzer builds upon the tokens provided by the Lexical Analyzer.
- 🔍 The Parser, as part of the compiler, constructs a syntax tree based on the tokens received from the Lexical Analyzer and defined grammar rules.
- 📊 The Semantic Analyzer checks for type matching and other semantic rules after the syntax tree is constructed by the Parser.
- 🛠️ The script explains the interaction between the Lexical Analyzer, Parser, and Semantic Analyzer in the context of compiling a program.
- ⚠️ The Compiler does not stop at syntax errors; it scans the entire program and lists all errors, which is crucial for understanding the compilation process.
Q & A
What is the role of a Lexical Analyzer in a compiler?
-The Lexical Analyzer, also known as the scanner, is the first phase of a compiler. It reads the source code and converts it into meaningful tokens, which are the smallest units of the programming language that carry meaning.
What are tokens in the context of lexical analysis?
-Tokens are the meaningful sequences of characters identified by the lexical analyzer. They can represent identifiers, keywords, symbols, operators, and constants from the source code.
How does the Lexical Analyzer process the input program?
-The Lexical Analyzer scans the input program character by character, groups them into tokens, and eliminates whitespace characters such as spaces and tabs.
What are the different types of tokens that a Lexical Analyzer can generate?
-The types of tokens include identifiers, keywords, operators, constants (like numeric values), and special symbols (like commas and semicolons).
What is the purpose of the Syntax Analyzer in a compiler?
-The Syntax Analyzer, also known as the parser, checks the sequence of tokens to ensure they follow the grammar rules of the programming language, constructing a parse tree or syntax tree in the process.
How does the Syntax Analyzer interact with the Lexical Analyzer?
-The Syntax Analyzer requests tokens from the Lexical Analyzer using a function like 'Get Token'. Based on the current context and the token received, the Syntax Analyzer decides which production rule to apply.
What happens if there is a mismatch between expected and actual tokens during syntax analysis?
-If a mismatch occurs, it indicates a syntax error. The compiler typically has an error handler that records the error, provides information about the location of the error, and may continue parsing the rest of the program.
Why is it important for the Lexical Analyzer to provide line and column information for errors?
-Line and column information is crucial for developers as it helps them locate and fix syntax errors in the source code more easily.
Can you explain the implicit type conversion that the Semantic Analyzer checks for?
-Implicit type conversion is when the compiler automatically converts one data type to another without explicit programmer instruction. The Semantic Analyzer checks for situations like assigning a smaller integer value to a floating-point variable, which can be done without data loss.
What is the role of the Semantic Analyzer in the compilation process?
-The Semantic Analyzer is responsible for checking the semantic validity of the program, including type checking, scope resolution, and other semantic rules defined by the programming language.
How does the compiler handle syntax errors during the compilation process?
-The compiler does not stop the compilation process upon encountering a syntax error. Instead, it records the error, provides details about the location, and continues to scan and analyze the rest of the program to identify additional errors.
Outlines
📘 Compiler Phases and Lexical Analyzer
The script introduces the concept of compiler phases, focusing on the lexical analyzer. It explains the role of the lexical analyzer in dividing the source code into meaningful words or tokens, such as identifiers, keywords, operators, and constants. The lexical analyzer scans the program and converts it into tokens, which are then used by subsequent compiler phases. The script also briefly mentions syntax analyzers and parsers, indicating they will be discussed in more detail later.
🔍 Parsing and Syntax Analysis
This paragraph delves deeper into the parsing process, where the syntax analyzer generates a syntax tree based on grammar rules. It describes how the parser requests tokens from the lexical analyzer and matches them against production rules to construct the parse tree. The script also discusses error handling during parsing, explaining how syntax errors are reported and managed without stopping the compilation process, ensuring the entire program is scanned for errors.
🔧 Semantic Analysis and Error Reporting
The final paragraph discusses semantic analysis, where the semantic analyzer checks for type matching and other semantic rules after the syntax tree has been constructed. It explains how the semantic analyzer interacts with the symbol table and how it handles type mismatches, reporting semantic errors to the error handler, which records the error details, including line and column numbers, to provide meaningful error messages to the user without halting the compilation process.
Mindmap
Keywords
💡Compiler
💡Lexical Analyzer
💡Tokens
💡Syntax Analyzer
💡Semantic Analyzer
💡Identifiers
💡Keywords
💡Operators
💡Constants
💡Special Symbols
💡Syntax Error
💡Error Handler
Highlights
The first phase of the compiler is the lexical analyzer, also known as a scanner.
The lexical analyzer divides the given program into meaningful words called tokens.
Tokens can be identifiers, keywords, operators, constants, or special symbols.
The lexical analyzer scans the source program and converts it into tokens.
Identifiers can be variable names, array names, etc.
Keywords are predefined words in a programming language like 'if', 'else', 'while', etc.
Operators include assignment operators, comparison operators, relational operators, etc.
Constants are constant values like 100, 100.3, etc.
Special symbols include characters like commas, semicolons, etc.
The lexical analyzer removes whitespace characters like blanks and tabs.
Syntax analyzer (parser) starts after the lexical analyzer and constructs a syntax tree.
The parser verifies the tokens received from the lexical analyzer based on production rules.
The parser generates an error message if a syntax error is found, reporting it to the error handler.
The error handler notes down the error with the row and column numbers provided by the lexical analyzer.
Semantic analyzer checks for type mismatches and other semantic errors during compilation.
The compilation process continues even if errors are found, scanning the entire program.
Lexical analyzer helps in giving error messages by providing row and column numbers of errors.
The entire compilation process involves six phases that are executed simultaneously as needed.
Transcripts
सो अब डिस्कस करते हैं कंपाइलर का फर्स्ट
फेज जो कि है आपका लेक्सिक एनालाइजर ओके
फेजेस ऑफ कंपाइलर ऑलरेडी हम लोग डिस्कस कर
चुके हैं कि किस तरीके से हर एक फेज का
क्या काम होता है अब हर एक फेज के बारे
में हम लोग डिटेल में डिस्कस करेंगे तो
लेक्सिक एनालाइजर क्या होता है तो फर्स्ट
लाइन देखते हैं लेक्सिक एनालाइजर डिवाइड्स
द गिवन प्रोग्राम इनटू मीनिंगफुल वर्ड्स
व्हिच इज नोन एज स्टोकन तो लेक्सिक
एनालाइजर क्या करता है लेक्सिक एनालाइजर
जो भी आपका प्रोग्राम दिया हुआ है ठीक है
उसको क्या करता है स्कैन करता है इसलिए एक
एनालाइजर को हम स्कैनर भी कहते हैं ओके तो
प्रोग्राम को स्कैन करेगा और उसके बाद
इसको मीनिंगफुल वर्ड्स में कन्वर्ट कर
देगा जिसको हम टोकन कहते हैं ओके टोकन
क्या होता है बेसिकली टोकेंस आर नॉर्मली
आइडेंटिफिकेशन
सिंबल
आइडेंटिफिकेशन
नेम हो सकता है एरे नेम ये सारे क्या होते
हैं आपके आइडेंटिफिकेशन
होता है नेक्स्ट क्या है कीवर्ड तो कीवर्ड
वो सारे वर्ड्स होते हैं किसी भी जैसे मान
लीजिए अगर सी प्रोग्रामिंग की बात करें तो
उसमें कुछ प्री डिफाइंड वर्ड्स होते हैं
जैसे इफ हो गया एल्स हो गया वाइल हो गया
हो गया फॉर लूप हो ये सारे क्या होते हैं
कीवर्ड्स होते हैं तो वो भी क्या होता है
आपका टोकन होता है नेक्स्ट ऑपरेटर तो बहुत
सारे ऑपरेटर होते हैं अगर आपका असाइनमेंट
ऑपरेटर है कंपैरिजन ऑपरेटर है रिलेशनल
ऑपरेटर ये सारे ऑपरेटर तो ये सब भी क्या
आएंगे टोकेंस ही होंगे कांस्टेंट कोई भी
कांस्टेंट वैल्यू हो गई लेट्स सपोज है 100
100.3 ये सारे कांस्टेंट वैल्यू हो गई
स्पेशल सिंबल का मतलब ये हुआ कि जैसे आपका
कॉमा हो गया सेमी कॉलन हो ग ये सारे
स्पेशल सिंबल में आ गए तो लेक्सिक
एनालाइजर को क्या कहते हैं स्कैनर उसका
काम क्या होता है प्रोग्राम को स्कैन
करेगा और उसको मीनिंगफुल वर्ड्स में
कन्वर्ट करेगा जिसको हम टोकन कहते हैं ओके
अब बाकी जो पॉइंट्स है वो अभी बाद में
डिस्कस करते हैं अब आते हैं इस डायग्राम
पे ये डायग्राम क्या है ये आपका लेक्सिक
एनालाइजर है तो लेक्सिक एनालाइजर के लिए
क्या होगा ये आपका इनपुट जो होगा वो क्या
होगा आपका सोर्स प्रोग्राम ओके लेट्स सपोज
हम एप कोई भी आपका सी प्रोग्राम है वो
सोर्स प्रोग्राम किसके लिए होगा लेक्सिक
एनालाइजर के लिए अब यहां क्या है दूसरे
बॉक्स में क्या लिखा हुआ है पार्सर पार्सर
का मतलब सिंटेक्स एनालाइजर कहीं अगर
सिंटेक्स एनालाइजर लिखा हुआ है या पार्सल
लिखा हुआ है बोथ आर सेम ओके अब देखो
और अभी हम लोग जो फेजस ऑफ कंपाइलर में
डिस्कस किए कि हर एक फेज जो कंपाइलर का
होता है वो सिंबल टेबल को एक्सेस करता कोई
अगर डटा स्टोर करना है स्टोर कर सकता है
या उसको यूज करना है तो यूज कर सकता है
ओके इसलिए हमने दोनों तरफ एरो दिखाई हु है
कि मतलब इसमें हम डाटा स्टोर भी कर रहे
हैं और उसको एक्सेस भी कर रहे अब देखो
कैसे यह काम करेगा तो सबसे पहले सबसे पहला
जो कंपाइलर का फेज है पहले चीज ये हम लोग
पहले क्लियर कर लेते हैं कंपाइलर के जो
फेजेस होते हैं वो वन बाय वन एग्जीक्यूट
नहीं होते जैसे ही र आपका एग्जीक्यूट होगा
कोई भी प्रोग्राम है अगर उसको हम कंपाइल
करेंगे तो उसमें टोटल छह फेजस होते हैं तो
छह फंक्शन है लेट्स अजूम तो वो सारे क्या
हो जाएंगे एक्टिवेट हो जाएंगे मतलब वो रन
करना शुरू हो जाएंगे और यह साइमल नियस रन
करते हैं जब जिसकी जहां जरूरत पड़ती है वो
वहां पहुंच जाता है ओके मतलब पहुंच जाता
मतलब फेजेस की बात कर रहे हैं तो ऐसा नहीं
कि पहले लेक्सिक आपका कंप्लीट हो जाएगा
उसके बाद फिर सिंटेक्स स्टार्ट होगा फिर
सेटक नहीं जब जहां जिसकी रिक्वायरमेंट
होगी वो आपका एग्जीक्यूट होगा तो सबसे
पहले कौन एग्जीक्यूट होता है सबसे पहले
सिंटेक्स एनालाइजर स्टार्ट होता है कैसे
होता है पहले हम एक एग्जांपल ले लेते हैं
लेट्स सपोज यह आपका एक प्रोग्राम है ओके
यह आपका प्रोग्राम है लेट्स सपोज लाइन
नंबर वन लाइन नंबर टू लाइन नंबर थ्री एंड
सो ऑन लाइन नंबर लेट्स सपोज 10 एंड सो ऑन
लाइन नंबर 100 ओके लेट्स सपोज 100 रो दैट
मींस 100 लाइन का मतलब 100 रो है और यह
आपका क्या हो गया फर्स्ट कॉलम सेकंड कॉलम
थर्ड कॉलम एंड सो ऑन लेट्स सपोज यह आपका
10थ कॉलम हो गया और यह हो गया आपका लेट्स
सपोज 50 तो इसका मतलब 50 कॉलम है और 100
रो का प्रोग्राम ये अंपन लेके चल रहे है
तो सबसे पहले क्या करेगा पार्सर पार्सर
क्या है सिंटेक्स एनालाइजर तो सिंटेक्स
एनालाइजर का काम क्या होता है सिंटेक्स
ट्री ड्र करना तो सिंटेक्स ड्र करने के
लिए लेट्स सपोज हमने कुछ ग्रामर्स लिख दिए
एस राइव्स मतलब यहां कुछ लिख नहीं रहे ओके
यहां कुछ प्रोडक्शन है ओके ये सारी
प्रोडक्शन
है तो अब क्या होगा सिंटेक्स एनालाइजर दैट
मींस पार्सर क्या करेगा लेक्सिक एनालाइजर
को पूछेगा गेट टोकन दैट मींस वो क्या
करेगा हमको कोई टोकन देक हमें पासरी जनरेट
करनी है और वो इनिशियली कहां होगा स्टार्ट
सिंबल पे और आपका स्कैनर दैट मी वो कहां
से स्टार्ट करेगा यहां पे तो अभी करंट
सिचुएशन में पार्सर कहां है स्टार्टिंग
सिंबल पे है और जो आपका स्कैनर दैट मींस
लेक्सिक एलाइजर वो क्या है फर्स्ट रो
फर्स्ट कॉलम यानी फर्स्ट सिंबल वो रीड कर
रहा है तो पहला पहला जो फेज एक्टिवेट होगा
दैट मीस पहला जो फेज रन होगा कंपाइलर का
वो क्या होगा पार्सर होगा ना कि लेक्स
लाइजर ये क्या करेगा ये एक फंक्शन कॉल है
फंक्शन कॉल का मतलब गेट टोकन का मतलब ये
लेक्स एनालाइजर से पूछेगा कि टोकन मुझे
सेंड करो दैट मींस इस इसकी तरफ से जो एरो
दिखाया सेंड टोकन तो लेक्सिक एनालाइजर
क्या करेगा पार्सर को टोकन सेंड करेगा
उसके बेसिस पे वो क्या करेगा पार्स जनरेट
करेगा पार्सर का काम क्या है पास रि जनरेट
करना तो पार्सर यहां आपका स्टार्टिंग
सिंबल पे अभी है इस टाइम अब इसमें बहुत
सारी प्रोडक्शन है कौन सी प्रोडक्शन चूज
करेगा वो डिपेंड करेगा कि यहां से लेक्स
एलाइजर कौन सा टोकन भेज रहा है लेट्स सपोज
इसने यहां स्कैन करते हुए यहां पहुंचा और
तीन सिंबल रीट कि और एक कोई टोकन जनरेट हो
गया ओके तो लेट्स सपोज वो टोकन आपका क्या
है आईडी है फॉर एग्जांपल
ओके तो अब यहां पर एक लेट्स सपोज आपका एक
कोई प्रोडक्शन है आईडी च इज इक्वल टू e
फॉर एग्जांपल तो क्या करेगा ये आईडी च इज
इक्वल टू e करके ये आपका एक्सपेंड कर देगा
पास्ट ट्री एक बार और रिपीट कर दे रहे हैं
इस चीज को पार्सर का काम क्या है पार्सर
का मतलब सिंटेक्स एलेजर पार्सर का काम यह
है कि वो पास जनरेट करेगा तो पास वो कैसे
जनरेट कर उसको उसको क्या चाहिए टोकन इसका
मतलब ये है कि इसके पास बहुत सारे रूल है
कौन सा वो प्रोडक्शन रूल पिक करेगा वो
करेगा लेक्स एनालाइजर कौन सा टोकन भेज रहा
है तो पहले क्या होगा पार्सल लेक्सिक
एनालाइजर को बोलेगा कि टोकन सेंड करो जैसे
ही टोकन सेंड हुआ उसके करेस्पॉन्डिंग्ली
यह वेरीफाई करेगा अच्छा यहां आईडी है पहला
और यहां आईडी है मैच कर गया अब क्या करेगा
नेक्स्ट टोकन भेजो क्योंकि जो इसने
प्रोडक्शन चूज किया वो करेक्ट है या नहीं
और जो क्योंकि ये क्या करना आईडी भी चेक
करेगा इक्वल भी चेक करेगा और कैपिटल ई भी
चेक करेगा कैपिटल ई नहीं मतलब ई अभी
एक्सपेंड होगा अब लेट्स सपोज यहां से फ से
स्टार्ट किया और 10 तक पहुंचा ओके और यहां
पर इसको मिल गया प्लस फ अब नया
इंटरेस्टिंग पॉइंट य आने वाला है ये क्या
आपको मिल गया ने नेक्स्ट टोकन लेटस सपोज
प्लस है अब यहां क्या आ रहा है देखो यहां
क्या इक्वल टू क्या हो गया यहां पे मिसमैच
तो मिसमैच होगा तो क्या होगा ये किसको
इफॉर्म करेगा एरर हैंडलर को अगर डायग्राम
याद होगा तो इस तरीके से मैंने हर एक
उसमें जो है एरो दिखाई थी कि लेफ्ट हैंड
साइड में एरर हैंडल था राइट में क्या था
सिंबल टेबल या लेफ्ट राइट कोई सा भी हो तो
उसमें क्या होगा वो एरर हैंडलर को रिपोर्ट
करेगा कि यहां पे क्या हो रहा था कि मैं
ये एक्सपेक्ट कर रहा था लेक्स एनालाइजर से
कि मुझे कौन सा टोकन मिलना चाहिए
असाइनमेंट ऑपरेट दैट मींस इक्वल टू लेकिन
मिला क्या प्लस तो ये कौन सी एरर होगी
सिंटेक्स एरर लेकिन यहां कोई भी एरर आए
आपका जो कंपाइलेशन का प्रोसेस है वो स्टॉप
नहीं होगा क्योंकि कंपाइलर की डेफिनेशन
क्या होती है कंपाइलर पूरे प्रोग्राम को
स्कैन करके जो हैरर शो करता है ओके तो
यहां प्रोग्राम स्टॉप नहीं होगा अब वो
नेक्स्ट उस पे जाएगा तो दैट मींस और उसके
बाद हां एक इंपॉर्टेंट चीज जो बहुत ही
इंपॉर्टेंट है वो लेट्स सपोज यहां कोई
सिंटेक्स एरर आ गई ओके ये फिर पार्सर क्या
करेगा एरर हैंडल को इफॉर्म करेगा कि यहां
पे एक एरर आई है तो ये बताएगा अभी कि
अच्छा कौन सी एरर है एरर ये है कि मैं
यहां एक्सपेक्ट कर रहा था कि मुझे इक्वल
टू ऑपरेटर मिले लेकिन यहां क्या मिला आपका
प्लस तो एरर हैंडलर क्या करेगा उसको नोट
डाउन कर लेगा और उसके बाद एरर हैंडलर
किससे पूछेगा लेक्सिक एनालाइजर से कि राइट
नाउ व्हाट इज योर करंट पोजीशन दैट मींस
करंट पोजीशन का मतलब क्या हुआ ये क्या है
ये रो है और ये क्या है आपका कॉलम है ओके
तो ये रो नंबर वन में है और कॉलम नंबर
लेट्स सपोज 10 में है फाइन लेट्स अजूम ये
हम सिचुएशन ले रहे हैं तो क्यों जब हम
प्रोग्राम को कंपाइल करते हैं प्रैक्टिकली
अगर आपने कोई प्रोग्राम लिखा होगा उसको जब
कंपाइल करते हैं तो क्या सारी एरर शो करता
है एक साथ और साथ ही साथ ये भी बताता है
कि अच्छा इस लाइन में है और इस कॉलम मतलब
इस रो नंबर पे इस कॉलम में है तो लास्ट
पॉइंट जो ये है फिफ्थ बाकी हम दोनों पे
आते हैं अभी लेक्सिक एनालाइजर हेल्प्स इन
गिविंग एरर मैसेज बाय प्रोवाइड रो नंबर
एंड कॉलम नंबर ये बहुत ही इंपॉर्टेंट है
ओके अगर कोई भी सिंटेक्स एरर आती है तो
प्रोग्राम का जो कंपाइलेशन है वो कभी भी
स्टॉप नहीं होगा बाकी आगे ही क्योंकि पूरा
प्रोग्राम ये स्कैन करेगा जितने भी इसमें
कैरेक्टर जो यूजर ने लिखे क यूजर को थोड़ी
ना पता है कि यहां रूल क्या है हो सकता है
वो रूल के अलावा भी कुछ लिख दे तो
सिंटेक्स एरर आ जाएगी लेकिन ना तो यहां ये
स्टॉप होगा पास्ट ी जनरेट करना ना लेक्स
एलाइजर स्कैन करना रुकेगा अब नेक्स्ट ओके
लेट्स सपोज यहां इसको पॉ इसको नोट डाउन
कौन करेगा एरर हैंडलर और ये इंफॉर्मेशन रो
नंबर कॉलम नंबर कौन भेजेगा एरर हैंडलर को
लेक्सिक एनालाइजर सिंटेक्स एनालाइजर सिर्फ
एरर भेजेगा कि सिंटेक्स एरर आई है लेक्सिक
एनालाइजर क्या करेगा इसको बताएगा कि इस रो
में इस कॉलम में ये एरर है तो एरर हडर
उसको नोट डाउन कर लेगा और एक साथ सारे एरर
देगा अब लेट्स सपोज ये स्कैनिंग स्टार्ट
हुई और सेकंड रो में भी चला गया यहां भी
ये टोकन आ गया ये टोकन आ गया उस हिसाब से
क्या हो रहा है
ये आपकी ट्री एक्सपेंड होते होते ऐसे चली
आ रही है ओके ये ट्री एक्सपेंड हो रही है
इसमें वो इतना इंपोर्टेंट नहीं समझना कैसे
ये ट्री कंस्ट्रक्ट होगई ये पूरा अपना एक
सेपरेट चैप्टर है वहा हम लोग डिस्कस
करेंगे और करते करते करते हम लोग यहां
पहुंचे लेट्स सपोज हम लाइन नंबर 10 और
यहां पे इस समय लेट्स सपोज करंट पोजीशन
हमारी ये कि लाइन नंबर 10 और कॉलम नंबर
लेट्स सपोज 15 प हम पहुंचे अब यहां कोई
एरर आ गई लेट्स सपोज वो सिचुएशन यहां है
यहां ये एरर आ गई ओके ये सिंटेक्स अजूम कर
रहे हैं तो क्या होगा फिर से यही सेम
सिनेरियो स्टार्ट होगा अच्छा इस पर्टिकुलर
लाइन मतलब यहां पे एक एरर मिली है जो कि
सिंटेक्स एरर है जो भी वो एक्सपेक्ट कर
रहा होगा सिंटेक्स एनालाइजर कि हमें ये
मिलना चाहिए और टोकन कोई गलत आ गया तो
इसका मतलब फिर से क्या करेगा एरर हैंडलर
को ये रिपोर्ट करेगा कि यह एक सिंटेक्स
एरर मिली है और उसके बाद एरर हैंडलर
लेक्सिक एलाज से पूछे ग अच्छा इस टाइम
करंट पोजीशन क्या है तो ये बताएगा मैं रो
नंबर 10 और कॉलम नंबर 15 पे प्रेजेंट हो
तो वो क्या करेगा उसको नोट डाउन कर लेगा
ये हो गया ये हो गया सिंटेक्स एनालाइजर और
लेक्स एनालाइजर की स्टोरी अब एक और आपका
जो है क्या कहते हैं सिमटिक एनालाइजर भी
सिमटिक एनालाइजर कब एक्टिव होता है वो
एक्टिव होगा जैसे ही आपका ये
आइडेंटिफिकेशन
[संगीत]
मतलब जैसे ही ये टोकन जनरेट हुआ और पास्ट
री कंस्ट्रक्ट हुई साथ ही साथ सिमटिक
एनालाइजर भी आ गया स्टोरी में ओके तो जैसे
ही वो स्टोरी में आया तो अब ये चेक करेगा
कहां से ये आईडी कहां स्टोर है सिंबल टेबल
में लेट्स सपोज ये आपका सिंबल टेबल है ओके
और यहां लेट्स सपोज इसका आईडी जोक टोकन
जनरेट हो रहा था इसका इस तरीके से हम लोग
डिस्कस किया आईडी कॉमा वन ऐसे हम लोग
डिस्कस कि ये टोकन है कंपलीटली ये आपका
आइडेंटिफिकेशन नेम और उसकी एट्रिल तो ये
वन है और ये वेरिएबल नेम लेट्स सपोज x था
और ये इसका
जो टाइप था क्या वो फ्लोट था ये डिस्कस
किए हम लोग प्रीवियस वीडियो में यह आएगा
और वो चेक करेगा अच्छा ये मैच कर रहा है
अब लेट्स सपोज यहां आते आते यहां पे आ गए
ओके यहां पे कोई एक आइडेंटिफिकेशन
य क्या आपका इंटी जर है तो जैसे ही इंटी
जर लिखेगा यूजर तोय इंजर स्टोर भी करेगा
सिकल लाइजर अब य जब इसकी चेकिंग होगी
अच्छा यह तो इंटी जर है लेकिन य प्रॉब्लम
क्या आगी आईडी च इ इ ट तो अगर आपका लेफ्ट
हैंड साइड में यह अगर फ्लोट है तो राइट
हैंड साइड में भी फ्लोट होना चाहिए लेकिन
य चेक करेगा इंजर तोय क्या होगा टाइप मिस
मैच लेकिन दो तरह का आपका टाइप कन्वर्जन
होता है इंपलीसिट और एक्सप्लिसिट तो
फ्लोट फ्लोट और इंट में अगर कंपेयर करेंगे
तो इंट की साइज जो है फ्लोट से कम होती है
तो इसको हम इंपलीसिटली क्या कर सकते हैं
स्टोर कर सकते हैं लेट्स अजूम फ्लोट का जो
है 4 बाइट का है और आपका ये इंटी जर ू
बाइट का है ये अजमन है ओके तो अगर यहां पे
इस तरीके से दिया हुआ है कि अच्छा ठीक है
इंट कॉम फ्लोट में स्टोर करा लेंगे कोई भी
डेटा लॉस नहीं होगा तो ये इंपलीसिट
कन्वर्जन तो हो जाएगा लेकिन अगर ये उल्टा
हो गया यहां पे आपका इंट है ओके और यहां
क्या आपका फ्लोट है तो ये फर बाइट है और ू
बाइट इसमें स्टोर करेंगे तो डेटा लॉस हो
सकता है तो यहां क्या करेगा सिमटिक
एनालाइजर ओके सट लेट्स सपोज वो हम इस टाइम
100 लाइन में यहां पे 100 लाइन और लेट्स
सपोज कॉलम नंबर लेट्स सपोज 11 है ये
सिचुएशन है ये 100 था और ये 11 इस टाइम
करंट पोजीशन ये है तो यहां हमको मिला
फ्लोट और इसका लेफ्ट हैंड साइड में टाइप
क्या है आपका इंटी जर तो सिमटिक एनालाइजर
क्या करेगा एरर हैंडलर को इफॉर्म करेगा कि
सिमटिक एरर एरर क्या है एरर हैंडलर पूछेगा
कि एरर कौन सी है तो बताएगा कि ये टाइप
मिस मैच हो गया ओके उसके बाद बाद एरर
हैंडल किससे पूछेगा लेक्सिक लेजर कि कहां
पे होगी मतलब व्हाट इज योर करंट पोजीशन तो
पूछेगा तो ये बता देगा कि अच्छा 100 रो
में है और 11थ कॉलम है तो ये आपको जो है
एरर एरर हडर क्या करेगा उस चीज को नोट
डाउन करेगा प्रोग्राम का जो कंपाइलेशन है
यानी कंपाइलर कभी भी स्टॉप नहीं होगा वो
पूरे प्रोग्राम को स्कैन करेगा वो सब कुछ
स्कैन करके फाइनली लिस्ट ऑफ एरर जो है एरर
हैंडलर दे देगा अच्छा इस लाइन में इस कॉलम
में ये एरर है इस लाइन में इस कॉलम में ये
एरर है तो ये थी पूरी स्टोरी किस तरीके से
एनालाइजर पार्सर और सिमटिक एनालाइजर एक
दूसरे से कम्युनिकेट करते हैं अब कुछ
इंपॉर्टेंट जो तीसरा और चौथा उसको एक बार
रीड कर लेते हैं फिर एग्जांपल डिस्कस करते
हैं तो लेक्सिक एलाइजर क्या होता है
स्कैनर क्या करता है वो प्रोग्राम को
स्कैन करेगा मीनिंगफुल वर्ड में कन्वर्ट
करेगा जिसको हम टोकन कहते हैं टोकन क्या
होता है आइडेंटिफिकेशन
करता है वो रिमूव करता है अभी हम इसपे
एग्जांपल डिस्कस करते हैं तो और ज्यादा
क्लेरिटी आएगी कैसे वो टोकन में कन्वर्ट
होगा तो ये एलिमिनेट कर देगा लेक्सिक
एनालाइजर एलिमिनेट्स वाइट स्पेस कैरेक्टर
लाइक ब्लैंक एंड टैब अगर कहीं ब्लैंक है
और कहीं अगर हमने टैब जो है बटन प्रेस
किया हुआ है प्रोग्राम लिखते हो वो सारा
स्पेस क्या करता है एलिमिनेट कर देता है
तो ये था लेक्सिक लाइजर के बारे में बेसिक
लेक्सिक लाइजर क्या होता है स्कैनर होता
है मीनिंगफुल वर्ड्स में कन्वर्ट करता है
जिसको टोकन कहते हैं कमेंट लाइन को रिमूव
करता है और आपका वाइट स्पेस को रिमूव करता
है और सबसे इंपोर्टेंट जो था वो फिफ्थ
पॉइंट है फिफ्थ पॉइंट क्या है कि आपका ये
एरर जो आपकी आती है जब कंपाइलेशन के बाद
जो एरर आती है वो कौन बताता है किस लाइन
और किस कॉलम में है वो आपका लैक्सिकल
एनालाइजर बताता है तो ये था ठीक है
बेसिक्स की क्या है लेक्सिक एनालाइजर उसकी
डेफिनेशन उसकी वर्किंग अब हम लोग डिस्कस
करेंगे इससे रिलेटेड प्रॉब्लम कि कैसे
लक्सल एनालाइजर प्रोग्राम को स्कैन करके अ
और उसको टोकन में कन्वर्ट करता है ओके
5.0 / 5 (0 votes)