मैं प्रोग्रामिंग में शुरुआत कर रहा हूं और मेरे पास शब्दावली पर अच्छी पकड़ नहीं है। मैं जानना चाहूंगा कि क्या सी या सी ++ जैसी संकलित भाषा में लिखा गया स्रोत कोड एक कार्यक्रम माना जाता है? यदि नहीं, तो क्या कोई समझा सकता है कि क्यों?
मैं प्रोग्रामिंग में शुरुआत कर रहा हूं और मेरे पास शब्दावली पर अच्छी पकड़ नहीं है। मैं जानना चाहूंगा कि क्या सी या सी ++ जैसी संकलित भाषा में लिखा गया स्रोत कोड एक कार्यक्रम माना जाता है? यदि नहीं, तो क्या कोई समझा सकता है कि क्यों?
जवाबों:
कार्यक्रम के लिए विकिपीडिया प्रविष्टि देखें : (मैंने बोल्ड जोड़ा है )
कंप्यूटर प्रोग्राम निर्देशों का एक संग्रह है जो कंप्यूटर द्वारा निष्पादित किए जाने पर एक विशिष्ट कार्य करता है । कंप्यूटर को कार्य करने के लिए कार्यक्रमों की आवश्यकता होती है, और आमतौर पर एक केंद्रीय प्रसंस्करण इकाई में कार्यक्रम के निर्देशों को निष्पादित करता है।
एक कंप्यूटर प्रोग्राम आमतौर पर एक प्रोग्रामिंग प्रोग्राम में एक कंप्यूटर प्रोग्रामर द्वारा लिखा जाता है। स्रोत कोड के मानव-पठनीय रूप में कार्यक्रम से , एक कंपाइलर मशीन कोड को प्राप्त कर सकता है - एक ऐसा निर्देश जिसमें एक निर्देश शामिल होता है जिसे कंप्यूटर सीधे निष्पादित कर सकता है
इसलिए, "प्रोग्राम" उन निर्देशों का समूह है जो कंप्यूटर निष्पादित करता है, और "स्रोत कोड" उन निर्देशों का मानव-पठनीय संस्करण है।
मैं जानना चाहूंगा कि क्या सी या सीपीपी जैसी संकलित भाषा में स्रोत कोड को एक कार्यक्रम माना जाता है?
हाँ यही है।
परंतु
इस विचारधारा के साथ खतरा यहां पहुंच रहा है: "कंप्यूटर मेरे प्रोग्राम को निष्पादित करता है, मैं अपने प्रोग्राम को [उदा] सी में लिखता हूं, उस सोर्स कोड को कंप्यूटर को निर्देश देता हूं"।
और यह भी हम में से कई लोगों ने 20 वीं शताब्दी में कई दशकों के लिए सोचा था। पिछले एक दशक में हमने जो सीखा है, वह यह है कि अन्य प्रोग्रामर स्रोत कोड के प्राथमिक दर्शक हैं । तो हाँ, वह स्रोत कार्यक्रम है, उसी तरह जैसे आप थिएटर में एक कार्यक्रम प्राप्त करेंगे, जो अन्य लोगों को बताता है कि क्या हो रहा है। स्रोत कोड की सुंदरता यह है कि न केवल यह कार्यक्रम है, यह कंप्यूटर के लिए निर्देशों का एक सेट भी है ...
यह है या नहीं, संदर्भ पर निर्भर करता है। इस तरह से इसके बारे में सोचो। मैं भूल गया कि अवधारणा के लिए औपचारिक नाम क्या है, लेकिन भाषा का एक सिद्धांत है जो कहता है कि शब्दों का अर्थ है कि यह वर्णन करें कि कुछ नहीं है, लेकिन यह क्या नहीं है । एक लाल सेब लाल नहीं है क्योंकि यह ठीक है, लाल है, लेकिन क्योंकि यह नीला नहीं है, हरा नहीं है, आदि इस बात को अनदेखा करते हैं कि यह सच है या नहीं, लेकिन यह मान लें कि यह एक दूसरे के लिए है और उस संदर्भ में सवाल के बारे में सोचें।
इसलिए जब हम उस अवधारणा के बारे में सोचते हैं, तो हम अपने स्रोत कोड की तुलना एक घर के ब्लूप्रिंट से कर सकते हैं। यदि आप अन्य ब्लूप्रिंट के ढेर से बाहर ब्लूप्रिंट देख रहे हैं, और पूछें "क्या यह एक घर है", और अन्य ब्लूप्रिंट वाणिज्यिक भवनों, पुलों, आदि के लिए हैं, तो उत्तर हां होगा। क्योंकि ब्लूप्रिंट उस सभी सामान का प्रतिनिधित्व नहीं करता है, और घर का पहलू वह है जो इसे अन्य ब्लूप्रिंट के खिलाफ अलग करता है।
हालांकि, स्पष्ट रूप से एक घर का एक खाका लकड़ी और ड्राईवाल से बना एक वास्तविक घर के समान नहीं है, जिसमें आप खड़े हो सकते हैं। ऐसे संदर्भ हैं जहां खाका और वास्तविक घर के बीच अंतर सार्थक है। योजना और सुपुर्दगी के बीच अंतर है।
उसी तरह किसी संकलित भाषा में प्रोग्राम का सोर्स कोड ब्लूप्रिंट की तरह होता है, अगर आप इसकी तुलना लाइब्रेरी, कर्नेल मॉड्यूल आदि से कर रहे हैं, तो सोर्स कोड और प्रोग्राम वैचारिक रूप से एक और एक ही हैं। लेकिन अगर आप देख रहे हैं कि सॉफ्टवेयर को कैसे संकलित किया गया है, डिजाइन किया गया है और तैनात किया गया है, तो दोनों समान नहीं हैं। बस फिर से, योजना और वितरण के बीच अंतर है।
tl; dr: कभी-कभी जो कुछ होता है, और जो इसका प्रतिनिधित्व करता है, उसे एक ही चीज़ माना जाता है, लेकिन दूसरी बार वे नहीं होते हैं।
सोर्स कोड कोड की मूल लाइनों (मनुष्यों द्वारा लिखित) के लिए एक सामान्य शब्द है। अन्य प्रकार के कोड जो स्रोत नहीं हैं, अनुवाद द्वारा या किसी अन्य प्रोग्राम द्वारा बनाए जा सकते हैं।
बौद्धिक संपदा और भी व्यापक है, और इसमें स्रोत कोड और अन्य कोड या डेटा दोनों शामिल हो सकते हैं।
एक कार्यक्रम अपनी पूर्णता में अन्य कोड (स्रोत या अन्य) से प्रतिष्ठित है। एक प्रोग्राम कोड है जो पर्याप्त रूप से पूर्ण है कि इसे चलाया जा सकता है (या चलाने का इरादा है)। सभी कोड (स्रोत या अन्यथा) चलाने के लिए पर्याप्त पूर्णता का प्रतिनिधित्व नहीं करते हैं। उदाहरण के लिए, पुस्तकालयों को अन्य कोड के साथ जोड़ा जाता है और उनका उपयोग किया जाता है, और इसलिए उन्हें आमतौर पर एक कार्यक्रम नहीं माना जाएगा क्योंकि वे (नहीं होना चाहिए) चलाया जा सकता है।
यह पूर्णता कभी-कभी होने का मतलब है main
, जो एक ऑपरेटिंग सिस्टम द्वारा प्रोग्राम के लिए प्रवेश बिंदु के रूप में उपयोग किया जाता है
सामान्यतया, जब कोई प्रोग्राम चल रहा होता है, तो उसे एक प्रक्रिया कहा जाता है।
स्रोत कोड है पसंदीदा सॉफ्टवेयर जिस पर के रूप मानव सॉफ्टवेयर डेवलपर्स रहे हैं काम कर रहे । अंतर्दृष्टि यह है कि सॉफ्टवेयर विकास एक सामाजिक प्रक्रिया है, इसलिए स्रोत कोड एक सामाजिक धारणा है। आप ज्यादातर मानव (आपके साथी डेवलपर्स, या यहां तक कि एक ही कार्यक्रम में कुछ महीनों में काम कर रहे हैं) के लिए स्रोत कोड लिखते हैं, कंप्यूटर के लिए नहीं। सी में कोड किए गए प्रोग्राम के लिए, यह अक्सर (लेकिन हमेशा नहीं) .c
सी फाइलें और .h
हेडर फाइलें होती हैं, लेकिन मेकफाइल भी स्रोत कोड है। लेकिन कभी-कभी, मेटाप्रोग्रामिंग तकनीकों का उपयोग किया जाता है: कुछ प्रोग्राम सी कोड उत्पन्न कर रहे हैं , और फिर इनपुटउस जनरेटर को सोर्स कोड माना जाता है (भले ही उस जनरेटर का आउटपुट C कोड हो)। दो उदाहरण: आप पार्सिंग समस्याओं के लिए कुछ पार्सर जनरेटर (जैसे कि जीएनयू बाइसन ) का उपयोग कर सकते हैं , फिर उस जनरेटर की इनपुट फ़ाइल स्रोत कोड है। या आप एक छोटे awk या gawk स्क्रिप्ट को कुछ sqlite डेटाबेस से निकालने के लिए लिख सकते हैं, कुछ डेटा जो कुछ जेनरेट किए गए हेडर में एक बड़ी घोषणा में बदल जाएगा ; तब उस डेटाबेस में सोर्स कोड होगा!.y
enum
इसके विपरीत एक कंप्यूटर प्रोग्राम इसे चलाने वाले कंप्यूटर से संबंधित है। यह आमतौर पर प्राप्त किया जाता है संकलन कुछ स्रोत कोड (कुछ में लिखा प्रोग्रामिंग भाषा है, और इन कर रहे हैं विनिर्देशों तकनीकी दस्तावेजों में अंग्रेजी में लिखा -see n1570 के लिए मसौदा C11 एक द्विआधारी में -, नहीं सॉफ्टवेयर उपकरण!) निष्पादन योग्य ।
मुफ्त सॉफ्टवेयर के बारे में भी पढ़ें । मौजूदा मुफ्त सॉफ्टवेयर परियोजनाओं के स्रोत कोड में गोता लगाएँ ( कुछ खोजने के लिए गीथूब या सोर्सफोर्ज देखें )।