प्रोग्रामिंग टूल: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 2: Line 2:
{{distinguish|प्रोग्रामेबल टूलींग}}
{{distinguish|प्रोग्रामेबल टूलींग}}
{{software development process}}
{{software development process}}
एक प्रोग्रामिंग टूल या सॉफ़्टवेयर डेवलपमेंट टूल एक [[कंप्यूटर प्रोग्राम]] है। जिसका उपयोग [[सॉफ्टवेयर डेवलपर]] अन्य प्रोग्राम और एप्लिकेशन बनाने, डीबग करने, बनाए रखने या अन्यथा समर्थन करने के लिए करते हैं। यह शब्द सामान्यतः अपेक्षाकृत सरल प्रोग्रामो को संदर्भित करता है। जिसे किसी प्रोग्राम को पूरा करने के लिए जोड़ा जा सकता है, जैसे कोई भौतिक वस्तु को सही करने के लिए कई हाथों का उपयोग कर सकता है। सबसे मूलभूत उपकरण एक [[स्रोत कोड संपादक]] और एक [[संकलक]] या [[दुभाषिया (कंप्यूटिंग)]] हैं | जिनका उपयोग सर्वव्यापी और निरंतर किया जाता है। भाषा, विकास पद्धति और व्यक्तिगत इंजीनियर के आधार पर अन्य उपकरणों का अधिक या कम उपयोग किया जाता है। जो अधिकांशतः एक असतत प्रोग्राम के लिए उपयोग किया जाता है। जैसे डिबगर या प्रोफाइलर उपकरण असतत प्रोग्राम हो सकते हैं, अलग से निष्पादित - अधिकांशतः [[कमांड लाइन]] से - या एक बड़े प्रोग्राम के भाग हो सकते हैं | जिसे एक एकीकृत विकास वातावरण (आईडीई) कहा जाता है। कई स्थितियों में, विशेष रूप से सरल उपयोग के लिए, उपकरण के अतिरिक्त सरल तदर्थ विधियों का उपयोग किया जाता है। जैसे डिबगर का उपयोग करने के अतिरिक्त प्रिंट डिबगिंग, प्रोफाइलर के अतिरिक्त मैन्युअल समय (समग्र प्रोग्राम या कोड के अनुभाग का) या बग को ट्रैक करना बग ट्रैकिंग सिस्टम के अतिरिक्त एक टेक्स्ट फ़ाइल या स्प्रेडशीट का उपयोग किया जाता है।
प्रोग्रामिंग टूल या सॉफ़्टवेयर डेवलपमेंट टूल एक [[कंप्यूटर प्रोग्राम]] है। जिसका उपयोग [[सॉफ्टवेयर डेवलपर]] अन्य प्रोग्राम और एप्लिकेशन बनाने, डीबग करने, बनाए रखने या अन्यथा समर्थन करने के लिए करते हैं। यह शब्द सामान्यतः अपेक्षाकृत सरल प्रोग्रामो को संदर्भित करता है। जिसे किसी प्रोग्राम को पूरा करने के लिए जोड़ा जा सकता है, जैसे कोई भौतिक वस्तु को सही करने के लिए कई हाथों का उपयोग कर सकता है। सबसे मूलभूत उपकरण [[स्रोत कोड संपादक]] और [[संकलक]] या [[दुभाषिया (कंप्यूटिंग)]] हैं | जिनका उपयोग सर्वव्यापी और निरंतर किया जाता है। भाषा, विकास पद्धति और व्यक्तिगत इंजीनियर के आधार पर अन्य उपकरणों का अधिक या कम उपयोग किया जाता है। जो अधिकांशतः असतत प्रोग्राम के लिए उपयोग किया जाता है। जैसे डिबगर या प्रोफाइलर उपकरण असतत प्रोग्राम हो सकते हैं, अलग से निष्पादित - अधिकांशतः [[कमांड लाइन]] से - या बड़े प्रोग्राम के भाग हो सकते हैं | जिसे एकीकृत विकास वातावरण (आईडीई) कहा जाता है। कई स्थितियों में, विशेष रूप से सरल उपयोग के लिए, उपकरण के अतिरिक्त सरल तदर्थ विधियों का उपयोग किया जाता है। जैसे डिबगर का उपयोग करने के अतिरिक्त प्रिंट डिबगिंग, प्रोफाइलर के अतिरिक्त मैन्युअल समय (समग्र प्रोग्राम या कोड के अनुभाग का) या बग को ट्रैक करना बग ट्रैकिंग सिस्टम के अतिरिक्त टेक्स्ट फ़ाइल या स्प्रेडशीट का उपयोग किया जाता है।


टूल और एप्लिकेशन के बीच का अंतर अस्पष्ट है। उदाहरण के लिए, डेवलपर्स हर समय उपकरण के रूप में सरल डेटाबेस (जैसे एक [[फ्लैट फ़ाइल डेटाबेस]]) का उपयोग करते हैं। चूँकि एक पूर्ण विकसित डेटाबेस को सामान्यतः अपने आप में एक एप्लिकेशन या सॉफ़्टवेयर के रूप में माना जाता है। कई वर्षों तक, कंप्यूटर-सहायता प्राप्त सॉफ़्टवेयर इंजीनियरिंग (प्रकरण) उपकरणों की मांग की गई थी। सफल उपकरण मायावी सिद्ध हुए हैं। एक मायने में, प्रकरण टूल ने रचना और आर्किटेक्चर समर्थन पर जोर दिया, जैसे कि यूएमएल के लिए किन्तु इनमें से सबसे सफल उपकरण आईडीई हैं।
टूल और एप्लिकेशन के बीच का अंतर अस्पष्ट है। उदाहरण के लिए, डेवलपर्स हर समय उपकरण के रूप में सरल डेटाबेस (जैसे [[फ्लैट फ़ाइल डेटाबेस]]) का उपयोग करते हैं। चूँकि पूर्ण विकसित डेटाबेस को सामान्यतः अपने आप में एप्लिकेशन या सॉफ़्टवेयर के रूप में माना जाता है। कई वर्षों तक, कंप्यूटर-सहायता प्राप्त सॉफ़्टवेयर इंजीनियरिंग (प्रकरण) उपकरणों की मांग की गई थी। सफल उपकरण मायावी सिद्ध हुए हैं। एक मायने में, प्रकरण टूल ने रचना और आर्किटेक्चर समर्थन पर जोर दिया, जैसे कि यूएमएल के लिए किन्तु इनमें से सबसे सफल उपकरण आईडीई हैं।


== प्रोग्रामिंग टूल्स का उपयोग ==
== प्रोग्रामिंग टूल्स का उपयोग ==


=== मानव से कंप्यूटर भाषा में अनुवाद ===
=== मानव से कंप्यूटर भाषा में अनुवाद ===
आधुनिक कंप्यूटर बहुत जटिल हैं और उन्हें उत्पादक रूप से प्रोग्राम करने के लिए विभिन्न सार की आवश्यकता होती है। उदाहरण के लिए, प्रोग्राम के बाइनरी प्रतिनिधित्व को लिखने के अतिरिक्त एक प्रोग्रामर सी, जावा या पायथन जैसी [[प्रोग्रामिंग भाषा]] में प्रोग्राम लिखता है। असेंबली लैंग्वेज असेम्बलर्स, कंपाइलर्स और [[लिंकर (कंप्यूटिंग)]] जैसे प्रोग्रामिंग टूल एक प्रोग्राम को मानव द्वारा लिखने योग्य और पठनीय स्रोत भाषा से बिट्स और बाइट्स में अनुवादित करते हैं | जिन्हें कंप्यूटर द्वारा निष्पादित किया जा सकता है। दुभाषिए वांछित व्यवहार उत्पन्न करने के लिए प्रोग्राम की तत्काल व्याख्या करते हैं।
आधुनिक कंप्यूटर बहुत जटिल हैं और उन्हें उत्पादक रूप से प्रोग्राम करने के लिए विभिन्न सार की आवश्यकता होती है। उदाहरण के लिए, प्रोग्राम के बाइनरी प्रतिनिधित्व को लिखने के अतिरिक्त प्रोग्रामर सी, जावा या पायथन जैसी [[प्रोग्रामिंग भाषा]] में प्रोग्राम लिखता है। असेंबली लैंग्वेज असेम्बलर्स, कंपाइलर्स और [[लिंकर (कंप्यूटिंग)]] जैसे प्रोग्रामिंग टूल प्रोग्राम को मानव द्वारा लिखने योग्य और पठनीय स्रोत भाषा से बिट्स और बाइट्स में अनुवादित करते हैं | जिन्हें कंप्यूटर द्वारा निष्पादित किया जा सकता है। दुभाषिए वांछित व्यवहार उत्पन्न करने के लिए प्रोग्राम की तत्काल व्याख्या करते हैं।


ये प्रोग्राम कई अच्छी तरह से परिभाषित और दोहराए जाने वाले प्रोग्राम करते हैं | जो मानव द्वारा किए जाने पर समय लेने वाली और त्रुटि-प्रवण होंगे, जैसे किसी प्रोग्राम के कुछ भागो को स्मृति में रखना और एक लिंकर के रूप में प्रोग्राम के कुछ भागो के बीच संदर्भों को सही करना होता है। दूसरी ओर ऑप्टिमाइज़िंग कंपाइलर निष्पादन की गति या किसी प्रोग्राम की अन्य विशेषताओं को उत्तम बनाने के लिए स्रोत कोड पर जटिल परिवर्तन कर सकते हैं। यह एक प्रोग्रामर को उच्च स्तर पर अधिक ध्यान केंद्रित करने की अनुमति देता है। जिस मशीन पर वह चल रहा है। उसके विवरण के बारे में चिंता किए बिना एक प्रोग्राम के वैचारिक स्वरूप होते है।
ये प्रोग्राम कई अच्छी तरह से परिभाषित और दोहराए जाने वाले प्रोग्राम करते हैं | जो मानव द्वारा किए जाने पर समय लेने वाली और त्रुटि-प्रवण होंगे, जैसे किसी प्रोग्राम के कुछ भागो को स्मृति में रखना और लिंकर के रूप में प्रोग्राम के कुछ भागो के बीच संदर्भों को सही करना होता है। दूसरी ओर ऑप्टिमाइज़िंग कंपाइलर निष्पादन की गति या किसी प्रोग्राम की अन्य विशेषताओं को उत्तम बनाने के लिए स्रोत कोड पर जटिल परिवर्तन कर सकते हैं। यह प्रोग्रामर को उच्च स्तर पर अधिक ध्यान केंद्रित करने की अनुमति देता है। जिस मशीन पर वह चल रहा है। उसके विवरण के बारे में चिंता किए बिना प्रोग्राम के वैचारिक स्वरूप होते है।


=== मनुष्यों के लिए प्रोग्राम की जानकारी उपलब्ध कराना ===
=== मनुष्यों के लिए प्रोग्राम की जानकारी उपलब्ध कराना ===
सॉफ्टवेयर की उच्च जटिलता के कारण, सबसे अनुभवी सॉफ्टवेयर डेवलपर के लिए भी अधिकांश प्रोग्रामो को एक नज़र में समझना संभव नहीं है। उच्च-स्तरीय प्रोग्रामिंग भाषाओं द्वारा प्रदान किए गए सार भी प्रोग्रामर द्वारा लिखे गए स्रोत कोड और वास्तविक प्रोग्राम के व्यवहार के बीच संबंध को समझना कठिन बनाते हैं। प्रोग्राम में [[सॉफ्टवेयर बग]] खोजने के लिए और प्रोग्राम को विस्तारित करते समय नई बग बनाने से रोकने के लिए, सॉफ़्टवेयर डेवलपर प्रोग्राम के बारे में सभी प्रकार की जानकारी देखने के लिए कुछ प्रोग्रामिंग टूल का उपयोग करता है।
सॉफ्टवेयर की उच्च जटिलता के कारण, सबसे अनुभवी सॉफ्टवेयर डेवलपर के लिए भी अधिकांश प्रोग्रामो को एक नज़र में समझना संभव नहीं है। उच्च-स्तरीय प्रोग्रामिंग भाषाओं द्वारा प्रदान किए गए सार भी प्रोग्रामर द्वारा लिखे गए स्रोत कोड और वास्तविक प्रोग्राम के व्यवहार के बीच संबंध को समझना कठिन बनाते हैं। प्रोग्राम में [[सॉफ्टवेयर बग]] खोजने के लिए और प्रोग्राम को विस्तारित करते समय नई बग बनाने से रोकने के लिए, सॉफ़्टवेयर डेवलपर प्रोग्राम के बारे में सभी प्रकार की जानकारी देखने के लिए कुछ प्रोग्रामिंग टूल का उपयोग करता है।


उदाहरण के लिए, एक डीबगर एक प्रोग्रामर को प्रोग्राम करने के लिए उपयोग की जाने वाली स्रोत भाषा के संदर्भ में चल रहे प्रोग्राम के बारे में जानकारी निकालने की अनुमति देता है। [[डिबगर]] कंपाइलर द्वारा संग्रहीत जानकारी का उपयोग करके कंक्रीट मशीन की स्थिति से स्रोत प्रोग्राम में एक चर के मान की गणना कर सकता है। मेमोरी डिबगर्स सीधे चल रहे प्रोग्रामों की संदिग्ध या एकमुश्त गलत मेमोरी एक्सेस को संकेत कर सकते हैं | जो अन्यथा अनिर्धारित रह सकते हैं और प्रोग्राम विफलताओं का एक सामान्य स्रोत हैं।
उदाहरण के लिए, डीबगर एक प्रोग्रामर को प्रोग्राम करने के लिए उपयोग की जाने वाली स्रोत भाषा के संदर्भ में चल रहे प्रोग्राम के बारे में जानकारी निकालने की अनुमति देता है। [[डिबगर]] कंपाइलर द्वारा संग्रहीत जानकारी का उपयोग करके कंक्रीट मशीन की स्थिति से स्रोत प्रोग्राम में चर के मान की गणना कर सकता है। मेमोरी डिबगर्स सीधे चल रहे प्रोग्रामों की संदिग्ध या एकमुश्त गलत मेमोरी एक्सेस को संकेत कर सकते हैं | जो अन्यथा अनिर्धारित रह सकते हैं और प्रोग्राम विफलताओं का सामान्य स्रोत हैं।


== उपकरणों की सूची ==
== उपकरणों की सूची ==
Line 50: Line 50:


== आईडीई ==
== आईडीई ==
एकीकृत विकास वातावरण कई उपकरणों की सुविधाओं को एक पैकेज में जोड़ता है। उदाहरण के लिए, वे विशिष्ट प्रोग्राम को करना सरल बनाते हैं | जैसे किसी विशेष प्रोजेक्ट में केवल फाइलों में पदार्थ खोजना होता है। उदाहरण के लिए आईडीई का उपयोग उद्यम स्तर के अनुप्रयोगों के विकास के लिए किया जा सकता है।
एकीकृत विकास वातावरण कई उपकरणों की सुविधाओं को पैकेज में जोड़ता है। उदाहरण के लिए, वे विशिष्ट प्रोग्राम को करना सरल बनाते हैं | जैसे किसी विशेष प्रोजेक्ट में केवल फाइलों में पदार्थ खोजना होता है। उदाहरण के लिए आईडीई का उपयोग उद्यम स्तर के अनुप्रयोगों के विकास के लिए किया जा सकता है।


विशिष्ट प्रोग्रामिंग भाषाओं के लिए आईडीई के विभिन्न प्रारूपो को एकीकृत विकास परिवेशों की इस तुलना में पाया जा सकता है।
विशिष्ट प्रोग्रामिंग भाषाओं के लिए आईडीई के विभिन्न प्रारूपो को एकीकृत विकास परिवेशों की इस तुलना में पाया जा सकता है।

Revision as of 17:52, 1 June 2023

प्रोग्रामिंग टूल या सॉफ़्टवेयर डेवलपमेंट टूल एक कंप्यूटर प्रोग्राम है। जिसका उपयोग सॉफ्टवेयर डेवलपर अन्य प्रोग्राम और एप्लिकेशन बनाने, डीबग करने, बनाए रखने या अन्यथा समर्थन करने के लिए करते हैं। यह शब्द सामान्यतः अपेक्षाकृत सरल प्रोग्रामो को संदर्भित करता है। जिसे किसी प्रोग्राम को पूरा करने के लिए जोड़ा जा सकता है, जैसे कोई भौतिक वस्तु को सही करने के लिए कई हाथों का उपयोग कर सकता है। सबसे मूलभूत उपकरण स्रोत कोड संपादक और संकलक या दुभाषिया (कंप्यूटिंग) हैं | जिनका उपयोग सर्वव्यापी और निरंतर किया जाता है। भाषा, विकास पद्धति और व्यक्तिगत इंजीनियर के आधार पर अन्य उपकरणों का अधिक या कम उपयोग किया जाता है। जो अधिकांशतः असतत प्रोग्राम के लिए उपयोग किया जाता है। जैसे डिबगर या प्रोफाइलर उपकरण असतत प्रोग्राम हो सकते हैं, अलग से निष्पादित - अधिकांशतः कमांड लाइन से - या बड़े प्रोग्राम के भाग हो सकते हैं | जिसे एकीकृत विकास वातावरण (आईडीई) कहा जाता है। कई स्थितियों में, विशेष रूप से सरल उपयोग के लिए, उपकरण के अतिरिक्त सरल तदर्थ विधियों का उपयोग किया जाता है। जैसे डिबगर का उपयोग करने के अतिरिक्त प्रिंट डिबगिंग, प्रोफाइलर के अतिरिक्त मैन्युअल समय (समग्र प्रोग्राम या कोड के अनुभाग का) या बग को ट्रैक करना बग ट्रैकिंग सिस्टम के अतिरिक्त टेक्स्ट फ़ाइल या स्प्रेडशीट का उपयोग किया जाता है।

टूल और एप्लिकेशन के बीच का अंतर अस्पष्ट है। उदाहरण के लिए, डेवलपर्स हर समय उपकरण के रूप में सरल डेटाबेस (जैसे फ्लैट फ़ाइल डेटाबेस) का उपयोग करते हैं। चूँकि पूर्ण विकसित डेटाबेस को सामान्यतः अपने आप में एप्लिकेशन या सॉफ़्टवेयर के रूप में माना जाता है। कई वर्षों तक, कंप्यूटर-सहायता प्राप्त सॉफ़्टवेयर इंजीनियरिंग (प्रकरण) उपकरणों की मांग की गई थी। सफल उपकरण मायावी सिद्ध हुए हैं। एक मायने में, प्रकरण टूल ने रचना और आर्किटेक्चर समर्थन पर जोर दिया, जैसे कि यूएमएल के लिए किन्तु इनमें से सबसे सफल उपकरण आईडीई हैं।

प्रोग्रामिंग टूल्स का उपयोग

मानव से कंप्यूटर भाषा में अनुवाद

आधुनिक कंप्यूटर बहुत जटिल हैं और उन्हें उत्पादक रूप से प्रोग्राम करने के लिए विभिन्न सार की आवश्यकता होती है। उदाहरण के लिए, प्रोग्राम के बाइनरी प्रतिनिधित्व को लिखने के अतिरिक्त प्रोग्रामर सी, जावा या पायथन जैसी प्रोग्रामिंग भाषा में प्रोग्राम लिखता है। असेंबली लैंग्वेज असेम्बलर्स, कंपाइलर्स और लिंकर (कंप्यूटिंग) जैसे प्रोग्रामिंग टूल प्रोग्राम को मानव द्वारा लिखने योग्य और पठनीय स्रोत भाषा से बिट्स और बाइट्स में अनुवादित करते हैं | जिन्हें कंप्यूटर द्वारा निष्पादित किया जा सकता है। दुभाषिए वांछित व्यवहार उत्पन्न करने के लिए प्रोग्राम की तत्काल व्याख्या करते हैं।

ये प्रोग्राम कई अच्छी तरह से परिभाषित और दोहराए जाने वाले प्रोग्राम करते हैं | जो मानव द्वारा किए जाने पर समय लेने वाली और त्रुटि-प्रवण होंगे, जैसे किसी प्रोग्राम के कुछ भागो को स्मृति में रखना और लिंकर के रूप में प्रोग्राम के कुछ भागो के बीच संदर्भों को सही करना होता है। दूसरी ओर ऑप्टिमाइज़िंग कंपाइलर निष्पादन की गति या किसी प्रोग्राम की अन्य विशेषताओं को उत्तम बनाने के लिए स्रोत कोड पर जटिल परिवर्तन कर सकते हैं। यह प्रोग्रामर को उच्च स्तर पर अधिक ध्यान केंद्रित करने की अनुमति देता है। जिस मशीन पर वह चल रहा है। उसके विवरण के बारे में चिंता किए बिना प्रोग्राम के वैचारिक स्वरूप होते है।

मनुष्यों के लिए प्रोग्राम की जानकारी उपलब्ध कराना

सॉफ्टवेयर की उच्च जटिलता के कारण, सबसे अनुभवी सॉफ्टवेयर डेवलपर के लिए भी अधिकांश प्रोग्रामो को एक नज़र में समझना संभव नहीं है। उच्च-स्तरीय प्रोग्रामिंग भाषाओं द्वारा प्रदान किए गए सार भी प्रोग्रामर द्वारा लिखे गए स्रोत कोड और वास्तविक प्रोग्राम के व्यवहार के बीच संबंध को समझना कठिन बनाते हैं। प्रोग्राम में सॉफ्टवेयर बग खोजने के लिए और प्रोग्राम को विस्तारित करते समय नई बग बनाने से रोकने के लिए, सॉफ़्टवेयर डेवलपर प्रोग्राम के बारे में सभी प्रकार की जानकारी देखने के लिए कुछ प्रोग्रामिंग टूल का उपयोग करता है।

उदाहरण के लिए, डीबगर एक प्रोग्रामर को प्रोग्राम करने के लिए उपयोग की जाने वाली स्रोत भाषा के संदर्भ में चल रहे प्रोग्राम के बारे में जानकारी निकालने की अनुमति देता है। डिबगर कंपाइलर द्वारा संग्रहीत जानकारी का उपयोग करके कंक्रीट मशीन की स्थिति से स्रोत प्रोग्राम में चर के मान की गणना कर सकता है। मेमोरी डिबगर्स सीधे चल रहे प्रोग्रामों की संदिग्ध या एकमुश्त गलत मेमोरी एक्सेस को संकेत कर सकते हैं | जो अन्यथा अनिर्धारित रह सकते हैं और प्रोग्राम विफलताओं का सामान्य स्रोत हैं।

उपकरणों की सूची

सॉफ्टवेयर उपकरण कई रूपों में आते हैं:

आईडीई

एकीकृत विकास वातावरण कई उपकरणों की सुविधाओं को पैकेज में जोड़ता है। उदाहरण के लिए, वे विशिष्ट प्रोग्राम को करना सरल बनाते हैं | जैसे किसी विशेष प्रोजेक्ट में केवल फाइलों में पदार्थ खोजना होता है। उदाहरण के लिए आईडीई का उपयोग उद्यम स्तर के अनुप्रयोगों के विकास के लिए किया जा सकता है।

विशिष्ट प्रोग्रामिंग भाषाओं के लिए आईडीई के विभिन्न प्रारूपो को एकीकृत विकास परिवेशों की इस तुलना में पाया जा सकता है।

यह भी देखें

संदर्भ

  • Software Development Tools for Petascale Computing Workshop 2007
  • Kernighan, Brian W.; Plauger, P. J. (1976), Software Tools, Addison-Wesley, pp. 352, ISBN 0-201-03669-X


बाहरी संबंध

Media related to Programming tools at Wikimedia Commons