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