SICP - "कंप्यूटर कार्यक्रम की संरचना और व्याख्या"अवधारणाएं जो आपको एसआईसीपी पढ़ते समय आश्चर्यचकित करती हैं?
उसी के लिए स्पष्टीकरण अच्छा होगा
कुछ एक के बारे में Metalinguistic अमूर्त
SICP - "कंप्यूटर कार्यक्रम की संरचना और व्याख्या"अवधारणाएं जो आपको एसआईसीपी पढ़ते समय आश्चर्यचकित करती हैं?
उसी के लिए स्पष्टीकरण अच्छा होगा
कुछ एक के बारे में Metalinguistic अमूर्त
एसआईसीपी वास्तव में इस बिंदु पर घर चला गया कि कोड और डेटा को एक ही चीज़ के रूप में देखना संभव है।
सार्वभौमिक ट्यूरिंग मशीनों (यूटीएम में इनपुट केवल एक कार्यक्रम का प्रतिनिधित्व है) या वॉन न्यूमैन आर्किटेक्चर (जहां एक एकल स्टोरेज स्ट्रक्चर दोनों कोड और डेटा रखता है) के बारे में सोचते समय मैंने इसे समझा, लेकिन एसआईसीपी ने विचार अधिक स्पष्ट है। योजना (लिस्प) ने यहां सहायता की, क्योंकि कार्यक्रम के लिए वाक्यविन्यास सामान्य रूप से सूचियों के लिए सिंटैक्स जैसा ही है, अर्थात् एस-एक्सप्रेशन।
एक बार आपके पास कोड और डेटा का "समकक्ष" हो जाने के बाद, अचानक कई चीजें आसान हो जाती हैं। उदाहरण के लिए, आप उन कार्यक्रमों को लिख सकते हैं जिनमें विभिन्न मूल्यांकन विधियां हैं (आलसी, नोडेटर्मिनिस्टिक, आदि)। पहले, मैंने सोचा होगा कि इसे प्रोग्रामिंग भाषा के विस्तार की आवश्यकता होगी; हकीकत में, मैं इसे सिर्फ भाषा में जोड़ सकता हूं, इस प्रकार कोर भाषा को न्यूनतम होने की इजाजत देता हूं। एक और उदाहरण के रूप में, आप एक ऑब्जेक्ट उन्मुख ढांचे को समान रूप से कार्यान्वित कर सकते हैं; दोबारा, यह ऐसा कुछ है जो मुझे मूर्खतापूर्ण विचार से भाषा को संशोधित करने की आवश्यकता होगी।
संयोग से, एक चीज जो मैं चाहता हूं कि एसआईसीपी ने अधिक उल्लेख किया है: प्रकार। संकलन पर जांच प्रकार एक अद्भुत बात है। ऑब्जेक्ट उन्मुख प्रोग्रामिंग के एसआईसीपी कार्यान्वयन में यह लाभ नहीं था।
हे ... असेंबली में लेखन ने मुझे कोड और डेटा को एक ही चीज़ के रूप में देखा है। मुझे अभी भी यह याद आती है, कभी-कभी - पुनः लिखना कूद शायद दोनों राज्यों को स्टोर और संभालने के लिए सबसे स्पष्ट * तरीका नहीं था, लेकिन यह निश्चित रूप से * संक्षिप्त * था। :-) –
व्याख्या कर सकते हैं मैं अभी तक कि किताब पढ़ी नहीं किया, मैं केवल वीडियो पाठ्यक्रमों को देखा है, लेकिन यह मुझे बहुत कुछ सिखाया। प्रथम श्रेणी के नागरिकों के रूप में कार्य मेरे लिए दिमाग उड़ रहा था। "चर" को निष्पादित करना मेरे लिए बहुत नया था। उन वीडियो को देखने के बाद जिस तरह से अब मैं जावास्क्रिप्ट और प्रोग्रामिंग सामान्य रूप से देखता हूं, वह बहुत बदल गया है।
ओह, मुझे लगता है कि मैंने झूठ बोला है, जिस चीज ने वास्तव में मुझे मारा वह यह था कि + एक समारोह था।
क्या वीडियो पाठ्यक्रम? एक लिंक है? –
http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ महान सामग्री! –
+1: + एक समारोह है। – romandas
एक अवधारणा जिसे मैं पूरी तरह से अपरिचित था, coroutines का विचार था, यानी पूरक कार्य करने वाले दो कार्य होते हैं और कार्यक्रम प्रवाह प्रवाह उनके बीच वैकल्पिक होते हैं।
जो मैंने सोचा था वह वास्तव में अच्छा था streams देरी मूल्यांकन के साथ। प्राइम पैदा करने के बारे में एक ऐसा था जो मैंने सोचा था कि वास्तव में साफ था। एक "पीईजेड" डिस्पेंसर की तरह जो जादुई रूप से अनुक्रम में अगले प्रधान को बांटता है।
ए रेक्स के उत्तर से "डेटा और कोड एक ही बात है" का एक उदाहरण मुझे बहुत गहराई से मिला।
जब मुझे रूस में लिस्प वापस पढ़ाया गया, तो हमारे शिक्षकों ने हमें बताया कि भाषा सूचियों के बारे में थी: कार, सीडीआर, विपक्ष। वास्तव में मुझे आश्चर्य हुआ कि तथ्य यह है कि आपको उन कार्यों की बिल्कुल आवश्यकता नहीं है - आप अपना खुद का, बंद बंद कर सकते हैं। तो, लिस्प सभी के बाद सूचियों के बारे में नहीं है! यह एक बड़ा आश्चर्य था।
मुझे वह अहसास भी पसंद आया। –
मुझे लगता है कि एसआईसीपी के बारे में सबसे आश्चर्यजनक बात यह है कि ट्यूरिंग पूरी भाषा बनाने के लिए वास्तव में कितने प्राइमेटिव की आवश्यकता होती है - लगभग कुछ भी लगभग कुछ भी नहीं बनाया जा सकता है।
चूंकि हम एसआईसीपी पर चर्चा कर रहे हैं, इसलिए मैं वीडियो व्याख्यान के लिए http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ पर अपने मानक प्लग डालूंगा, जो कि कंप्यूटर साइंस का सबसे अच्छा परिचय है, जिसे आप 20 घंटों में प्राप्त करने की उम्मीद कर सकते हैं।
जब मैं एसआईसीपी पढ़ता हूं तब भी मैं हाई स्कूल में था, और मैंने पहले और दूसरे अध्यायों पर ध्यान केंद्रित किया था। उस समय मेरे लिए, मुझे यह पसंद आया कि आप उन सभी गणितीय विचारों को कोड में व्यक्त कर सकते हैं, और कंप्यूटर में गंदे काम का अधिकांश हिस्सा है।
जब मैं एसआईसीपी का शिक्षण कर रहा था, तो मैं विभिन्न पहलुओं से प्रभावित हुआ। एक के लिए, conundrum कि डेटा और कोड वास्तव में एक ही बात है, क्योंकि कोड निष्पादन योग्य डेटा है। मेटलिंगुस्टिक अबास्ट्रक्शन पर अध्याय कई लोगों के लिए दिमागी दबदबा है और इसमें कई ले-होम संदेश हैं। पहला यह है कि सभी नियम मनमानी हैं। यह कुछ छात्रों को परेशान करता है, विशेष रूप से वे जो भौतिकविद हैं। मुझे लगता है कि सुंदरता खुद नियमों में नहीं है, बल्कि नियमों के परिणाम का अध्ययन करने में है। कोड में एक लाइन परिवर्तन का मतलब लेक्सिकल स्कॉइंग और गतिशील स्कॉइंग के बीच का अंतर हो सकता है।
आज, हालांकि एसआईसीपी अभी भी मजेदार और अंतर्दृष्टिपूर्ण है, लेकिन मुझे समझ में आता है कि यह दिनांकित हो रहा है। एक के लिए, यह डिबगिंग कौशल और उपकरण (मैं वहां टाइप सिस्टम शामिल नहीं करता) पढ़ता नहीं है, जो आज के विशाल सिस्टम में काम करने के लिए आवश्यक है।
क्लोजर के अध्यायों में से कुछ को पढ़ने के बाद अलग अर्थ में Recursion महसूस किया।
मुख्य रूप से अनिवार्य पृष्ठभूमि (जावा, सी #, आदि से आ रहा है - मैंने पहली बार केवल एक साल या उससे पहले एसआईसीपी पढ़ा था, और अब इसे फिर से पढ़ रहा हूं), कार्यात्मक शर्तों में सोचना एक बड़ा प्रकाशन था मेरे लिए; यह आज मेरे काम के बारे में सोचने के तरीके को पूरी तरह बदल गया।
मुझे आश्चर्य हुआ कि भाषाओं को लागू करना कितना आसान है। वह एक ब्लैकबोर्ड पर योजना के लिए दुभाषिया लिख सकता है।
मैं अभी अनुभाग "अनुक्रमिक इंटरफेस के रूप में अनुक्रम" पर हूं और प्रक्रियाओं की अवधारणा को प्रथम श्रेणी के नागरिकों के रूप में काफी आकर्षक पाया है। इसके अलावा, रिकर्सन का आवेदन ऐसा कुछ है जिसे मैंने कभी भी किसी भी भाषा में नहीं देखा है।
http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read जिस पुस्तक का मैं उल्लेख कर रहा हूं वह तीसरा है – yesraaj
कैसे करें आप एक व्यक्तिपरक प्रश्न पर एक बक्षीस डाल दिया? विशेष रूप से वह जो व्यक्तिगत अनुभव से बहुत करीबी है? – AnonJr
मैं वही बात सोच रहा था? – JesperE