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

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

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

बाद में दान अब्रामोव बिल में आता है और अपनी सभी कैंडी मेज पर रख देता है:
- दान: बिल की ओर अवाक।
- बिल: एक पहली कैंडी में अवाक
- दान: बिल, क्या आप इन कैंडीज में से एक चाहते हैं?
- बिल: हाँ, ज़रूर।
- दान: यहाँ आप हैं।
यह एक संग्रह-नियंत्रित लूप था ।
इसके ठीक बाद, डैन को एक और बैग मिला, सभी कैंडीज़ को टेबल पर रख दिया, उन्हें गिनकर बैग में वापस डाल दिया।
- दान: बिल, मैं अभी भी कैंडी की तरह लग रहा हूँ। क्या आपको कैंडी चाहिए?
- बिल: हाँ, ज़रूर।
- दान: यहाँ आप हैं।
यह एक गिनती-नियंत्रित लूप था ।

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

बज्ने एक बहुत चालाक था, और उसने एक हल ढूंढा:
- बज़्ने: बिल, क्या आप एक कैंडी चाहते हैं।
- बिल: - - -
- Bjarne: ठीक है, मैं `munching खत्म होने तक प्रतीक्षा करें ...
यहां हमें थ्रेड सिंक्रोनाइज़ेशन मिला।
ठीक है, इस बार हम पीटरनोर्ट के लिए फोन करेंगे।
- पीटर: बिल, क्या आप कैंडी चाहते हैं।
- बिल: हाँ! बिल्कुल!
- पीटर: I`ll एक पूरा पैक प्रदान करते हैं। इसे अपने आप से चूना।
अगले बिल में एक-एक करके, बैग से, और एक-एक करके, कैंडीज़ मिलेंगे।
इस ऑपरेशन या अनुक्रम को LIFO कहा जाता है - इसे अंतिम, पहले बाहर। जब तक पैक के नीचे से कैंडी अंतिम खाया जाएगा।
उसी समय, बिल का पाचन एक फीफो है - पहले में, पहले बाहर। आपको इसे पहले जानना था।

डोनाल्ड_Knuth भी खिला टीम में शामिल हो गए। लेकिन एक दिन वह बिल के लिए नई कैंडी खरीदने के लिए थक गया, और उसने एक खानपान कंपनी से इसे करने के लिए कहा।
- डोनाल्ड: अरे, मेरे दोस्त, क्या आप निकटतम दुकान में सबसे अच्छी कैंडी खरीद सकते हैं और उन्हें बिल पेश कर सकते हैं? यहां देखें बिल का पता और पैसा ...
उस समय से बिल में हमेशा डोनाल्ड से नई कैंडीज हैं।
इस मामले में, एक खानपान कंपनी एक कार्य है , और पता और पैसा तर्क हैं । और एक कैंडी एक वापसी मूल्य है ।
यदि एक ही पते और एक ही राशि के बिल के लिए हमेशा एक ही कैंडी मिलेगी - इसे एक शुद्ध कार्य कहा जाएगा।
लेकिन केवल मामले में कंपनी केवल बिंदु ए से बिंदु बी तक कैंडी स्थानांतरित करेगी, और एक दुकान हमेशा एक गैर-शुद्ध कार्य होगी, जब तक कि यह कैंडी बेचकर उन्हें बेच देता है ... और पैसा प्राप्त करना! तो यह आंतरिक स्थिति को बदल देता है ।

लेकिन डेनिस_रिची भी चालाक था!
- डेनिस: हाय बिल, क्या आप एक कैंडी चाहते हैं?
- बिल: आप इसे जानते हैं!
- डेनिस: तो यहाँ एक पता है। आपको अपनी वांछित कैंडी वहां मिल जाएगी।
यह एक पॉइंटर था।
लेकिन, फिर बिल उस पते पर पहुंच गया कि उसे केवल एक गुप्त सैन्य वस्तु मिली। तब से उसे किसी ने नहीं देखा।

कुछ महीने बाद, जेल से भागने के बाद, उन्होंने दोहराने की कोशिश की, लेकिन फिर भी "लक्ष्य" तक नहीं पहुंच सके। इस बार कुछ उसे दूरी पर रोक रहा था - अदृश्य, और जाँच की अविनाशी दीवारों।
लेकिन एक दिन ... यहां तक कि, सच कहने के लिए - रात - साइबरडेम बिल के घर आता है और चिल्लाता है:
- Cyberdemon: क्या आप एक तरह से चाहते हैं?
- बिल: हाँ! समय पर, और सितारों से चमक! हमेशा!
इसलिए, बिल को फिर से अपनी कैंडीज मिल गई हैं। लेकिन यह थोड़ा दुखद कहानी है, जब तक कि वह पेलोड के प्रकार की जांच करना या किसी अन्य डेटा सत्यापन को करना भूल जाता है। ️

उसके बाद बिल एक शून्य में जाग गया, और सुन:
- ब्रह्मांड: बिल! क्या आपको कैंडी चाहिए?
- बिल: हाँ!
- ब्रह्मांड: बिल! क्या आपको कैंडी चाहिए?
- बिल: हाँ!
- ब्रह्मांड: बिल! क्या आपको कैंडी चाहिए?
- बिल: हाँ!
इस तरह पिंग काम करता है।
गैर-शून्य विलंबता वाले अशांत सिस्टमों में ऐसा लग सकता है:
- ब्रह्मांड: बिल! क्या आपको कैंडी चाहिए?
- ब्रह्मांड: बिल! क्या आपको कैंडी चाहिए?
- ब्रह्मांड: बिल! क्या आपको कैंडी चाहिए?
- बिल: हाँ!
- बिल: हाँ!
- बिल: हाँ!
लेकिन यह मामला केवल टीसीपी / यूडीपी के लिए वैध है । टीसीपी / आईपी के मामले में, यह हो सकता है
- ब्रह्मांड: बिल! क्या आपको कैंडी चाहिए? बिल! क्या आपको कैंडी चाहिए?
- ब्रह्मांड: बिल! क्या आपको कैंडी चाहिए?
- बिल: हाँ! हाँ! हाँ!
जब तक सिबलिंग पैकेट समय या आकार कारक (उर्फ एमटीयू ) से जुड़ जाएगा।

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

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