स्वचालित प्रोग्रामिंग: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Type of computer programming}} {{Programming paradigms}} कंप्यूटर विज्ञान में, स्वचालित प्र...")
 
No edit summary
 
(3 intermediate revisions by 3 users not shown)
Line 2: Line 2:
{{Programming paradigms}}
{{Programming paradigms}}


[[कंप्यूटर विज्ञान]] में, स्वचालित प्रोग्रामिंग<ref>Ricardo Aler Mur, "[http://www.evannai.inf.uc3m.es/et/icml06/aiptutorial.htm Automatic Inductive Programming] {{Webarchive|url=https://web.archive.org/web/20160304073124/http://www.evannai.inf.uc3m.es/et/icml06/aiptutorial.htm |date=2016-03-04 }}", ''ICML 2006 Tutorial''. June 2006.</ref> एक प्रकार की [[कंप्यूटर प्रोग्राम]]िंग है जिसमें कुछ तंत्र मानव [[प्रोग्रामर]] को उच्च अमूर्त स्तर पर कोड लिखने की अनुमति देने के लिए एक कंप्यूटर प्रोग्राम उत्पन्न करता है।
[[कंप्यूटर विज्ञान]] में, '''स्वचालित प्रोग्रामिंग'''<ref>Ricardo Aler Mur, "[http://www.evannai.inf.uc3m.es/et/icml06/aiptutorial.htm Automatic Inductive Programming] {{Webarchive|url=https://web.archive.org/web/20160304073124/http://www.evannai.inf.uc3m.es/et/icml06/aiptutorial.htm |date=2016-03-04 }}", ''ICML 2006 Tutorial''. June 2006.</ref> एक प्रकार की [[कंप्यूटर प्रोग्राम|कंप्यूटर प्रोग्रामिंग]] होती है जिसमें कुछ तंत्र एक कंप्यूटर प्रोग्राम उत्पन्न करता है जिससे मानव प्रोग्रामर को उच्च अमूर्त स्तर पर कोड लिखने की स्वीकृति मिलती है।


स्वचालित प्रोग्रामिंग की सटीक परिभाषा पर बहुत कम सहमति रही है, ज्यादातर इसलिए क्योंकि समय के साथ इसका अर्थ बदल गया है। प्रकाशित शोध में स्वचालित प्रोग्रामिंग के इतिहास का पता लगाने वाले [[डेविड पारनास]] ने नोट किया कि 1940 के दशक में इसने [[ कागज का टेप ]] को पंच करने की मैन्युअल प्रक्रिया के स्वचालन का वर्णन किया। बाद में इसने [[फोरट्रान]] और [[ALGOL]] जैसी उच्च-स्तरीय प्रोग्रामिंग भाषाओं के अनुवाद का उल्लेख किया। वास्तव में, एक [[संकलक]] के रूप में पहचाने जाने वाले शुरुआती कार्यक्रमों में से एक को [[ऑटोकोड]] कहा जाता था। डेविड पारनास ने निष्कर्ष निकाला कि प्रोग्रामर के लिए उपलब्ध होने की तुलना में स्वचालित प्रोग्रामिंग हमेशा उच्च-स्तरीय भाषा में प्रोग्रामिंग के लिए एक [[प्रेयोक्ति]] रही है।<ref>D. L. Parnas. "[https://web.stanford.edu/class/cs99r/readings/parnas1.pdf Software Aspects of Strategic Defense Systems]." ''American Scientist''. November 1985.</ref>
स्वचालित प्रोग्रामिंग की परिशुद्ध परिभाषा पर बहुत कम सहमति रही है, अधिकतम इसलिए क्योंकि समय के साथ इसका अर्थ बदल गया है। प्रकाशित शोध में स्वचालित प्रोग्रामिंग के इतिहास का पता लगाने वाले [[डेविड पारनास]] ने नोट किया कि 1940 के दशक में इसने पेपर टेप को पंच करने की मैन्युअल प्रक्रिया के स्वचालन का वर्णन किया। बाद में इसने [[फोरट्रान]] और एल्गोरिथम भाषा जैसी उच्च-स्तरीय प्रोग्रामिंग भाषाओं के स्थानातरण का उल्लेख किया। वास्तव में, एक [[संकलक|कंपाइलर]] के रूप में पहचाने जाने वाले प्रारम्भिक प्रोग्राम में से एक को [[ऑटोकोड]] कहा जाता था। डेविड पारनास ने निष्कर्ष निकाला कि प्रोग्रामर के लिए उपलब्ध होने की तुलना में स्वचालित प्रोग्रामिंग सदैव उच्च-स्तरीय भाषा में प्रोग्रामिंग के लिए एक [[प्रेयोक्ति]] (यूफेमिस्म) रही है।<ref>D. L. Parnas. "[https://web.stanford.edu/class/cs99r/readings/parnas1.pdf Software Aspects of Strategic Defense Systems]." ''American Scientist''. November 1985.</ref>
[[ कार्यक्रम संश्लेषण ]] एक प्रकार की स्वचालित प्रोग्रामिंग है जहां गणितीय आवश्यकताओं के आधार पर स्क्रैच से एक प्रक्रिया बनाई जाती है।
 
[[ कार्यक्रम संश्लेषण |प्रोग्राम संश्लेषण]] एक प्रकार की स्वचालित प्रोग्रामिंग है जहां गणितीय आवश्यकताओं के आधार पर स्क्रैच से एक प्रक्रिया बनाई जाती है।


== उत्पत्ति ==
== उत्पत्ति ==
प्रारंभिक [[UNIVAC]] प्रोग्रामर, [[मिली कोस]] बताते हैं: मशीन कोड लिखने में कई थकाऊ चरण शामिल होते हैं - असतत निर्देशों में एक प्रक्रिया को तोड़ना, सभी कमांडों को विशिष्ट मेमोरी स्थान निर्दिष्ट करना और I/O बफ़र्स का प्रबंधन करना। गणितीय दिनचर्या, एक उप-दिनचर्या पुस्तकालय, और छँटाई कार्यक्रमों को लागू करने के लिए इन चरणों का पालन करने के बाद, हमारा काम बड़ी प्रोग्रामिंग प्रक्रिया को देखना था। हमें यह समझने की जरूरत थी कि हम परीक्षण किए गए कोड का पुन: उपयोग कैसे कर सकते हैं और प्रोग्रामिंग में मशीन की मदद कैसे ले सकते हैं। जैसा कि हमने प्रोग्राम किया, हमने प्रक्रिया की जांच की और इन चरणों को अमूर्त करने के तरीकों के बारे में सोचने की कोशिश की ताकि उन्हें उच्च-स्तरीय भाषा में शामिल किया जा सके। इसने दुभाषियों, असेंबलरों, संकलकों और जनरेटरों के विकास का नेतृत्व किया - अन्य प्रोग्रामों को संचालित करने या उत्पादन करने के लिए डिज़ाइन किए गए प्रोग्राम, जो कि स्वचालित प्रोग्रामिंग है।<ref>Chun, Wendy. "On Software, or the Persistence of Visual Knowledge." Grey Room 18. Boston: 2004, pg. 30.</ref>
प्रारंभिक सर्वव्यापी गैर-एकीकृत निर्वात सक्रिय कंप्यूटर प्रोग्रामर, [[मिली कोस]] बताते हैं: मशीन कोड लिखने में कई स्थायी चरण - असतत निर्देशों में एक प्रक्रिया को प्रतिबंधित करना, सभी कमांडों को विशिष्ट मेमोरी स्थान निर्दिष्ट करना और इनपुट/आउट्पुट बफ़र्स का प्रबंधन करना सम्मिलित होते हैं । गणितीय रूटीन, एक उप-रूटीन लाइब्रेरी, और प्रोग्राम को क्रमबद्ध करना, हमारा काम बड़ी प्रोग्रामिंग प्रक्रिया को देखना था। हमें यह समझने की आवश्यकता थी कि हम परीक्षण कोड का पुन: उपयोग कैसे कर सकते हैं और प्रोग्रामिंग में मशीन की सहायता कैसे ले सकते हैं। जैसा कि हमने प्रोग्राम किया, हमने प्रक्रिया की जांच की और इन चरणों को अमूर्त करने के तरीकों के बारे में विचार करने का प्रयास किया ताकि उन्हें उच्च-स्तरीय भाषा में सम्मिलित किया जा सके। इसने दुभाषियों, असेंबलरों, कंपाइलरों और जनरेटरों के विकास का नेतृत्व किया - अन्य प्रोग्रामों को संचालित करने या उत्पादन करने के लिए डिज़ाइन किए गए प्रोग्राम, जो कि स्वचालित प्रोग्रामिंग है।<ref>Chun, Wendy. "On Software, or the Persistence of Visual Knowledge." Grey Room 18. Boston: 2004, pg. 30.</ref>




== जनरेटिव प्रोग्रामिंग ==
== जनरेटिव (उत्पादक) प्रोग्रामिंग ==
जनरेटिव प्रोग्रामिंग और संबंधित शब्द [[मेटाप्रोग्रामिंग]]|मेटा-प्रोग्रामिंग<ref>{{cite web
जनरेटिव प्रोग्रामिंग और संबंधित शब्द मेटा-प्रोग्रामिंग<ref>{{cite web
|quote=Generative programming, as a subdomain of meta-programming, describes the practice of writing programs that generate other programs as part of their execution.
|quote=Generative programming, as a subdomain of meta-programming, describes the practice of writing programs that generate other programs as part of their execution.
|url=https://scala-lms.github.io/tutorials/01_overview.html
|url=https://scala-lms.github.io/tutorials/01_overview.html
Line 19: Line 20:
|author=P. Cointe |title=Unconventional Programming Paradigms
|author=P. Cointe |title=Unconventional Programming Paradigms
|volume=3566 |pages=315–325 |date=2005|doi=10.1007/11527800_24
|volume=3566 |pages=315–325 |date=2005|doi=10.1007/11527800_24
|series=Lecture Notes in Computer Science |isbn=978-3-540-27884-9 |chapter=Towards Generative Programming }}</ref> ठीक वैसे ही जैसे स्वचालन ने पारंपरिक वस्तुओं जैसे वस्त्र, ऑटोमोबाइल, रसायन और इलेक्ट्रॉनिक्स के उत्पादन में सुधार किया है।<ref>{{cite web
|series=Lecture Notes in Computer Science |isbn=978-3-540-27884-9 |chapter=Towards Generative Programming }}</ref> अतः वैसे ही जैसे स्वचालन ने पारंपरिक वस्तुओं जैसे गारमेंट, ऑटोमोबाइल, रसायन और इलेक्ट्रॉनिक्स के उत्पादन में संशोधन किया है।<ref>{{cite web
|title=Generative Programming: Concepts and Experiences (GPCE)  
|title=Generative Programming: Concepts and Experiences (GPCE)  
|url=http://www.sigplan.org/Conferences/GPCE}}</ref><ref>A conference of [[SIGPLAN]] on
|url=http://www.sigplan.org/Conferences/GPCE}}</ref><ref>A conference of [[SIGPLAN]] on
this topic is planned for November 2018. Earlier/1970s attempts in this area included [[Yacc]]
this topic is planned for November 2018. Earlier/1970s attempts in this area included [[Yacc]]
and the related Lex programs.</ref>
and the related Lex programs.</ref>
लक्ष्य प्रोग्रामर उत्पादकता में सुधार करना है।<ref>James Wilcox, "[http://edgewatertech.wordpress.com/2011/03/11/paying-too-much-for-custom-application-implementation-code-generation/ Paying Too Much for Custom Application Development]", March 2011.</ref> यह अक्सर घटक-आधारित सॉफ़्टवेयर इंजीनियरिंग जैसे कोड-पुन: उपयोग विषयों से संबंधित होता है।


== स्रोत-कोड जनरेशन ==
लक्ष्य प्रोग्रामर उत्पादकता में संशोधन करना है।<ref>James Wilcox, "[http://edgewatertech.wordpress.com/2011/03/11/paying-too-much-for-custom-application-implementation-code-generation/ Paying Too Much for Custom Application Development]", March 2011.</ref> यह प्रायः घटक-आधारित सॉफ़्टवेयर अभियांत्रिकी जैसे कोड-पुन: उपयोग विषयों से संबंधित होता है।
सोर्स-कोड जेनरेशन समस्या के विवरण के आधार पर सोर्स कोड जनरेट करने की प्रक्रिया है<ref>{{cite web
 
== स्रोत-कोड जनरेशन (पीढ़ी) ==
स्त्रोत-कोड पीढ़ी समस्या के विवरण के आधार पर स्त्रोत कोड उत्पन्न करने की प्रक्रिया है<ref>{{cite web
|quote=Software that generates application programs from descriptions of the problem rather than by traditional programming. It is at a higher level and easier to use than a high-level programming language such as ...
|quote=Software that generates application programs from descriptions of the problem rather than by traditional programming. It is at a higher level and easier to use than a high-level programming language such as ...
|url=https://www.pcmag.com/encyclopedia/term/37909/application-generator
|url=https://www.pcmag.com/encyclopedia/term/37909/application-generator
|title=आवेदन जनरेटर|publisher=PCmag.com}}</ref> या एक ऑन्कोलॉजी (सूचना विज्ञान) मॉडल जैसे टेम्पलेट और एक [[ प्रोग्रामिंग उपकरण ]] जैसे [[टेम्पलेट प्रोसेसर]] या एक एकीकृत विकास वातावरण (आईडीई) के साथ पूरा किया जाता है। ये उपकरण विभिन्न माध्यमों में से किसी के माध्यम से स्रोत कोड की पीढ़ी की अनुमति देते हैं।
|title=आवेदन जनरेटर|publisher=PCmag.com}}</ref> या एक ऑन्कोलॉजी (सूचना विज्ञान) मॉडल जैसे टेम्पलेट और एक [[ प्रोग्रामिंग उपकरण |प्रोग्रामिंग उपकरण]] जैसे [[टेम्पलेट प्रोसेसर]] या एक एकीकृत विकास वातावरण (आईडीई) के साथ पूरा किया जाता है। ये उपकरण विभिन्न माध्यमों में से किसी के माध्यम से स्रोत कोड की पीढ़ी की स्वीकृति देते हैं।


आधुनिक प्रोग्रामिंग भाषाओं को [https://www.json4swift.com/ Json4Swift] ([[स्विफ्ट (प्रोग्रामिंग भाषा)]]) और [https://www.json2kotlin.com/ Json2Kotlin] ([[कोटलिन (प्रोग्रामिंग भाषा)]]) जैसे उपकरणों का अच्छा समर्थन प्राप्त है। .
आधुनिक प्रोग्रामिंग भाषाओं को जेसन4स्विफ्ट ([[स्विफ्ट (प्रोग्रामिंग भाषा)]]) और [https://www.json2kotlin.com/ जेसन2कोटलिन] ([[कोटलिन (प्रोग्रामिंग भाषा)]]) जैसे उपकरणों का अच्छा समर्थन प्राप्त है। .


प्रोग्राम जो [[COBOL]] कोड उत्पन्न कर सकते हैं उनमें शामिल हैं:
प्रोग्राम जो सामान्य व्यवसाय उन्मुखी भाषा कोड उत्पन्न कर सकते हैं उनमें सम्मिलित हैं:
*DYL250/DYL260/DYL270/DYL280 श्रृंखला<ref>{{cite web
*डीवाईएल250/डीवाईएल260/डीवाईएल270/डीवाईएल280 श्रृंखला<ref>{{cite web
   |url=http://www.sysed.com/DnLoads/RefCards/DYL280.pdf
   |url=http://www.sysed.com/DnLoads/RefCards/DYL280.pdf
   |title=DYL-280 Command Syntax
   |title=DYL-280 Command Syntax
Line 44: Line 46:
   }}</ref>
   }}</ref>
* [[व्यापार नियंत्रण निगम]] का एसबी-5
* [[व्यापार नियंत्रण निगम]] का एसबी-5
* [[KPMG]] का PMM2170 एप्लिकेशन-प्रोग्राम-जेनरेटर पैकेज
* पीट मार्विक मिशेल का पीएमएम2170 एप्लिकेशन-प्रोग्राम-उत्पादक पैकेज
ये एप्लिकेशन जेनरेटर COBOL आवेषण और ओवरराइड का समर्थन करते हैं।
ये एप्लिकेशन जेनरेटर सामान्य व्यवसाय उन्मुखी भाषा प्रविष्ट और ओवरराइड का समर्थन करते हैं।


एक [[ मैक्रो (कंप्यूटर विज्ञान) ]] प्रोसेसर, जैसे [[सी प्रीप्रोसेसर]], जो अपेक्षाकृत सरल नियमों के अनुसार स्रोत कोड में पैटर्न को बदलता है, स्रोत-कोड जनरेटर का एक सरल रूप है। [[सोर्स-टू-सोर्स कंपाइलर]] | सोर्स-टू-सोर्स कोड जेनरेशन टूल्स भी मौजूद हैं।<ref>Noaje, Gabriel, Christophe Jaillet, and Michaël Krajecki. "[https://www.researchgate.net/profile/Ponnuswamy_Sadayappan/publication/221302775_Automatic_C-to-CUDA_Code_Generation_for_Affine_Programs/links/09e4150e7f97085734000000/Automatic-C-to-CUDA-Code-Generation-for-Affine-Programs.pdf Source-to-source code translator: OpenMP C to CUDA]". High Performance Computing and Communications (HPCC), 2011 IEEE 13th International Conference on. IEEE, 2011.</ref><ref>Quinlan, Dan, and Chunhua Liao. "[https://www.researchgate.net/profile/Chunhua_Liao/publication/267861836_The_ROSE_Source-to-Source_Compiler_Infrastructure/links/5465a8120cf2f5eb17ff4238.pdf The ROSE source-to-source compiler infrastructure]". Cetus users and compiler infrastructure workshop, in conjunction with PACT. Vol. 2011. 2011.</ref>
एक [[ मैक्रो (कंप्यूटर विज्ञान) |मैक्रो]]प्रोसेसर [[ मैक्रो (कंप्यूटर विज्ञान) |(कंप्यूटर विज्ञान)]], जैसे [[सी प्रीप्रोसेसर|C प्रीप्रोसेसर]], जो अपेक्षाकृत सरल नियमों के अनुसार स्रोत कोड में पैटर्न को बदलता है, स्रोत-कोड उत्पादक का एक सरल रूप है। स्रोत से स्रोत कोड पीढ़ी उपकरण भी सम्मिलित हैं।<ref>Noaje, Gabriel, Christophe Jaillet, and Michaël Krajecki. "[https://www.researchgate.net/profile/Ponnuswamy_Sadayappan/publication/221302775_Automatic_C-to-CUDA_Code_Generation_for_Affine_Programs/links/09e4150e7f97085734000000/Automatic-C-to-CUDA-Code-Generation-for-Affine-Programs.pdf Source-to-source code translator: OpenMP C to CUDA]". High Performance Computing and Communications (HPCC), 2011 IEEE 13th International Conference on. IEEE, 2011.</ref><ref>Quinlan, Dan, and Chunhua Liao. "[https://www.researchgate.net/profile/Chunhua_Liao/publication/267861836_The_ROSE_Source-to-Source_Compiler_Infrastructure/links/5465a8120cf2f5eb17ff4238.pdf The ROSE source-to-source compiler infrastructure]". Cetus users and compiler infrastructure workshop, in conjunction with PACT. Vol. 2011. 2011.</ref>




== लो-कोड एप्लिकेशन ==
{{Main article|Low-code development platforms}}


एक [[लो-कोड डेवलपमेंट प्लेटफॉर्म]] | लो-कोड डेवलपमेंट प्लेटफॉर्म (एलसीडीपी) सॉफ्टवेयर है जो पारंपरिक कंप्यूटर प्रोग्रामिंग के बजाय [[ ग्राफिकल यूज़र इंटरफ़ेस ]] और कॉन्फ़िगरेशन के माध्यम से [[अनुप्रयोग प्रक्रिया सामग्री]] बनाने के लिए एक पर्यावरण प्रोग्रामर का उपयोग करता है।
== कम कोड वाला एप्लिकेशन ==
{{Main article|कम कोड वाला विकास प्लेटफॉर्म}}
 
कम कोड वाला विकास प्लेटफॉर्म (एलसीडीपी) सॉफ्टवेयर है जो पारंपरिक कंप्यूटर प्रोग्रामिंग के अटरिक्त [[ ग्राफिकल यूज़र इंटरफ़ेस |ग्राफिकल उपयोगकर्ता इंटरफ़ेस]] और कॉन्फ़िगरेशन के माध्यम से [[अनुप्रयोग प्रक्रिया सामग्री|एप्लीकेशन प्रक्रिया वस्तु]] बनाने के लिए एक पर्यावरण प्रोग्रामर का उपयोग करता है।


== यह भी देखें ==
== यह भी देखें ==
* स्वचालित बग फिक्स
* स्वचालित बग फिक्स
* [[स्वचालित मशीन लर्निंग]]
* [[स्वचालित मशीन लर्निंग|स्वचालित मशीन अधिगम]]
* [[कोड जनरेशन टूल्स की तुलना]]
* [[कोड जनरेशन टूल्स की तुलना|कोड पीढ़ी उपकरण की तुलना]]
* [[फ़ीचर-उन्मुख प्रोग्रामिंग]]
* [[फ़ीचर-उन्मुख प्रोग्रामिंग]]
* भाषा उन्मुख प्रोग्रामिंग
* भाषा उन्मुख प्रोग्रामिंग
* [[मॉडलिंग भाषा]]
* [[मॉडलिंग भाषा]]
* [[कार्यक्रम परिवर्तन]]
* [[कार्यक्रम परिवर्तन|प्रोग्राम परिवर्तन]]
* [[शब्दार्थ अनुवाद]]
* [[शब्दार्थ अनुवाद|सेमेन्टिक स्थानातरण]]
* [[शब्दावली आधारित परिवर्तन]]
* [[शब्दावली आधारित परिवर्तन]]
* [[चौथी पीढ़ी की प्रोग्रामिंग भाषा]]
* [[चौथी पीढ़ी की प्रोग्रामिंग भाषा]]
* [[लो-कोड डेवलपमेंट प्लेटफॉर्म]]
* [[लो-कोड डेवलपमेंट प्लेटफॉर्म|कम कोड वाला विकास प्लेटफॉर्म]]


==टिप्पणियाँ==
==टिप्पणियाँ==
Line 81: Line 84:
{{Authority control}}
{{Authority control}}


{{DEFAULTSORT:Automatic Programming}}[[Category: प्रोग्रामिंग प्रतिमान]] [[Category: स्रोत कोड पीढ़ी]]
{{DEFAULTSORT:Automatic Programming}}
 
 


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Automatic Programming]]
[[Category:Created On 13/05/2023]]
[[Category:Created On 13/05/2023|Automatic Programming]]
[[Category:Lua-based templates|Automatic Programming]]
[[Category:Machine Translated Page|Automatic Programming]]
[[Category:Pages with script errors|Automatic Programming]]
[[Category:Templates Vigyan Ready|Automatic Programming]]
[[Category:Templates that add a tracking category|Automatic Programming]]
[[Category:Templates that generate short descriptions|Automatic Programming]]
[[Category:Templates using TemplateData|Automatic Programming]]
[[Category:Webarchive template wayback links]]
[[Category:प्रोग्रामिंग प्रतिमान|Automatic Programming]]
[[Category:स्रोत कोड पीढ़ी|Automatic Programming]]

Latest revision as of 15:19, 25 May 2023

कंप्यूटर विज्ञान में, स्वचालित प्रोग्रामिंग[1] एक प्रकार की कंप्यूटर प्रोग्रामिंग होती है जिसमें कुछ तंत्र एक कंप्यूटर प्रोग्राम उत्पन्न करता है जिससे मानव प्रोग्रामर को उच्च अमूर्त स्तर पर कोड लिखने की स्वीकृति मिलती है।

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

प्रोग्राम संश्लेषण एक प्रकार की स्वचालित प्रोग्रामिंग है जहां गणितीय आवश्यकताओं के आधार पर स्क्रैच से एक प्रक्रिया बनाई जाती है।

उत्पत्ति

प्रारंभिक सर्वव्यापी गैर-एकीकृत निर्वात सक्रिय कंप्यूटर प्रोग्रामर, मिली कोस बताते हैं: मशीन कोड लिखने में कई स्थायी चरण - असतत निर्देशों में एक प्रक्रिया को प्रतिबंधित करना, सभी कमांडों को विशिष्ट मेमोरी स्थान निर्दिष्ट करना और इनपुट/आउट्पुट बफ़र्स का प्रबंधन करना सम्मिलित होते हैं । गणितीय रूटीन, एक उप-रूटीन लाइब्रेरी, और प्रोग्राम को क्रमबद्ध करना, हमारा काम बड़ी प्रोग्रामिंग प्रक्रिया को देखना था। हमें यह समझने की आवश्यकता थी कि हम परीक्षण कोड का पुन: उपयोग कैसे कर सकते हैं और प्रोग्रामिंग में मशीन की सहायता कैसे ले सकते हैं। जैसा कि हमने प्रोग्राम किया, हमने प्रक्रिया की जांच की और इन चरणों को अमूर्त करने के तरीकों के बारे में विचार करने का प्रयास किया ताकि उन्हें उच्च-स्तरीय भाषा में सम्मिलित किया जा सके। इसने दुभाषियों, असेंबलरों, कंपाइलरों और जनरेटरों के विकास का नेतृत्व किया - अन्य प्रोग्रामों को संचालित करने या उत्पादन करने के लिए डिज़ाइन किए गए प्रोग्राम, जो कि स्वचालित प्रोग्रामिंग है।[3]


जनरेटिव (उत्पादक) प्रोग्रामिंग

जनरेटिव प्रोग्रामिंग और संबंधित शब्द मेटा-प्रोग्रामिंग[4] ऐसी अवधारणाएँ हैं जिनके द्वारा स्वचालित तरीके से सॉफ़्टवेयर घटकों के निर्माण के लिए प्रोग्राम लिखे जा सकते हैं[5] अतः वैसे ही जैसे स्वचालन ने पारंपरिक वस्तुओं जैसे गारमेंट, ऑटोमोबाइल, रसायन और इलेक्ट्रॉनिक्स के उत्पादन में संशोधन किया है।[6][7]

लक्ष्य प्रोग्रामर उत्पादकता में संशोधन करना है।[8] यह प्रायः घटक-आधारित सॉफ़्टवेयर अभियांत्रिकी जैसे कोड-पुन: उपयोग विषयों से संबंधित होता है।

स्रोत-कोड जनरेशन (पीढ़ी)

स्त्रोत-कोड पीढ़ी समस्या के विवरण के आधार पर स्त्रोत कोड उत्पन्न करने की प्रक्रिया है[9] या एक ऑन्कोलॉजी (सूचना विज्ञान) मॉडल जैसे टेम्पलेट और एक प्रोग्रामिंग उपकरण जैसे टेम्पलेट प्रोसेसर या एक एकीकृत विकास वातावरण (आईडीई) के साथ पूरा किया जाता है। ये उपकरण विभिन्न माध्यमों में से किसी के माध्यम से स्रोत कोड की पीढ़ी की स्वीकृति देते हैं।

आधुनिक प्रोग्रामिंग भाषाओं को जेसन4स्विफ्ट (स्विफ्ट (प्रोग्रामिंग भाषा)) और जेसन2कोटलिन (कोटलिन (प्रोग्रामिंग भाषा)) जैसे उपकरणों का अच्छा समर्थन प्राप्त है। .

प्रोग्राम जो सामान्य व्यवसाय उन्मुखी भाषा कोड उत्पन्न कर सकते हैं उनमें सम्मिलित हैं:

  • डीवाईएल250/डीवाईएल260/डीवाईएल270/डीवाईएल280 श्रृंखला[10]
  • व्यापार नियंत्रण निगम का एसबी-5
  • पीट मार्विक मिशेल का पीएमएम2170 एप्लिकेशन-प्रोग्राम-उत्पादक पैकेज

ये एप्लिकेशन जेनरेटर सामान्य व्यवसाय उन्मुखी भाषा प्रविष्ट और ओवरराइड का समर्थन करते हैं।

एक मैक्रोप्रोसेसर (कंप्यूटर विज्ञान), जैसे C प्रीप्रोसेसर, जो अपेक्षाकृत सरल नियमों के अनुसार स्रोत कोड में पैटर्न को बदलता है, स्रोत-कोड उत्पादक का एक सरल रूप है। स्रोत से स्रोत कोड पीढ़ी उपकरण भी सम्मिलित हैं।[11][12]


कम कोड वाला एप्लिकेशन

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

यह भी देखें

टिप्पणियाँ

  1. Ricardo Aler Mur, "Automatic Inductive Programming Archived 2016-03-04 at the Wayback Machine", ICML 2006 Tutorial. June 2006.
  2. D. L. Parnas. "Software Aspects of Strategic Defense Systems." American Scientist. November 1985.
  3. Chun, Wendy. "On Software, or the Persistence of Visual Knowledge." Grey Room 18. Boston: 2004, pg. 30.
  4. "About Generative Programming". Generative programming, as a subdomain of meta-programming, describes the practice of writing programs that generate other programs as part of their execution.
  5. P. Cointe (2005). "Towards Generative Programming". Unconventional Programming Paradigms. Lecture Notes in Computer Science. Vol. 3566. pp. 315–325. doi:10.1007/11527800_24. ISBN 978-3-540-27884-9. Generative Programming (GP) is an attempt to manufacture software components in an automated way by developing programs that synthesize other programs.
  6. "Generative Programming: Concepts and Experiences (GPCE)".
  7. A conference of SIGPLAN on this topic is planned for November 2018. Earlier/1970s attempts in this area included Yacc and the related Lex programs.
  8. James Wilcox, "Paying Too Much for Custom Application Development", March 2011.
  9. "आवेदन जनरेटर". PCmag.com. Software that generates application programs from descriptions of the problem rather than by traditional programming. It is at a higher level and easier to use than a high-level programming language such as ...
  10. "DYL-280 Command Syntax" (PDF). Archived from the original (PDF) on 2018-07-30. Retrieved 2018-09-03.
  11. Noaje, Gabriel, Christophe Jaillet, and Michaël Krajecki. "Source-to-source code translator: OpenMP C to CUDA". High Performance Computing and Communications (HPCC), 2011 IEEE 13th International Conference on. IEEE, 2011.
  12. Quinlan, Dan, and Chunhua Liao. "The ROSE source-to-source compiler infrastructure". Cetus users and compiler infrastructure workshop, in conjunction with PACT. Vol. 2011. 2011.


संदर्भ

  • Generative Programming: Methods, Tools, and Applications by Krzysztof Czarnecki and Ulrich W. Eisenecker, Addison Wesley, 2000.


बाहरी संबंध