हेलो दोस्तों !
आज की इस पोस्ट में हम C language के compiler को समझेंगे। की यह क्या है क्या करता है कैसे करता है ? तो दोस्तों पोस्ट को अंत तक जरूर पढ़े ताकि आप C लैंग्वेज के कम्पाइलर को अच्छी तरह समझ सकें।
इस पोस्ट के मुख्य टॉपिक्स निन्म है :-
- Introduction of C language compiler.
- Compilation process of C program.
1.Introduction of C language compiler :-
तो दोस्तों सबसे पहले हम C language compiler का introduction देख लेते है की यह क्या होता है ?
दोस्तों C लैंग्वेज के कम्पाइलर को जानने के लिए आपको कम्पाइलर को समझना पड़ेगा की कम्पाइलर क्या होता है ? कम्पाइलर एक ऐसा सॉफ्टवेयर होता है जो हाई लेवल प्रोग्रामिंग लैंग्वेज में लिखे कोड को low लेवल कोड या मशीन कोड में translate करता है। यानी की ऑब्जेक्ट कोड या मशीन कोड में कन्वर्ट करता है।
अब आपके दिमाग में एक सवाल उठेगा की हाई लेवल कोड को मशीन कोड में कन्वर्ट करने की क्या जरुरत है ? तो इसका जवाब है की कंप्यूटर केवल बाइनरी (0 , 1 ) कोड को ही समझता है। लेकिन जो हाई लेवल लैंग्वेज का कोड होता है वह बाइनरी कोड में नहीं होता है जिसके कारण कंप्यूटर उस कोड को नहीं समझ पता है इसलिए हमें उस हाई लेवल कोड को कम्पाइलर की मदद से low लेवल कोड या मशीन कोड में कन्वर्ट करना पड़ता है।
दोस्तों इसी प्रकार C लैंग्वेज का कम्पाइलर भी होता है। C लैंग्वेज का कम्पाइलर C लैंग्वेज में लिखें कोड को मशीन कोड में कन्वर्ट करता है। दोस्तों किसी भी हाई लेवल प्रोग्रामिंग लैंग्वेज के एक से ज्यादा कम्पाइलर हो सकते है जैसे C लैंग्वेज में लिखें कोड को compile करने के लिए आप इनमें से किसी भी कम्पाइलर का यूज़ कर सकते है। Turbo C, Tiny C Compiler, GCC, Clang, Portable C Compiler.
दोस्तों C लैंग्वेज कम्पाइलर विशेष रूप से C प्रोग्रामिंग में लिखे कोड को compile करने के लिए डिज़ाइन किये जाते है। हर प्रोग्रामिंग लैंग्वेज के लिए अलग - अलग compilers होते है। पर ऐसा क्यों ? ऐसा इसलिए होता है क्योंकि हर प्रोग्रामिंग लैंग्वेज के syntax या कोड लिखने का तरीका अलग - अलग होता है। जैसे किसी मैसेज को प्रिंट कराने के लिए C लैंग्वेज में printf("Hello"); का यूज़ होता है तो वही C++ में cout<<"Hello"; का यूज़ होता है।
C लैंग्वेज के कम्पाइलर को C लैंग्वेज के सारे रिज़र्व keywords, pre-processors, header files, inbuilt functions जैसे सभी चीजों का ज्ञान होता है। की वो किस काम के लिए यूज़ किये जा रहे है। उसी के आधार पर C लैंग्वेज का compiler C लैंग्वेज में लिखें कोड को ऑब्जेक्ट कोड या मशीन कोड में कन्वर्ट करता है। ताकि हमारा कंप्यूटर उस कोड को समझ सके।
2.Compilation process of C program :-
दोस्तों अब हम समझ लेते है की एक C लैंग्वेज में लिखें कोड को compiler कैसे मशीन कोड में कन्वर्ट करता है ?
दोस्तों जैसा की आप ऊपर डायग्राम में देख सकते है C प्रोग्राम का compilation इन चार स्टेप्स में पूरा होता है -
- Pre-processing
- Compiling
- Assembling
- Linking
1.Pre-processing :-
दोस्तों pre-processing का काम pre-processors करते है। इस प्रोसेस में pre-processor सोर्स कोड से सारे comments को हटा देता है और # चिन्ह से शुरू होने वाले सभी स्टेटमेंट को प्रोसेस करता है। जैसे #include #define आदि को और साथ में जो हैडर फाइल आप include किये है अपने प्रोग्राम में तो उसकी जगह पर उस फाइल का कंटेंट लिख देता है। इसी प्रोसेस को pre-processing कहते है। इसके बाद यह सोर्स कोड कम्पाइलर के पास जाता है।
2.Compiling :-
दोस्तों कंपाइलेशन प्रोसेस को कम्पाइलर के द्वारा किया जाता है। कम्पाइलर pre-processor के द्वारा प्रोसेस सोर्स कोड को असेंबली कोड में कन्वर्ट या ट्रांसलेट करता है। और फिर इस कोड को असेम्बलर के पास भेजा जाता है। क्योंकि अभी भी हमारा प्रोग्राम रन होने की स्टेज में नहीं पहुँचा है।
3.Assembling :-
दोस्तों असेम्बलिंग की प्रोसेस को असेम्बलर के द्वारा पूरा किया जाता है। असेम्बर कम्पाइलर द्वारा compile किये गए असेंबली कोड को ऑब्जेक्ट कोड या मशीन कोड में कन्वर्ट करता है इसी प्रोसेस को असेम्बलिंग कहते है। इसके बाद इस ऑब्जेक्ट कोड को लिंकर के पास भेजा जाता है।
4.Linking :-
दोस्तों लिंकिंग की प्रोसेस को लिंकर के द्वारा पूरा किया जाता है। लिंकर असेम्बलर द्वारा assemble किये गए ऑब्जेक्ट कोड को लाइब्रेरी फाइल्स से लिंक करता है और एक नई फाइल बनाता है जिसका एक्सटेंशन .exe होता है। इसे ही executable file भी कहते है। यही हमारा सॉफ्टवेयर होता है जिसको हमारा कंप्यूटर समझ सकता है और उसके अनुसार कार्य करता है।
दोस्तों लिंकिंग की प्रोसेस इसलिए की जाती है ताकि ऑब्जेक्ट कोड में उन फंक्शन की definition को ऐड किया जा सके जो इस प्रोग्राम में यूज़ किये गए है। जैसा की आपको पता होगा की pre-define फंक्शन हम अपने प्रोग्राम में यूज़ करते है। जिनका डिक्लेरेशन हैडर फाइल्स में होता है और इन फंक्शन्स की definition लाइब्रेरी फाइल्स के रूप में pre compiled होती है। इन्हीं लाइब्रेरी फाइल्स को लिंकिंग की प्रोसेस में ऑब्जेक्ट कोड से जोड़ा जाता है।
तो दोस्तों कुछ इस प्रकार एक C प्रोग्राम compile होता है और सोर्स कोड से मशीन कोड में कन्वर्ट होता है और फिर सॉफ्टवेयर बनता है।
इन पोस्ट को भी पढ़े :-
- Use of main function in C program.
- Create compile and run first C program.
- Program testing and debugging in C.
Author :- तो दोस्तों अब हमारी यह पोस्ट ख़त्म होती है हम आशा करते है की आपको हमारी यह पोस्ट जरूर पसंद आई होगी। आप C language के compiler को अच्छी तरह समझ गए होंगे। तो दोस्तों आज के लिए बस इतना ही फिर मिलेंगे किसी और पोस्ट में तब तक के लिए अलविदा !
0 Comments
Do not enter any spam comments please.