2015-07-07 6 views
10

मैं आमतौर पर एक आम तौर पर ज्ञात compsci कीवर्ड, "emit" प्रतीत होता है पर ठोकर खाई। लेकिन मुझे सामान्य कंप्यूटर विज्ञान शर्तों में इसकी कोई स्पष्ट परिभाषा नहीं मिलती है, न ही किसी विशिष्ट प्रोग्रामिंग भाषा में "emit()" फ़ंक्शन या कीवर्ड की विशिष्ट परिभाषा।सामान्य कंप्यूटर विज्ञान शर्तों में "उत्सर्जित" का अर्थ क्या है?

मैं इसे यहाँ पाया, MapReduce पर पढ़ने:

https://en.wikipedia.org/wiki/MapReduce

मेरी अतिरिक्त खोजों के संदर्भ दिखाने के यह संकेत और/या घटनाओं के साथ कुछ है। लेकिन ऐसा लगता है जैसे यह माना जाता है कि पाठक को पता चलेगा कि "उत्सर्जित" क्या है और करता है। उदाहरण के लिए, MapReduce पैटर्न पर यह लेख:

https://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/

वहाँ क्या "फेंकना" वास्तव में क्या कर रहा है का कोई जिक्र नहीं है, वहाँ केवल यह करने के लिए कॉल कर रहे हैं। यह डेटा लौटने के अन्य रूपों से अलग होना चाहिए, हालांकि, जैसे कि "वापसी" या बस "प्रिंटफ" या समकक्ष, अन्यथा "उत्सर्जित" करने के लिए कॉल को "वापसी" करने के लिए कॉल किया जाएगा।

आगे की खोज, मुझे कई गुना मिला कि मैपरेडस के संदर्भ में "उत्सर्जित" का कुछ छद्म रूप प्रतीत होता है। और नोड.जे.एस. में और क्यूटी में। इसके बारे में बस इतना ही।

संदर्भ: मैं एक (अधिकतर) स्वयं-सिखाया वेब प्रोग्रामर और सिस्टम प्रशासक हूं। मुझे यकीन है कि यह प्रश्न compsci 101 (या 201?) में शामिल है लेकिन मैंने वह कोर्स नहीं लिया।

+1

वैसे इसका मतलब है * बाहर निकालना * ताकि मैं इसे पी-कोड में मेटासिंक्टैक्टिक कहने के रूप में पढ़ सकूं * "यहां उपयोगी डेटा है, इसके साथ कुछ करें" * जैसा कि लौटने/प्रिंट करने जैसी विशिष्ट विशिष्टता निर्दिष्ट करने के विपरीत है/echoing/भंडारण –

+0

भविष्य के लिए बस एक नोट: वास्तव में स्टैक ओवरफ़्लो का एक कंप्यूटर विज्ञान संस्करण है, http://cs.stackexchange.com/ जो इस प्रश्न के लिए अधिक उपयुक्त होगा। यह एक महान साइट है! – OceansOnPluto

+0

यह एक मेटा प्रश्न है: मैं इसे डबल पोस्टिंग के बिना cs.stackexchange में कैसे स्थानांतरित करूं? – JDS

उत्तर

2

मैं तीन संदर्भों जिसमें यह प्रयोग किया जाता है के बारे में सोच सकते हैं:

  • मानचित्र/कार्यों में कमी, जहां कुछ इनपुट मूल्य में कमी समारोह
  • Tokenizers, जहां एक धारा में जाने के लिए 0 या अधिक उत्पादन मूल्यों का कारण बनता है पाठ के संसाधित किया जाता है, और विभिन्न अंतरालों पर, टोकन
  • मैसेजिंग सिस्टम

उत्सर्जित होते हैं मुझे लगता है कि आम धागा "शून्य या अधिक है।" एक return फ़ंक्शन से बिल्कुल एक मान वापस प्रदान करता है, जबकि "emit" एक फ़ंक्शन कॉल होता है जो शून्य बार या कई बार हो सकता है।

+0

इसे "वापसी" की तुलना में "शून्य या अधिक" के आधार पर एक चेक मार्क दे रहा है – JDS

2

मैंने कभी भी एमिट() को अकादमिक में एक सरल कंपाइलर बनाने के दौरान उपयोग किया है।

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

एक बार व्याकरण विश्लेषण पूरा हो जाने के बाद, असेंबलर असेंबली निर्देश लेगा और बाइनरी कोड उत्पन्न करेगा (उर्फ मशीन कोड)।

तो, मुझे नहीं लगता कि emit के लिए एक सामान्य सीएस परिभाषा है; हालांकि, मुझे पता है कि यह संकलक प्रोग्राम लिखने के लिए छद्म कोड (और कभी-कभी, वास्तविक कोड) में उपयोग किया जाता है। और वह अमेरिका में स्नातक स्तर की कंप्यूटर विज्ञान शिक्षा है।

संबंधित मुद्दे