दीजकस्ट्रा का एक अस्पष्ट कार्यक्रम का उदाहरण


12

अभिवादन। दिज्क्स्त्र ने लिखा है कि प्रतीत होता है कि सरल कोड की कुछ पंक्तियां भी अस्पष्ट रूप से अस्पष्ट हो सकती हैं। कम से कम एक काम में, जिसे मैं अब अपने जीवन को बचाने के लिए नहीं पा सकता हूं, उन्होंने इस अस्पष्टता को प्रदर्शित करने के लिए एक छोटा सा उदाहरण कार्यक्रम दिया। क्या कोई मुझे उसके एक कागज पर इंगित कर सकता है जहां वह इन उदाहरणों में से एक को शामिल करता है?

जवाबों:


11

इसे पढ़ें:

http://en.wikipedia.org/wiki/Halting_problem#Recognizing_partial_solutions

http://www.cs.ucsb.edu/~pconrad/cs40/08S/notes/ में अच्छा कवरेज है; "रुकने की समस्या" की खोज

आवश्यक पड़ाव विरोधाभास के कई रूप हैं।

def halts( code_block ):
    # Some magical code

def whistler():
    while halts(whistler): 
        sys.whistle( 1 )

क्या "व्हिसलर" सीटी शून्य है, एक बार या अनंत बार?

यदि halts()फ़ंक्शन निर्धारित करता है कि फ़ंक्शन whistlerरुक रहा है, तो फ़ंक्शन whistlerरुक नहीं सकता है।

यदि halts()फ़ंक्शन निर्धारित करता है कि फ़ंक्शन whistlerरुकता नहीं है, तो फ़ंक्शन whistlerरुकता है।

इसलिए, halts()फ़ंक्शन मौजूद नहीं हो सकता।


4
आप तीसरा विकल्प भूल गए, जहां यह लौटता है FILE_NOT_FOUND;)
FrustratedWithFormsDesigner

2
धन्यवाद! हालांकि मैंने जो पेपर पढ़ा था उसमें दिक्जस्त्र का वर्णन किया गया था, हालांकि यह समस्या नहीं थी। यह सरल कोड की कुछ पंक्तियाँ हैं, लेकिन आप इसका मतलब नहीं बता सकते। संदर्भ यह है कि दिज्क्स्ट्रा उन तरीकों के बारे में बात कर रहा है जो वह दर्शकों को प्रदर्शित करने के लिए उपयोग करता है कि प्रोग्रामिंग कठिन है, इसलिए प्रोग्रामर को विनम्र होना चाहिए। ध्यान दें कि कागज नहीं है, मुझे यह कहते हुए दुख हो रहा है, "विनम्र प्रोग्रामर।" :)
दीजकस्ट्रा रीडर

क्या आप cs.utexas.edu/users/EWD/trans बने/EWD06xx/EWD658.html के बारे में बात कर रहे हैं ?
S.Lott

एक बार फिर धन्यवाद। दुख की बात है, यह एक नहीं है। जिस पेपर की मैं बात कर रहा हूं, उसमें दिक्जस्त्र विशेष रूप से कहते हैं कि प्रोग्रामिंग कठिन है, यहां तक ​​कि चतुर लोगों के लिए भी, हमें इस बात का सम्मान करना होगा, "उदाहरण के लिए, निम्नलिखित छोटे कार्यक्रम क्या करता है?"
दिजाक्षर पाठक

शायद cs.utexas.edu/~EWD/transक्रिप्शन/EWD03xx/EWD340.html नहीं । लेकिन मैं इसे एक आम प्रशस्ति पत्र के रूप में उठाता हूं कि प्रोग्रामिंग कितना कठिन है।
एस.लॉट

2

क्या आप सुनिश्चित हैं कि पेपर दीजकस्ट्रा द्वारा किया गया था? केन थॉम्पसन द्वारा ट्रस्टिंग ट्रस्ट पर विचार यह लगता है कि आप क्या सोच रहे थे। यह दर्शाता है कि कैसे बिल्कुल सरल, सीधा और सही कार्यक्रम कुछ बिल्कुल अप्रत्याशित कर सकता है जो स्रोत में बिल्कुल भी दिखाई नहीं देता है। यहां तक ​​कि अगर यह आप के बारे में नहीं सोच रहा था, यह पढ़ने के लिए एक सार्थक कागज है।

एक अलग दिशा में जा रहे हैं, अगर आप आश्चर्यजनक व्यवहार के साथ छोटे कार्यक्रमों के उत्कृष्ट उदाहरण चाहते हैं, तो अंडरहैंड सी प्रतियोगिता महान है। उदाहरण के लिए 2008 के विजेता को देखें। एक तस्वीर के हिस्से को खाली करने के लिए एक कमांड लाइन प्रोग्राम लिखने की चुनौती थी, इस तरह से कि चित्र नेत्रहीन पूरी तरह से खाली हो गया था, लेकिन फ़ाइल छवि के नए हिस्से के बारे में कुछ जानकारी बरकरार रखती है। और इस तरह से कि आपका कोड कोड समीक्षा पास कर सके। (आप वह प्रारूप चुन सकते हैं जिसमें चित्र संग्रहीत है।)


धन्यवाद! हां, यह निश्चित रूप से दिक्जस्त्र द्वारा एक पेपर है जिसका मैं उल्लेख कर रहा हूं।
दिजाक्षर पाठक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.