स्वचालित प्रोग्रामिंग
कंप्यूटर विज्ञान में, स्वचालित प्रोग्रामिंग[1] एक प्रकार की कंप्यूटर प्रोग्रामिंग होती है जिसमें कुछ तंत्र एक कंप्यूटर प्रोग्राम उत्पन्न करता है जिससे मानव प्रोग्रामर को उच्च अमूर्त स्तर पर कोड लिखने की स्वीकृति मिलती है।
स्वचालित प्रोग्रामिंग की परिशुद्ध परिभाषा पर बहुत कम सहमति रही है, अधिकतम इसलिए क्योंकि समय के साथ इसका अर्थ बदल गया है। प्रकाशित शोध में स्वचालित प्रोग्रामिंग के इतिहास का पता लगाने वाले डेविड पारनास ने नोट किया कि 1940 के दशक में इसने पेपर टेप को पंच करने की मैन्युअल प्रक्रिया के स्वचालन का वर्णन किया। बाद में इसने फोरट्रान और एल्गोरिथम भाषा जैसी उच्च-स्तरीय प्रोग्रामिंग भाषाओं के स्थानातरण का उल्लेख किया। वास्तव में, एक कंपाइलर के रूप में पहचाने जाने वाले प्रारम्भिक प्रोग्राम में से एक को ऑटोकोड कहा जाता था। डेविड पारनास ने निष्कर्ष निकाला कि प्रोग्रामर के लिए उपलब्ध होने की तुलना में स्वचालित प्रोग्रामिंग सदैव उच्च-स्तरीय भाषा में प्रोग्रामिंग के लिए एक प्रेयोक्ति (यूफेमिस्म) रही है।[2]
प्रोग्राम संश्लेषण एक प्रकार की स्वचालित प्रोग्रामिंग है जहां गणितीय आवश्यकताओं के आधार पर स्क्रैच से एक प्रक्रिया बनाई जाती है।
उत्पत्ति
प्रारंभिक सर्वव्यापी गैर-एकीकृत निर्वात सक्रिय कंप्यूटर प्रोग्रामर, मिली कोस बताते हैं: मशीन कोड लिखने में कई स्थायी चरण - असतत निर्देशों में एक प्रक्रिया को प्रतिबंधित करना, सभी कमांडों को विशिष्ट मेमोरी स्थान निर्दिष्ट करना और इनपुट/आउट्पुट बफ़र्स का प्रबंधन करना सम्मिलित होते हैं । गणितीय रूटीन, एक उप-रूटीन लाइब्रेरी, और प्रोग्राम को क्रमबद्ध करना, हमारा काम बड़ी प्रोग्रामिंग प्रक्रिया को देखना था। हमें यह समझने की आवश्यकता थी कि हम परीक्षण कोड का पुन: उपयोग कैसे कर सकते हैं और प्रोग्रामिंग में मशीन की सहायता कैसे ले सकते हैं। जैसा कि हमने प्रोग्राम किया, हमने प्रक्रिया की जांच की और इन चरणों को अमूर्त करने के तरीकों के बारे में विचार करने का प्रयास किया ताकि उन्हें उच्च-स्तरीय भाषा में सम्मिलित किया जा सके। इसने दुभाषियों, असेंबलरों, कंपाइलरों और जनरेटरों के विकास का नेतृत्व किया - अन्य प्रोग्रामों को संचालित करने या उत्पादन करने के लिए डिज़ाइन किए गए प्रोग्राम, जो कि स्वचालित प्रोग्रामिंग है।[3]
जनरेटिव (उत्पादक) प्रोग्रामिंग
जनरेटिव प्रोग्रामिंग और संबंधित शब्द मेटा-प्रोग्रामिंग[4] ऐसी अवधारणाएँ हैं जिनके द्वारा स्वचालित तरीके से सॉफ़्टवेयर घटकों के निर्माण के लिए प्रोग्राम लिखे जा सकते हैं[5] अतः वैसे ही जैसे स्वचालन ने पारंपरिक वस्तुओं जैसे गारमेंट, ऑटोमोबाइल, रसायन और इलेक्ट्रॉनिक्स के उत्पादन में संशोधन किया है।[6][7]
लक्ष्य प्रोग्रामर उत्पादकता में संशोधन करना है।[8] यह प्रायः घटक-आधारित सॉफ़्टवेयर अभियांत्रिकी जैसे कोड-पुन: उपयोग विषयों से संबंधित होता है।
स्रोत-कोड जनरेशन (पीढ़ी)
स्त्रोत-कोड पीढ़ी समस्या के विवरण के आधार पर स्त्रोत कोड उत्पन्न करने की प्रक्रिया है[9] या एक ऑन्कोलॉजी (सूचना विज्ञान) मॉडल जैसे टेम्पलेट और एक प्रोग्रामिंग उपकरण जैसे टेम्पलेट प्रोसेसर या एक एकीकृत विकास वातावरण (आईडीई) के साथ पूरा किया जाता है। ये उपकरण विभिन्न माध्यमों में से किसी के माध्यम से स्रोत कोड की पीढ़ी की स्वीकृति देते हैं।
आधुनिक प्रोग्रामिंग भाषाओं को जेसन4स्विफ्ट (स्विफ्ट (प्रोग्रामिंग भाषा)) और जेसन2कोटलिन (कोटलिन (प्रोग्रामिंग भाषा)) जैसे उपकरणों का अच्छा समर्थन प्राप्त है। .
प्रोग्राम जो सामान्य व्यवसाय उन्मुखी भाषा कोड उत्पन्न कर सकते हैं उनमें सम्मिलित हैं:
- डीवाईएल250/डीवाईएल260/डीवाईएल270/डीवाईएल280 श्रृंखला[10]
- व्यापार नियंत्रण निगम का एसबी-5
- पीट मार्विक मिशेल का पीएमएम2170 एप्लिकेशन-प्रोग्राम-उत्पादक पैकेज
ये एप्लिकेशन जेनरेटर सामान्य व्यवसाय उन्मुखी भाषा प्रविष्ट और ओवरराइड का समर्थन करते हैं।
एक मैक्रोप्रोसेसर (कंप्यूटर विज्ञान), जैसे C प्रीप्रोसेसर, जो अपेक्षाकृत सरल नियमों के अनुसार स्रोत कोड में पैटर्न को बदलता है, स्रोत-कोड उत्पादक का एक सरल रूप है। स्रोत से स्रोत कोड पीढ़ी उपकरण भी सम्मिलित हैं।[11][12]
कम कोड वाला एप्लिकेशन
कम कोड वाला विकास प्लेटफॉर्म (एलसीडीपी) सॉफ्टवेयर है जो पारंपरिक कंप्यूटर प्रोग्रामिंग के अटरिक्त ग्राफिकल उपयोगकर्ता इंटरफ़ेस और कॉन्फ़िगरेशन के माध्यम से एप्लीकेशन प्रक्रिया वस्तु बनाने के लिए एक पर्यावरण प्रोग्रामर का उपयोग करता है।
यह भी देखें
- स्वचालित बग फिक्स
- स्वचालित मशीन अधिगम
- कोड पीढ़ी उपकरण की तुलना
- फ़ीचर-उन्मुख प्रोग्रामिंग
- भाषा उन्मुख प्रोग्रामिंग
- मॉडलिंग भाषा
- प्रोग्राम परिवर्तन
- सेमेन्टिक स्थानातरण
- शब्दावली आधारित परिवर्तन
- चौथी पीढ़ी की प्रोग्रामिंग भाषा
- कम कोड वाला विकास प्लेटफॉर्म
टिप्पणियाँ
- ↑ Ricardo Aler Mur, "Automatic Inductive Programming Archived 2016-03-04 at the Wayback Machine", ICML 2006 Tutorial. June 2006.
- ↑ D. L. Parnas. "Software Aspects of Strategic Defense Systems." American Scientist. November 1985.
- ↑ Chun, Wendy. "On Software, or the Persistence of Visual Knowledge." Grey Room 18. Boston: 2004, pg. 30.
- ↑ "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.
- ↑ 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.
- ↑ "Generative Programming: Concepts and Experiences (GPCE)".
- ↑ 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.
- ↑ James Wilcox, "Paying Too Much for Custom Application Development", March 2011.
- ↑ "आवेदन जनरेटर". 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 ...
- ↑ "DYL-280 Command Syntax" (PDF). Archived from the original (PDF) on 2018-07-30. Retrieved 2018-09-03.
- ↑ 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.
- ↑ 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.