हेल्लो दोस्तों! आज हम इस पोस्ट में compiler design में Symbol Table in Hindi (सिंबल टेबल क्या है?) के बारें में पढेंगे और इसके operations को भी देखेंगे, तो चलिए start करते हैं:-
Symbol Table in Hindi
Symbol Table सूचना को स्टोर करने के लिए compilers के द्वारा create और maintain किया गया एक महत्वपूर्ण data structure है. इसमें बहुत सारीं entities जैसे:- variable name, function name, objects, classes और interfaces आदि को स्टोर किया जाता है. symbol table को एक compiler के analysis और synthesis parts दोनों के द्वारा प्रयोग किया जाता है.
एक symbol table का प्रयोग निम्नलिखित उद्देश्यों के लिए किया जाता हैं:-
- इसका प्रयोग सभी entities के name को एक structured form में स्टोर करने के लिए किया जाता है.
- यह verify करता है कि क्या एक variable को declare किया गया है या नहीं.
- assignments और expressions को verify करके type checking को implement करने में इसका use किया जाता है.
- इसका प्रयोग एक name के scope को निर्धारित करने में किया जाता है.
symbol table एक table होती है जो या तो linear हो सकती है या फिर hash table हो सकती है. यह प्रत्येक name के लिए निम्नलिखित format में entry को maintain करती हैं:-
<symbol name, type, attribute>
उदाहरण के लिए – यदि एक symbol table को निम्नलिखित variable declaration के बारे में information को स्टोर करना है-
static int interest;
तो यह entry को निम्न प्रकार स्टोर करेगा:-
<interest, int, static>
Implementation –
यदि छोटी मात्रा के data को handle करने के लिए compiler का उपयोग किया जाता है, तो symbol table को unordered list में implement किया जा सकता है.
एक symbol table को निम्नलिखित तकनीकों में implement किया जा सकता है:-
- Linear (sorted or unsorted) list
- Hash table
- Binary search tree
सिंबल टेबल को ज्यादातर hash table की तरह implement किया जाता है.
operations –
सिंबल टेबल निम्नलिखित operations प्रदान करता है:-
1:- Insert() –
- insert operation का प्रयोग ज्यादातर analysis phase में किया जाता है जब tokens को identify किया जाता है और names को table में स्टोर किया जाता है.
- insert() operation का प्रयोग symbol table में information को insert करने के लिए किया जाता है.
- यह symbol और इसकी value को argument के रूप में लेता है.
उदाहरण के लिए:- int x;
compiler इसे निम्न प्रकार process करेगा:-
insert(x, int).
2:- lookup() –
lookup () ऑपरेशन का उपयोग symbol table में name को search करने के लिए किया जाता है, यह निम्नलिखित को निर्धारित करता है:-
- table में symbol मौजूद है या नहीं.
- symbol को use करने से पहले उसे declare किया गया है या नहीं.
- यह check करता है कि name को scope में use किया गया है.
- symbol को initialize किया गया है या नही.
- यह check करता है कि symbol को बहुत बार declare किया गया है.
lookup() function का basic format निम्नलिखित है:-
lookup (symbol)
निवेदन:- अगर आपके लिए यह आर्टिकल helpful रहा हो तो इसे अपने friends के साथ जरुर share कीजिये और आपके जो भी questions हैं आप उन्हें नीचे कमेंट कर द्वारा बताइए. thanks.