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