क्यों कर रहे हैं पुनर्लेखन?


12

मैंने थोड़ा सा गूगलिंग कर लिया है और थोड़ा सा ऊपर आ गया हूं।

मैं सोच रहा हूं कि कंप्यूटिंग पुनर्लेखन, शब्द पुनर्लेखन, और / या ग्राफ़ ग्राफ पुनर्लेखन के मुख्य कारण क्या हैं।

जहाँ तक मैं बता सकता हूँ, यह सिर्फ कार्यात्मक कार्यक्रमों और (अनिवार्य) नियंत्रण के बारे में बुनियादी तर्क के लिए मदद करता है। जाहिर है, यह तर्कशास्त्रियों और रचनात्मक अमूर्त बीजगणित का अध्ययन करने वालों के लिए बहुत रुचि का विषय है।

कोई भी सहायता सराहनीय होगी!

जवाबों:


11

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

जैसा कि आप जानते हैं, व्याकरण स्ट्रिंग पुनर्लेखन प्रणाली है। चॉम्स्की पदानुक्रम के शीर्ष पर, आपके पास प्रकार 0 व्याकरण हैं, जो पुनरावर्ती रूप से गणना योग्य (आरई) एनगेज को परिभाषित करते हैं, और ट्यूरिंग मशीनों की कम्प्यूटेशनल शक्ति है।

तो यह आपको बताता है कि सामान्य रूप से पुनर्लेखन प्रणाली का एल्गोरिदम व्यक्त करने के साथ बहुत कुछ होता है।

सामान्य रूप से तार के साथ समस्या यह है कि उनके लिए शब्दार्थ को संलग्न करने का कोई स्पष्ट तरीका नहीं है। यह एक प्रकार का अनाकार पुनर्लेखन है।

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

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

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

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

मेरा सुझाव है कि आप इस विषय पर विकिपीडिया लेख देखें


6

मेरा विचार है, ऐसा इसलिए है क्योंकि टर्म रिवरिटिंग कुछ बेहद मौलिक है, और यह आपको किसी भी हार्डवेयर से स्वतंत्र, बेहद निम्न-स्तरीय तरीके से चीजों का वर्णन करने देता है।

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

यह तब आपको मैकेनिक देता है जिसे आपको लैम्बडा कैलकुलस के बारे में तार्किक / स्वयंसिद्ध प्रणाली के रूप में बात करनी चाहिए, जो आपको गणना का एक अत्यंत औपचारिक, मौलिक संस्करण प्रदान करता है।

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

दूसरी ओर, लैम्ब्डा कैलकुलस को तर्क की दृष्टि से परिभाषित किया गया है, इसलिए आप इसे सेट थ्योरी, फ़ंक्शंस आदि के लिए परिभाषाओं के बिना बहुत अधिक उपयोग कर सकते हैं।

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


2

एक बहुत ही व्यावहारिक कारण यह है कि यह प्रोग्राम ट्रांसफ़ॉर्मेशन सिस्टम , टूल के निर्माण की ओर जाता है जो सतह-सिंटैक्स रीराइट्स का उपयोग करके प्रोग्राम को शब्दों (सार सिंटैक्स ट्री) के रूप में कोड को हेरफेर करने देता है।

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

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