क्यों पूर्णांकों के बजाय भीलों?


28

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

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

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


मुझे लगता है कि यह एक शोध स्तर का सवाल नहीं है, हालांकि एक दिलचस्प है।
राफेल

4
यह नहीं है, लेकिन यह एक तरह का बड़ा चित्र है, जिसे हम स्वीकार करते हैं।
सुरेश वेंकट

1
मैं सोच रहा था कि किसी तरह से गैर-नकारात्मक पूर्णांकों का सेट 0-मान के अद्वितीय गुणों के कारण प्राकृतिक संख्याओं की तुलना में अधिक मौलिक हो सकता है जो उत्तरार्द्ध में मौजूद नहीं है। मैं यह भी सुझाव दूंगा कि यह अधिक मान्य है क्योंकि डिजिटल कंप्यूटर के लिए मौलिक संख्यात्मक प्रकार की पसंद को 0. 0 का महत्व दिया गया है।
रिचर्ड कुक

मुझे आपका UPD समझ नहीं आ रहा है । पूर्णांक की तुलना में नैचुरल अधिक मौलिक हैं, और उत्तर इस बात का उदाहरण देते हैं कि ऐसा क्यों है।
रादु GRIGore

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

जवाबों:


24

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

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


20

पूर्णांकों की तुलना में नैचुरल बहुत अधिक मौलिक अवधारणा है।

इंडक्शन न्यूरल के ऊपर होता है और पूर्णांक एक उलटा उलटा ऑपरेटर के साधारण जोड़ के साथ न्यूट्रल से प्राप्त किया जा सकता है।

मैं वास्तव में उल्टा सवाल पूछना चाहता हूं: शुरुआती प्रोग्रामिंग भाषा (और रजिस्टर मशीन) डिजाइनरों ने मूल डेटा प्रकार के रूप में एनजाइना को कैसे पूर्ण किया, जब वे इतनी माध्यमिक हैं और इतनी आसानी से भीलों से ली गई हैं?

मुझे संदेह है कि यह सिर्फ इसलिए है क्योंकि कुछ शांत बाइनरी एन्कोडिंग थे जो पूर्णांकों को सुरुचिपूर्ण ढंग से संभाल सकते थे। ;-)

सोचें कि आप कितनी बार प्रोग्रामेटिक पूर्णांक की ऋणात्मक श्रेणी को अनदेखा करना चाहते हैं, और आवेग को एक खोए हुए बिट को पुनर्प्राप्त करने के लिए अहस्ताक्षरित पूर्णांक प्रकार है।


5
एक और कारण: यदि आप चर्च के अंकों की तरह कुछ चाहते हैं, तो एक नकारात्मक पूर्णांक को फ़ंक्शन व्युत्क्रम को निरूपित करना होगा। तो उस संदर्भ में पूर्णांक द्विगुणित कार्य की गणना में अधिक स्वाभाविक होगा।
प्रति वोगेन

@Per Vognsen: सुनिश्चित नहीं है कि आप किस तरह से वहां बहस कर रहे हैं। लेकिन मुझे लगता है कि यह कहना सुरक्षित है कि कम्प्यूटेशनल बायजेक्टिव फ़ंक्शन अधिकांश समय मनमाने ढंग से कम्प्यूटेशनल कार्यों की तुलना में कम मौलिक होते हैं। ;-)
मार्क हमन

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

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


11

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

जितनी प्रोग्रामिंग मैं करता हूं जहां मुझे उच्च आश्वासन चाहिए, उतना ही मुझे भीलों की आवश्यकता होती है, और मुझे केवल एक वास्तविक दर्द के लिए पूर्व-परिभाषित किए गए पूर्णांक मिलते हैं।


ऐसी भाषाएं हैं जिनके लिए एक मूल प्रकार के भीलों हैं, आप जानते हैं।
राफेल

@ राफेल: मुझे पता है। लेकिन वे नहीं जिन्हें मैं पसंद करता हूं (जैसे हास्केल और ओकेमेल)। मैं अगड़ा या कोक में 'प्रोग्रामिंग' शुरू करने के लिए बिल्कुल तैयार नहीं हूं।
जैक्स केयरटे

उद्धरणों के बारे में इतना बुरा क्या है?
डेविड हैरिस

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

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

7

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

तो, वहाँ, आपके पास सबूत है कि यह आवश्यक नहीं है। वास्तव में, मैं यह दावा करूंगा कि एक अच्छी पीएल थ्योरी टेक्स्ट बुक प्रोग्रामिंग भाषा के आदिम प्रकारों में पैरामीट्रिक होनी चाहिए , और अन्यथा सुझाव देना भ्रामक है।


6

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


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