अधिकांश अनाम कार्यों को JIT संकलित क्यों नहीं किया जा सकता है और उन्हें कभी भी अनुकूलित नहीं किया जाएगा?


10

मैंने अभी कार्यात्मक प्रोग्रामिंग के बारे में https://techfindings.one/archives/2652 पढ़ा और इस पर आ गया:

अनाम फ़ंक्शंस को अक्सर JIT संकलित नहीं किया जा सकता है और इसे कभी भी अनुकूलित नहीं किया जाएगा

क्या कोई मुझे समझा सकता है कि ऐसा क्यों है?



मुझे लगता है कि डाउनवोट यहां उचित नहीं है और मेरे प्रश्न पर भी लिंक लागू नहीं किया जा सकता है। मैं जेआईटी और अनाम कार्यों के बारे में एक तकनीकी सवाल पूछ रहा हूं - मैं राय / स्वाद या चर्चा के लिए नहीं पूछ रहा हूं। मैं दूसरों को यह समझाने के लिए कह रहा हूं कि अनाम फ़ंक्शन को JIT संकलित क्यों नहीं किया जा सकता है। यहां तक ​​कि आपके लिंक का कहना है "मैं दूसरों को ______ को समझाना चाहूंगा", तो आप शायद ठीक हैं "@gnat
thadeuszlay

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

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

मैं आपकी बात देखता हूं और आपसे @SebastianRedl सहमत हूं। मुझे यह कथन समझ में नहीं आया, लेकिन मैंने गहरी राह खोदने के बजाय आसान रास्ता बताया और यहाँ पूछा।
थैडसुजेल

जवाबों:


15

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

उस लेख में कुछ ऐसी ही गलतफहमी है जो दिखाती है कि वह उन मुद्दों को नहीं समझता है जैसे वह सोचता है कि वह करता है। मैं इसे कार्यात्मक प्रोग्रामिंग के बारे में सीखने के लिए भरोसेमंद स्रोत नहीं मानूंगा।


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