मैं इस विचार को संबोधित करना चाहूंगा कि कई पोस्टर दिए गए हैं, ऐसी भाषा "बेकार" होगी। शायद मनुष्यों के लिए कुछ विशेष कार्य को हल करने के इरादे से, मैन्युअल रूप से लिखना बेकार होगा। हालाँकि, प्रोग्रामिंग भाषाओं के लिए बहु-उपयोग का मामला होने के बावजूद, यह निश्चित रूप से एकमात्र उपयोग-मामला नहीं है। कई उपयोग-मामले दिमाग में आते हैं जहां ऐसी भाषा उपयोगी होती है, और हम ऐसी भाषाओं के उदाहरणों के लिए उन क्षेत्रों को देख सकते हैं।
सबसे पहले Cort Ammon की आनुवंशिकी के लिए भ्रम की स्थिति है: प्रश्न में कार्यक्रम परिवर्तन (के )
लिए प्रतिस्थापन 5
) को उत्परिवर्तन के रूप में देखा जा सकता है । विकासवादी संगणना के क्षेत्र में इस तरह का हेरफेर आम है ; विशेष रूप से आनुवंशिक एल्गोरिदम स्ट्रिंग्स पर ऐसे परिवर्तन करते हैं , जबकि आनुवांशिक प्रोग्रामिंग कार्यक्रमों को बदल देती है । किसी भी मामले में, हम आमतौर पर हर संभावना को अर्थ प्रदान करना चाहते हैं, क्योंकि यह सबसे कॉम्पैक्ट खोज स्थान का उत्पादन करेगा।
जेनेटिक एल्गोरिदम स्ट्रिंग्स के लिए किसी प्रकार के मूल्यांकन कार्य पर भरोसा करते हैं; यदि हम अपने मूल्यांकन फ़ंक्शन के रूप में एक प्रोग्रामिंग भाषा दुभाषिया का उपयोग करते हैं, तो हमारे पास एक परिदृश्य है जहां एक प्रोग्रामिंग भाषा जो सभी संभावित तारों को अर्थ प्रदान करती है, उपयोगी है। आनुवंशिक प्रोग्रामिंग में, यह माना जाता है कि हमारा मूल्यांकन कार्य एक प्रोग्रामिंग भाषा दुभाषिया है, लेकिन हम अपने कार्यक्रमों के लिए विभिन्न अभ्यावेदन चुन सकते हैं ; उदाहरण के लिए, कई सिस्टम अमूर्त सिंटैक्स पेड़ों पर काम करते हैं। यदि हम स्ट्रिंग्स को अपने प्रतिनिधित्व के रूप में चुनते हैं, तो हम आनुवंशिक एल्गोरिदम के साथ उसी परिदृश्य को पुनर्प्राप्त करते हैं।
एक और स्थिति जहां हम चाहते हैं कि हर स्ट्रिंग एक वैध कार्यक्रम हो, जब कार्यक्रमों की गणना हो । यह संहिताओं द्वारा उल्लिखित आक्षेप से संबंधित है, लेकिन हम कई कारणों से प्राकृतिक संख्याओं के बजाय तारों पर काम करना पसंद कर सकते हैं:
- अगर भाषा में कुछ संरचना है, जैसे। हम सब-स्ट्रिंग्स को अर्थ प्रदान कर सकते हैं, प्राकृतिक संख्याओं में अनुवाद करते समय यह खो सकता है। इस मामले में हम स्ट्रिंग का उपयोग करना पसंद कर सकते हैं, ताकि पूरे प्रोग्राम को एक नंबर के रूप में प्रस्तुत करने के बजाय स्थानीय स्तर पर सब-स्ट्रिंग्स के बारे में तर्क और रूपांतरण कर सकें। यह इस बात के अनुरूप है कि हम अंकगणित के बजाए इंट पर बिटवाइज़ संचालन का उपयोग कैसे करना पसंद कर सकते हैं, जब प्रत्येक बिट का अलग-अलग अर्थ होता है। यह मूल रूप से विकासवादी परिदृश्य का एक सामान्यीकरण है।
- हम मांग पर कार्यक्रम उत्पन्न करना चाहते हैं; उदाहरण के लिए, हम एक प्रोग्राम को निष्पादित करना शुरू कर सकते हैं, जो पूरी तरह से अनिर्धारित है, और केवल तभी उत्पन्न होता है (जैसे बेतरतीब ढंग से) व्यक्तिगत निर्देश (जैसे अक्षर) जब / यदि निर्देश सूचक उन तक पहुंचता है। यह एल्गोरिथम सूचना सिद्धांत में आम है, जहां कार्यक्रम ट्यूरिंग मशीन टेप है, और इसका उद्देश्य यादृच्छिक रूप से उत्पन्न कार्यक्रमों के व्यवहार की विशेषता है। उदाहरण के लिए, हम सुलैमानऑफ को मनमाने ढंग से तार से पहले तैयार कर सकते हैं क्योंकि संभावना है कि एक यादृच्छिक टेप के साथ एक सार्वभौमिक ट्यूरिंग मशीन उस स्ट्रिंग को आउटपुट करेगी।
उदाहरण भाषाओं के संदर्भ में, कई विकासवादी संगणना प्रणालियां पुश परिवार की तरह खड़ी भाषाओं पर आधारित हैं । ये टोकन की मनमानी धाराओं को अनुमति देते हैं (जिसे हम व्यक्तिगत पात्रों के रूप में दर्शा सकते हैं)। कभी-कभी (जैसे BrainSlugs83 के ब्रेनफक उदाहरण के साथ) कोष्ठक को संतुलित करने पर प्रतिबंध है; तथापि, हम करने के लिए इस से संबंधित कर सकते हैं स्वयं परिसीमन कार्यक्रमों में ऐसे ही एक स्ट्रिंग, [
एक मान्य न हो कार्यक्रम है, लेकिन यह है एक वैध कार्यक्रम उपसर्ग । यदि हम स्टड से एक कंपाइलर / दुभाषिया पढ़ने के स्रोत कोड की कल्पना करते हैं, तो यह एक स्ट्रिंग को अस्वीकार नहीं करेगा [
, यह जारी रखने से पहले अधिक इनपुट की प्रतीक्षा करेगा।
बाइनरी कॉम्बिनेशन लॉजिक और बाइनरी लैम्ब्डा कैलकुलस जैसी भाषाएं एल्गोरिथम सूचना सिद्धांत, जैसे काम से सीधे बाहर निकलती हैं। से http://tromp.github.io/cl/cl.html
एक न्यूनतर सार्वभौमिक कंप्यूटर का यह डिज़ाइन कोलमोगोरोव कॉम्प्लेक्सिटी की एक ठोस परिभाषा के साथ आने की मेरी इच्छा से प्रेरित था, जो व्यक्तिगत वस्तुओं की यादृच्छिकता का अध्ययन करता है।
You are a bimbo.