अनिवार्य प्रोग्रामिंग का सैद्धांतिक आधार क्या है?


48

कार्यात्मक प्रोग्रामिंग में लैम्ब्डा कैलकुलस और कॉम्बिनेटरी लॉजिक में एक सैद्धांतिक आधार है । जैसा कि कोई सांख्यिकीय कंप्यूटिंग से जुड़ा है, मुझे लगता है कि ये अवधारणाएँ मॉडलिंग के लिए बहुत उपयोगी हैं।

क्या अनिवार्य प्रोग्रामिंग का एक समान गणितीय आधार है , या क्या यह मशीन की भाषा में व्यावहारिक हार्डवेयर अनुप्रयोग और फोरट्रान के बाद के विकास से विकसित हुआ है ?

जवाबों:


27

सामान्य तौर पर, जब गणित का उपयोग कुछ एक्स का अध्ययन करने के लिए किया जाता है, तो पहले एक को एक्स के मॉडल की आवश्यकता होती है , और फिर एक सिद्धांत विकसित होता है, उस मॉडल के परिणामों का एक सेट। मुझे लगता है कि X के लिए सिद्धांत को "सैद्धांतिक आधार" कहा जा सकता है । अब X = संगणना सेट करें। रहे हैं कई गणना के मॉडल, कई को शामिल "राज्य"। प्रत्येक मॉडल का अपना "सिद्धांत" होता है और कभी-कभी मॉडल के बीच "अनुवाद" करना संभव होता है। मेरा मानना ​​है कि यह कहना मुश्किल है कि कौन सा मॉडल अधिक "बुनियादी" है --- वे बस विभिन्न लक्ष्यों को ध्यान में रखते हुए डिज़ाइन किए गए हैं।

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

यदि आप शुद्धता की परवाह करते हैं , तो अभी भी अन्य मॉडल उपयोगी हैं। यहाँ आप परिचालन अर्थ विज्ञान (जो मैं कहेंगे statefull संगणना के लिए लैम्ब्डा पथरी के अनुरूप है), स्वयंसिद्ध अर्थ विज्ञान (1967 से फ्लोयड के आगमनात्मक कथनों के आधार पर होरे द्वारा 1969 में विकसित की है, जिसमें नुथ ने लोकप्रिय किया जाता है आर्ट ऑफ़ कंप्यूटर प्रोग्रामिंग , मात्रा 1), और अन्य।

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

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


4
मुझे लगता है कि ऑपरेशनल शब्दार्थ वास्तव में पोस्टर की तलाश में है। विकिपीडिया पर थोड़ी अधिक जानकारी: en.wikipedia.org/wiki/Operational_semantics
sclv

22

एक अनिवार्य कार्यक्रम का सबसे सरल सैद्धांतिक मॉडल ट्यूरिंग मशीन ही है। इसमें एक अनिवार्य कार्यक्रम के दोनों आवश्यक घटक होते हैं: अबाधित परिवर्तनीय राज्य और उस पर काम करने वाली एक राज्य मशीन।

आप प्रोग्राम को मानदिक कार्यों की रचनाओं के रूप में कार्यात्मक प्रोग्रामिंग में अनिवार्य प्रोग्रामिंग को आधार बना सकते हैं जो वैश्विक राज्य के संशोधित संस्करणों को पारित और वापस करते हैं, जैसा कि हास्केल प्रोग्रामिंग भाषा में किया गया है।


2
विशुद्ध रूप से कार्यात्मक भाषा (जैसे हास्केल) में अनिवार्य जैसे निर्माण प्राप्त करने के लिए मठों का उपयोग करने से आपको अनिवार्य प्रोग्रामिंग की पूरी शक्ति नहीं मिलती है। विशेष रूप से, वास्तव में उत्परिवर्तित स्थिति के बिना (उदाहरण के साथ कई भाषाओं में), अभी भी कई डेटा संरचनाएं हैं जिनके विशुद्ध रूप से कार्यात्मक भाषा में कुशल कार्यान्वयन अज्ञात है।
जोशुआ ग्रूको

@ जोशुआ: आपको क्यों लगता है कि राज्य के भिक्षु संदर्भों के शब्दार्थ को व्यक्त नहीं करते हैं? मुझे यह समझने में हानि हो रही है कि आपत्ति क्या हो सकती है।
चार्ल्स स्टीवर्ट

एक राज्य मोनाड मूल रूप से वाक्य रचना चीनी है, जिसमें सभी कार्यों का एक संग्रह होता है जो सभी एक अतिरिक्त तर्क (राज्य) को स्वीकार करते हैं और एक अतिरिक्त आउटपुट (अगले राज्य) का उत्पादन करते हैं। लेकिन विशुद्ध रूप से कार्यात्मक भाषा में आप वास्तव में राज्य को अगले राज्य को प्राप्त करने के लिए संशोधित नहीं कर सकते हैं, फिर भी आपको कॉपी और पुनर्निर्माण करना होगा। मुझे नहीं पता कि क्या विशिष्ट डेटा संरचनाएं हैं जहां यह ज्ञात है कि उन्हें विशुद्ध रूप से कार्यात्मक भाषा में कुशलता से लागू नहीं किया जा सकता है, लेकिन निश्चित रूप से विचारोत्तेजक साक्ष्य हैं (उदाहरण के लिए पिप्पेनगर। शुद्ध बनाम अशुद्ध लिस्प। 1997)।
जोशुआ ग्रूचो

6
एक म्यूटेशन के साथ उत्परिवर्तन के शब्दार्थ को पूरी तरह से अच्छी तरह से पकड़ सकते हैं - जैसे, हास्केल में एसटी मोनाड। हम यहां शब्दार्थ की बात कर रहे हैं, कार्यान्वयन की नहीं।
sclv

20

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


8
मोनाड्स का उपयोग विशुद्ध रूप से कार्यात्मक दुनिया में अनिवार्य प्रोग्रामिंग को बंद करने के लिए किया जा सकता है, लेकिन मैं यह दावा करने के लिए मामला नहीं देख सकता हूं कि वे लंबो कैलकुलस और कई कार्यात्मक भाषाओं के बीच संबंध के लिए अनिवार्य प्रोग्रामिंग प्रोग्रामिंग के लिए एक सैद्धांतिक आधार बनाते हैं। मोनाड्स गणना का मॉडल नहीं बनाते हैं क्योंकि वे अभिकलन के वर्गों (जैसे कि शुद्ध संगणना बनाम संगणना जिसमें IO शामिल हैं, या अभिकलन जो उत्परिवर्तित अवस्था के एक विशेष बंडल पर निर्भर करता है) पर एक अमूर्तता का निर्माण करते हैं।
21

1
मोनाड्स प्रभावशाली भाषाओं के लिए स्पष्ट अर्थात्मक शब्दार्थ लिखने का एक तरीका है, तो क्यों नहीं?
14

15

यदि आप एक अनिवार्य प्रोग्रामिंग भाषा के कठोर गणितीय उपचार की तलाश कर रहे हैं, तो Winskel की पुस्तक "प्रोग्रामिंग भाषाओं का औपचारिक शब्दार्थ" (1993) एक उदाहरण है।

पुस्तक में, वह ईपीपी नामक एक अनिवार्य प्रोग्रामिंग भाषा को परिभाषित करता है और इसका परिचालन, संप्रदायात्मक और स्वयंसिद्ध अर्थ प्रदान करता है।


14

मैं देर से इस सवाल पर आ रहा हूं, लेकिन यह एक आकर्षक सवाल है। तो, यहाँ मेरे विचार हैं।

जब मैं एक अंडरग्रेजुएट था, हमारे पास एक महान गणित प्रोफेसर था, जो हमें इतिहास और गणित के विकास पर व्याख्यान देने के लिए इस्तेमाल करता था। उनके अनुसार, गणित "विस्तार" और "समेकन" की तरंगों में विकसित हुआ। एक विस्तार चरण के दौरान, पहले से अज्ञात नए विचारों पर विचार किया गया और जांच की गई। फिर, एक समेकन चरण के दौरान, नए सिद्धांतों को ज्ञान के मौजूदा शरीर में एकीकृत किया गया था। हालांकि, 20 वीं शताब्दी में, उन्होंने कहा, समानांतर में विस्तार और समेकन चल रहा है।

इम्पीरियल प्रोग्रामिंग वर्तमान में गणित के लिए एक विस्तार गतिविधि है। यह पहले "अज्ञात" था। (यह पूरी तरह से सच नहीं हो सकता है। होरे हमें बताता है कि यूक्लिड अपनी ज्यामिति में अनिवार्य प्रोग्रामिंग की तरह कुछ कर रहा था। लेकिन गणित ने इसमें रुचि खो दी, बेहतर या बदतर के लिए।) गणितज्ञों को अभी भी आवश्यक नहीं है कि वे आवश्यक प्रोग्रामिंग में रुचि रखें। उनके लिए इतना नुकसान। लेकिन मैं सभी कंप्यूटर साइंस को एक सार अर्थ में गणित की एक शाखा के रूप में मानता हूं। हम इसका अध्ययन कर रहे हैं, इस प्रक्रिया में गणित का विस्तार कर रहे हैं।

इसलिए, मुझे विशेष रूप से परवाह नहीं होगी कि क्या अनिवार्य प्रोग्रामिंग के लिए एक प्राथमिक सैद्धांतिक आधार है। यदि कोई नहीं है, तो हमें जाने दें और उसे खोजें। जो हम पहले से जानते हैं वह बताता है कि अनिवार्य प्रोग्रामिंग काल्पनिक रूप से गहरी और सुंदर है। तुलनात्मक रूप से कार्यात्मक प्रोग्रामिंग ताल। लेकिन, इस सारे सिद्धांत को लोगों तक पहुंचाने के लिए हमारे पास बहुत काम है।


"तुलनात्मक रूप से कार्यात्मक प्रोग्रामिंग ताल।" अब अगर केवल मैं और बॉब हार्पर ही आपस में लड़ सकते थे। आप कमांड के एक बड़े ब्लॉक को स्विंग करेंगे और वह आपके ऊपर एक क्लोजर डालने की कोशिश करेगा। (पुनश्च: बहुत अच्छा जवाब है, मैंने इसे उकेरा है।)
बाउर

खैर, वह मुझसे बचता है। मुझे नहीं पता कि इसका मतलब कुछ भी है :-)
उदय रेड्डी

11

कार्यात्मक प्रोग्रामिंग का गणित में एक स्पष्ट आधार है क्योंकि कार्यात्मक प्रोग्रामिंग भाषाएं प्रासंगिक गणित के समानांतर विकसित हुई हैं और उनके डिजाइनरों ने आम तौर पर गणित को उच्च संबंध में रखा है। मजबूत और सीधा रिश्ता एक आत्मनिर्भर भविष्यवाणी है।

इम्पीरेटिव प्रोग्रामिंग का एक महत्वपूर्ण गड़बड़ इतिहास है जो व्यापार और इंजीनियरिंग की समस्याओं के बहुत करीब से जुड़ा हुआ है और ऐतिहासिक रूप से संकलक के प्रदर्शन और गणितीय औपचारिकताओं का सम्मान करने की तुलना में उनके द्वारा उत्पन्न कोड से बहुत अधिक चिंतित है।

कई लोगों ने (पारंपरिक रूप से) कार्यात्मक शब्दों में अनिवार्य प्रोग्रामिंग की व्याख्या करने का प्रयास किया है। यह वह निकटतम हो सकता है जो हम आपको ढूंढ रहे हैं, लेकिन आप इन प्रयासों को लगातार अजीब, थकाऊ, फोरेंसिक समझ सकते हैं। मुझे पूरा यकीन है कि मैं सीएलआर के लिए प्रगति / परिरक्षण प्रमाण पढ़ने की बजाय अपने चेहरे से आंखें फाड़ूंगा।

आम तौर पर यदि आप एक सभ्य pl पाठ्यपुस्तक (जैसे पियर्स के प्रकार और प्रोग्रामिंग भाषा) के अंत की ओर आते हैं, तो आप अनिवार्य भाषा सुविधाओं के औपचारिक मॉडलिंग को देखना शुरू करेंगे। यह आपके लिए दिलचस्प हो सकता है।


11

An Axiomatic Basis for Computer Programming CAR HOARE द्वारा

इस पत्र में उन तकनीकों का उपयोग करके कंप्यूटर प्रोग्रामिंग की तार्किक नींव का पता लगाने का प्रयास किया जाता है, जिन्हें पहले ज्यामिति के अध्ययन में लागू किया गया था और बाद में गणित की अन्य शाखाओं के लिए बढ़ा दिया गया है। इसमें स्वयंसिद्धों के सेटों का विलोपन और निष्कासन के नियम शामिल हैं जिनका उपयोग कंप्यूटर प्रोग्राम के गुणों के प्रमाण में किया जा सकता है। उदाहरण ऐसे स्वयंसिद्ध और नियमों के दिए गए हैं, और एक साधारण प्रमेय का औपचारिक प्रमाण प्रदर्शित किया गया है। अंत में, यह तर्क दिया जाता है कि सैद्धांतिक और व्यावहारिक दोनों महत्वपूर्ण लाभ, इन विषयों के अनुसरण से हो सकते हैं।

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.85.8553&rep=rep1&type=pdf


8

मैंने दूसरा कहा कि अलेक्जेंड्रे ने कहा कि ट्यूरिंग मशीन ने मूल प्रोग्रामिंग के लिए मूल सैद्धांतिक आधार प्रदान किया। इस हद तक कि अनिवार्य प्रोग्रामिंग भाषाओं का संगठन मशीन वास्तुकला को दर्शाता है, मुझे लगता है कि जॉन वॉन न्यूमैन का काम भी उनकी सैद्धांतिक नींव का एक महत्वपूर्ण हिस्सा होगा।


7

क्या अनिवार्य प्रोग्रामिंग का एक समान गणितीय आधार है, या क्या यह मशीन की भाषा में व्यावहारिक हार्डवेयर अनुप्रयोग और फोरट्रान के बाद के विकास से विकसित हुआ है?

यदि आप ऐतिहासिक अर्थ में "आधार" का अर्थ करते हैं, तो मुझे लगता है कि कोई "समकक्ष गणितीय आधार" नहीं है। हालाँकि, भले ही अनुभवजन्य प्रोग्रामिंग व्यावहारिक चिंताओं से बाहर हो गई हो, लेकिन व्यापक प्रोग्रामिंग के अर्थ को व्यापक तरीके से चिह्नित करने के कई तरीके हैं जो आपको "मॉडलिंग के लिए उपयोगी" मिल सकते हैं, जैसे कि होरे तर्क


क्या आपका वास्तव में इस समुदाय को विकि बनाने का मतलब है?
सुरेश वेंकट

हां, मेरा मतलब इसे सामुदायिक विकि बनाना था।
jbapple

7

इस तर्क पर सही तर्क और अलगाव का उल्लेख करने वाले पोस्ट इस मामले में सही हैं। होरे लॉजिक आपको किसी प्रोग्राम के संपूर्ण हीप कॉन्फिगरेशन के स्टेट्स प्रॉपर्टीज की सुविधा देता है, और सेपरेशन लॉजिक अधिक आधुनिक रिलेटिव है, जो आपको "सेपरेटिंग कॉन्सुलेशन" का उपयोग करने देता है, जो आपको कोड के एक सेगमेंट में प्री और पोस्ट की शर्तों के अनुसार स्टेट्स देता है, जिसके लिए प्रॉपर्टीज होल्ड करती हैं। ढेर का वह भाग जिसे कार्यक्रम खंड बाकी ढेर से अधिक मात्रा में लेते हुए हेरफेर करेगा।

मोनाड्स के बारे में जवाब कड़ाई से सटीक नहीं है, क्योंकि हैस्केल में एक मोनाड का उपयोग केवल इसलिए किया जाता है क्योंकि यह एक अमूर्त है जो मूल्यांकन बाधाओं के आदेश के एन्कोडिंग और "आईओ" संपत्ति का उपयोग कर सकता है।

यह इंगित करने के लायक है कि होरे / पृथक्करण तर्क दोनों को भिक्षुओं के रूप में देखा जा सकता है, और कई समकालीन परियोजनाएं हैं जैसे कि हार्वर्ड में यॉट परियोजना जो इन विषयों की खोज कर रही हैं।

जुदाई तर्क में अनुसंधान एक निरंतर और सक्रिय क्षेत्र है।


यह मुझे इस तथ्य को भ्रमित करने के लिए एक त्रुटि लगती है कि हास्केल अधिक सामान्य दृष्टिकोण के साथ मोनाड्स (और एक मोनाड टाइपकास्ट) की धारणा का उपयोग करता है, जैसे कि मोग्गी, जो कि संन्यासी का उपयोग करता है। संरचना को प्रोग्रामिंग के लिए एक उपकरण के रूप में साधुओं को अपनाने से हमें प्रोग्रामिंग के बारे में तर्क करने के लिए एक उपकरण के रूप में स्पष्ट शब्दार्थ के उपयोग के लिए अंधा नहीं होना चाहिए ।
sclv

बहुत अच्छा स्पष्टीकरण, हालांकि मेरा मानना ​​है कि लोगों की एक पूरी नींद ने मोनाड ट्रांसफॉर्मर के माध्यम से शब्दार्थ का पता लगाने के लिए मोनाड्स का इस्तेमाल किया है। विशेष रूप से, उक्त ट्रांसफार्मर की विभिन्न रचनाओं (जैसे राज्य / उत्परिवर्तन, निरंतरता,
नॉनडेटर्मिनिज़म

5

मैं इस सवाल पर बाद में भी आ रहा हूं, लेकिन मैं इसके बारे में भी उतना ही रोमांचित हूं।

क्यों अनिवार्य प्रोग्रामिंग के सिद्धांत से कम व्यवस्थित माना जाता है कि कार्यात्मक प्रोग्रामिंग मुझे विकसित करता है। संभवतः 1969 में स्कॉट और डी बकर के साथ एक गंभीर अनिवार्य भाषा [1] में पुनरावृत्ति के अर्थ के विश्लेषण के साथ यह गंभीर होने लगा। जब अनिवार्य भाषा का लाभ होता है, तो कहानी थोड़ी गड़बड़ हो जाती है, लेकिन यह धातु के करीब होने के लिए भुगतान करने की कीमत है। अधिक व्यापक प्रयासों में से एक का नाम लेने के लिए, 1980 में, डे बेकर, डी ब्रुइन और ज़कर ने इस विषय पर एक मोनोग्राफ लिखा [2]। अन्य का उल्लेख ऊपर किया गया था। पूर्व-तिथि अलगाव तर्क के ये संदर्भ लेकिन [2] फिर भी सरणियों और परस्पर पुनरावर्ती प्रक्रियाओं से निपटते हैं।

[१]: १ ९ ६ ९ में अप्रकाशित लेकिन जैको डब्ल्यू। डी। बेकर और डाना एस। स्कॉट के रूप में दिखाई दिए। ए थ्योरी ऑफ़ प्रोग्राम्स , पेज 1-30। क्लॉप एट अल में। जेडब्ल्यू डी बक्कर, 25 जार सेमिन्टिक। CWI, एम्स्टर्डम, 1989. लिबर एमोरिकम।

[२]: जेकोबस डब्ल्यू। डी। बेकर, एरी डी ब्रुइन, जेफरी जुकर: प्रोग्राम की शुद्धता का गणितीय सिद्धांत। अप्रेंटिस हॉल 1980।


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

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

@Kai। धागे में आपका स्वागत है! डी बककर के काम को देखे हुए मुझे एक लंबा समय हो गया है, लेकिन मुझे लगता है कि मूल समस्या यह है कि दृष्टिकोण में कोई पैमाना नहीं था। तब से अनिवार्य प्रोग्रामिंग पर प्रगति का एक त्वरित सारांश के लिए "क्या अर्थसूचक शब्दार्थ का गठन करता है?" धागा लिंक
उदय रेड्डी

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

3

अपना प्रश्न पूछने के कुछ ही समय बाद, मैकमास्टर यूनिवर्सिटी के मार्क बेंडर ने एक थीसिस जारी की: असाइनमेंट कैलकुलस: ए प्योर इम्पेरेटिव रीजनिंग लैंग्वेज (2010 सितंबर 8)। यह थीसिस लैम्ब्डा कैलकुलस के अनुरूप एक सरल, अनिवार्य भाषा का वर्णन करती है।

असाइनमेंट कैलकुलस में केवल चार मूल निर्माण, असाइनमेंट X:=t, अनुक्रम t;u, प्रक्रिया गठन ¡tऔर प्रक्रिया आह्वान शामिल हैं !t। एसी के लिए तीन व्याख्याएँ दी गई हैं: एक परिचालन शब्दार्थ, एक संप्रदायिक शब्दार्थ और एक पुनर्लेखन प्रणाली। तीनों को समतुल्य दिखाया गया है।

मार्क बेंडर की थीसिस आलसी मूल्यांकन, बैकट्रैकिंग, प्रक्रिया रचना के साथ विस्तारित वेरिएंट का पता लगाने के लिए जाती है। यह छोटे एक्सटेंशन के उपयोग द्वारा लैम्ब्डा कैलकुलस की खोज के समान है।

कुल मिलाकर, थीसिस ओपी प्रश्न का अपेक्षाकृत सीधा उत्तर प्रदान करता है।


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