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