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

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{short description|Computer program that software developers use to support other programs and applications}}
{{short description|Computer program that software developers use to support other programs and applications}}
{{distinguish|Programmable tooling}}
{{distinguish|प्रोग्रामेबल टूलींग}}
{{software development process}}
{{software development process}}
एक प्रोग्रामिंग टूल या सॉफ़्टवेयर डेवलपमेंट टूल एक [[कंप्यूटर प्रोग्राम]] है जिसका उपयोग [[सॉफ्टवेयर डेवलपर]] अन्य प्रोग्राम और एप्लिकेशन बनाने, डीबग करने, बनाए रखने या अन्यथा समर्थन करने के लिए करते हैं। यह शब्द आमतौर पर अपेक्षाकृत सरल कार्यक्रमों को संदर्भित करता है, जिसे किसी कार्य को पूरा करने के लिए जोड़ा जा सकता है, जैसे कोई भौतिक वस्तु को ठीक करने के लिए कई हाथों का उपयोग कर सकता है। सबसे बुनियादी उपकरण एक [[स्रोत कोड संपादक]] और एक [[संकलक]] या [[दुभाषिया (कंप्यूटिंग)]] हैं, जिनका उपयोग सर्वव्यापी और निरंतर किया जाता है। भाषा, विकास पद्धति और व्यक्तिगत इंजीनियर के आधार पर अन्य उपकरणों का अधिक या कम उपयोग किया जाता है, जो अक्सर एक असतत कार्य के लिए उपयोग किया जाता है, जैसे डिबगर या प्रोफाइलर। उपकरण असतत कार्यक्रम हो सकते हैं, अलग से निष्पादित - अक्सर [[कमांड लाइन]] से - या एक बड़े कार्यक्रम के भाग हो सकते हैं, जिसे एक एकीकृत विकास वातावरण (आईडीई) कहा जाता है। कई मामलों में, विशेष रूप से सरल उपयोग के लिए, उपकरण के बजाय सरल तदर्थ तकनीकों का उपयोग किया जाता है, जैसे डिबगर का उपयोग करने के बजाय प्रिंट डिबगिंग, प्रोफाइलर के बजाय मैन्युअल समय (समग्र प्रोग्राम या कोड के अनुभाग का) या बग को ट्रैक करना बग ट्रैकिंग सिस्टम के बजाय एक टेक्स्ट फ़ाइल या स्प्रेडशीट।
एक प्रोग्रामिंग टूल या सॉफ़्टवेयर डेवलपमेंट टूल एक [[कंप्यूटर प्रोग्राम]] है | जिसका उपयोग [[सॉफ्टवेयर डेवलपर]] अन्य प्रोग्राम और एप्लिकेशन बनाने, डीबग करने, बनाए रखने या अन्यथा समर्थन करने के लिए करते हैं। यह शब्द सामान्यतः अपेक्षाकृत सरल प्रोग्रामो को संदर्भित करता है | जिसे किसी प्रोग्राम को पूरा करने के लिए जोड़ा जा सकता है, जैसे कोई भौतिक वस्तु को सही करने के लिए कई हाथों का उपयोग कर सकता है। सबसे मूलभूत उपकरण एक [[स्रोत कोड संपादक]] और एक [[संकलक]] या [[दुभाषिया (कंप्यूटिंग)]] हैं | जिनका उपयोग सर्वव्यापी और निरंतर किया जाता है। भाषा, विकास पद्धति और व्यक्तिगत इंजीनियर के आधार पर अन्य उपकरणों का अधिक या कम उपयोग किया जाता है | जो अधिकांशतः एक असतत प्रोग्राम के लिए उपयोग किया जाता है | जैसे डिबगर या प्रोफाइलर उपकरण असतत प्रोग्राम हो सकते हैं, अलग से निष्पादित - अधिकांशतः [[कमांड लाइन]] से - या एक बड़े प्रोग्राम के भाग हो सकते हैं | जिसे एक एकीकृत विकास वातावरण (आईडीई) कहा जाता है। कई स्थितियों में, विशेष रूप से सरल उपयोग के लिए, उपकरण के अतिरिक्त सरल तदर्थ विधियों का उपयोग किया जाता है | जैसे डिबगर का उपयोग करने के अतिरिक्त प्रिंट डिबगिंग, प्रोफाइलर के अतिरिक्त मैन्युअल समय (समग्र प्रोग्राम या कोड के अनुभाग का) या बग को ट्रैक करना बग ट्रैकिंग सिस्टम के अतिरिक्त एक टेक्स्ट फ़ाइल या स्प्रेडशीट का उपयोग किया जाता है।


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


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


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


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


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


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


== उपकरणों की सूची ==
== उपकरणों की सूची ==
Line 24: Line 24:
*बिल्ड टूल्स: [[ स्वचालन बनाएँ ]], [[बिल्ड ऑटोमेशन सॉफ्टवेयर की सूची]]
*बिल्ड टूल्स: [[ स्वचालन बनाएँ ]], [[बिल्ड ऑटोमेशन सॉफ्टवेयर की सूची]]
* [[कॉल ग्राफ]]
* [[कॉल ग्राफ]]
*[[ कोड कवरेज़ ]]: कोड कवरेज#सॉफ़्टवेयर कोड कवरेज टूल।
*[[ कोड कवरेज़ ]]: कोड कवरेज सॉफ़्टवेयर कोड कवरेज टूल।
* कोड समीक्षा: [[कोड समीक्षा के लिए उपकरणों की सूची]]
* कोड समीक्षा: [[कोड समीक्षा के लिए उपकरणों की सूची]]
*कोड साझा करने वाली साइटें: [[ ताजा मांस ]], [[क्रुगल]], [[ sourceforge ]], गिटहब। यह भी देखें :श्रेणी:कोड खोज इंजन।
*कोड साझा करने वाली साइटें: [[ ताजा मांस |फ्रेशमीट]], [[क्रुगल]], [[ sourceforge |सोर्सफोर्ज]], गिटहब यह भी देखें :श्रेणी:कोड खोज इंजन।
*संकलक और लिंकर (कंप्यूटिंग) उपकरण: GNU टूलचेन, GNU संकलक संग्रह, [[Microsoft Visual Studio]], [[CodeWarrior]], [[Xcode]], Intel C संकलक
*संकलक और लिंकर (कंप्यूटिंग) उपकरण: जीएनयू टूलचेन, जीएनयू संकलक संग्रह, [[Microsoft Visual Studio|माइक्रोसॉफ्ट विजुअल स्टूडियो]], [[CodeWarrior|कोडवॉरिअर]], [[Xcode|एक्सकोड]], इंटेल सी संकलक
* डिबगर्स: डीबगर # डिबगर्स की सूची। [[डिबगिंग]] भी देखें।
* डिबगर्स: डीबगर डिबगर्स की सूची [[डिबगिंग]] भी देखें।
*[[disassembler]]: आम तौर पर [[ रिवर्स इंजीनियरिंग ]] टूल।
*[[disassembler|विध्वंसक]]: सामान्यतः [[ रिवर्स इंजीनियरिंग ]] टूल।
*[[दस्तावेज़ जनरेटर]]: डॉक्यूमेंटेशन जेनरेटर की तुलना, help2man, [[ सादा पुराना दस्तावेज़ीकरण ]], [[asciidoc]]
*[[दस्तावेज़ जनरेटर]]: डॉक्यूमेंटेशन जेनरेटर की तुलना, हेल्प2मैन, [[ सादा पुराना दस्तावेज़ीकरण ]], [[asciidoc|अस्कीडोक]]
*[[औपचारिक तरीके]]: विशिष्टता, विकास और सत्यापन के लिए गणितीय तकनीकें
*[[औपचारिक तरीके]]: विशिष्टता, विकास और सत्यापन के लिए गणितीय विधिया |
* [[ग्राफिकल यूजर इंटरफेस बिल्डर]]
* [[ग्राफिकल यूजर इंटरफेस बिल्डर]]
*पुस्तकालय इंटरफ़ेस जनरेटर: [[SWIG]]
*पुस्तकालय इंटरफ़ेस जनरेटर: [[SWIG|एसडब्ल्यूआईजी]]
* एकता उपकरण
* एकता उपकरण
*[[मेमोरी डीबगर]] अक्सर प्रोग्रामिंग भाषाओं (जैसे [[ सी (प्रोग्रामिंग भाषा) ]] और [[सी ++]]) में उपयोग किए जाते हैं जो मैन्युअल मेमोरी प्रबंधन की अनुमति देते हैं और इस प्रकार [[ स्मृति रिसाव ]] और अन्य समस्याओं की संभावना होती है। वे स्मृति उपयोग की दक्षता को अनुकूलित करने के लिए भी उपयोगी होते हैं। उदाहरण: [[dmalloc]], [[ विद्युत बाड़ ]], [[Insure++]], [[Valgrind]]
*[[मेमोरी डीबगर]] अधिकांशतः प्रोग्रामिंग भाषाओं (जैसे [[ सी (प्रोग्रामिंग भाषा) ]] और [[सी ++]]) में उपयोग किए जाते हैं | जो मैन्युअल मेमोरी प्रबंधन की अनुमति देते हैं और इस प्रकार [[ स्मृति रिसाव ]] और अन्य समस्याओं की संभावना होती है। वे स्मृति उपयोग की दक्षता को अनुकूलित करने के लिए भी उपयोगी होते हैं। उदाहरण: [[dmalloc|डीमॉलोक]], [[ विद्युत बाड़ ]],इन्सेयोर[[Insure++|++]], [[Valgrind|वेलग्रिंड]]
*[[ पदच्छेद ]]: पार्सिंग#पार्सर विकास सॉफ्टवेयर
*[[ पदच्छेद ]]: पार्सिंग पार्सर विकास सॉफ्टवेयर |
*[[ रूपरेखा (कंप्यूटर प्रोग्रामिंग) ]] या प्रोफाइलिंग: [[प्रदर्शन विश्लेषण उपकरणों की सूची]]
*[[ रूपरेखा (कंप्यूटर प्रोग्रामिंग) ]] या प्रोफाइलिंग: [[प्रदर्शन विश्लेषण उपकरणों की सूची]] |
*[[संशोधन नियंत्रण]]: [[संशोधन नियंत्रण सॉफ्टवेयर की सूची]], [[संशोधन नियंत्रण सॉफ्टवेयर की तुलना]]
*[[संशोधन नियंत्रण]]: [[संशोधन नियंत्रण सॉफ्टवेयर की सूची]], [[संशोधन नियंत्रण सॉफ्टवेयर की तुलना]] |
*स्क्रिप्टिंग भाषाएँ: [[PHP]], [[AWK (प्रोग्रामिंग भाषा)]], [[पर्ल]], [[पायथन (प्रोग्रामिंग भाषा)]], [[REXX]], [[रूबी (प्रोग्रामिंग भाषा)]], [[ ऑपरेटिंग सिस्टम खोल ]], [[Tcl]]
*स्क्रिप्टिंग भाषाएँ: [[PHP|पीएचपी]], [[AWK (प्रोग्रामिंग भाषा)|एडब्ल्यूके (प्रोग्रामिंग भाषा)]], [[पर्ल]], [[पायथन (प्रोग्रामिंग भाषा)]], [[REXX|रेक्स]], [[रूबी (प्रोग्रामिंग भाषा)]], [[ ऑपरेटिंग सिस्टम खोल ]], [[Tcl|टीसीएल]]
*खोज: [[ पकड़ ]], [[ढूँढें (यूनिक्स)]]
*खोज: [[ पकड़ |ग्रेप]], [[ढूँढें (यूनिक्स)|फाइंड (यूनिक्स)]] |
*सोर्स कोड क्लोन/डुप्लिकेशंस फाइंडिंग: डुप्लीकेट कोड#टूल्स
*सोर्स कोड क्लोन/डुप्लिकेशंस फाइंडिंग: डुप्लीकेट कोड टूल्स |
* स्रोत कोड संपादक
* स्रोत कोड संपादक
**[[पाठ संपादक]]: [[पाठ संपादकों की सूची]], [[पाठ संपादकों की तुलना]]
**[[पाठ संपादक]]: [[पाठ संपादकों की सूची]], [[पाठ संपादकों की तुलना]]
*[[प्रोग्रामिंग शैली]]: [[इंडेंट (यूनिक्स)]], [[प्रिटीप्रिंट]] | प्रिटी-प्रिंटर, [[ सौंदर्यीकरण ]], मिनिमिफिकेशन (प्रोग्रामिंग)
*[[प्रोग्रामिंग शैली]]: [[इंडेंट (यूनिक्स)]], [[प्रिटीप्रिंट]], [[ सौंदर्यीकरण ]], मिनिमिफिकेशन (प्रोग्रामिंग)
*[[ स्रोत कोड पीढ़ी ]] टूल: स्वचालित प्रोग्रामिंग#कार्यान्वयन
*[[ स्रोत कोड पीढ़ी ]] टूल: स्वचालित प्रोग्रामिंग कार्यान्वयन
*[[स्थैतिक कोड विश्लेषण]]: [[लिंट (सॉफ्टवेयर)]], [[स्थैतिक कोड विश्लेषण के लिए उपकरणों की सूची]]
*[[स्थैतिक कोड विश्लेषण]]: [[लिंट (सॉफ्टवेयर)]], [[स्थैतिक कोड विश्लेषण के लिए उपकरणों की सूची]]
*यूनिट टेस्टिंग: [[यूनिट टेस्टिंग फ्रेमवर्क की सूची]]
*यूनिट टेस्टिंग: [[यूनिट टेस्टिंग फ्रेमवर्क की सूची]]


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


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


== यह भी देखें ==
== यह भी देखें ==
*कंप्यूटर एडेड [[सॉफ्टवेयर इंजीनियरिंग]] उपकरण
*कंप्यूटर एडेड [[सॉफ्टवेयर इंजीनियरिंग]] उपकरण
*[[कंप्यूटर विज्ञान]]
*[[कंप्यूटर विज्ञान]]
* [[विन्यास प्रणाली]]
* [[विन्यास प्रणाली|विन्यास सिस्टम]]
*भाषा का अंकन
*भाषा का अंकन
*[[सॉफ़्टवेयर विकास किट]]
*[[सॉफ़्टवेयर विकास किट]]

Revision as of 17:47, 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