स्वर्ग भाषा। किस भाषा में, एडम ने बात की और स्वर्ग में क्यों शांत है? वे किस भाषा में स्वर्ग में बोलते हैं

Assalym Aleikum Va Rokhamatullahi Va Barakatuhu!
"अरबी भाषा - स्वर्ग के निवासियों की भाषा!" (अनुमानित अर्थ)
प्रिय भाई इस हडिस के बारे में सवाल स्पष्ट करने के लिए कहते हैं, क्या वह विश्वसनीय है? आम तौर पर, चाहे ये शब्द पैगंबर मुहम्मद, अलीई सवोलिया वीए सलाम के शब्द हैं?
Barakallahi Fikum UA Jazzakumullah Hiran!

Vas Aleikum Salam Va Rakhmatullahi Va Barakatuh!

Abu, Khruire रिपोर्ट के अनुसार, अल-औसात में Tabrani,
"अल्लाह के मैसेंजर, अल्लाह उसे आशीर्वाद दे सकते हैं और स्वागत करते हैं: "मैं अरब में अरब हूं, अरबी में कुरान, और स्वर्ग के मठ की भाषा अरबी होगी।"

शेख अल्बानी ने उन्हें 161 पर "सिल्सिल विज्ञापन-दाफा" में लाया:

"इस हेडिस का आविष्कार किया गया है (मुदु ')। वास्तव में, एक विश्वसनीय हदीस नहीं है, जो स्पष्ट करता है कि स्वर्ग के निवासियों किस भाषा में बात करेंगे, इसलिए मौन रखना और इस मुद्दे के बारे में वार्तालापों में गोता नहीं लगाना, अल्लाह, और सौदा करने के लिए ज्ञान प्रदान करना, और सौदा किया जाता है केवल वही काम करने के लिए नेतृत्व करेंगे जो दुनिया में दुनिया में लाभान्वित होंगे!
शेखुल-इस्लाम इब्न ताइमीिया, हां, वह अपने अल्लाह से बचता है, पूछा: "लोग किस भाषा में पुनरुत्थान के दिन बात करेंगे? क्या सर्वशक्तिमान अल्लाह अरबी में लोगों की ओर मुड़ जाएगा? और क्या यह विश्वसनीय रूप से बयान है कि नरक फारसी के निवासियों की भाषा, और स्वर्ग के निवासियों - अरबी?
जिस पर उसने जवाब दिया: "अल्लाह लॉर्ड वर्ल्ड की स्तुति करो! यह अज्ञात है कि किस भाषा में लोग उस दिन बात करेंगे, क्योंकि किस भाषा में उनका भगवान उनके पास जाएगा, वह बहुत अच्छा है और सुना है। न तो सर्वशक्तिमान अल्लाह, न ही उसके दूत, शांति और आशीर्वाद, ने इसके बारे में कुछ भी नहीं बताया, यह भी विश्वसनीय नहीं है और तथ्य यह है कि नरक के निवासियों की भाषा फारसी होगी, लेकिन स्वर्ग निवासियों की भाषा अरबी है। और हम सहयोगी के बीच होने के लिए अज्ञात हैं, और वे अल्लाह से प्रसन्न होंगे, कोई असहमति थी। इसके विपरीत, वे इससे दूर रहते हैं, क्योंकि इसके बारे में वार्तालाप बेकार है। हालांकि, निम्नलिखित पीढ़ियों में से, इस मुद्दे पर असहमति दिखाई दी। कुछ ने कहा कि वे अरबी में संवाद करेंगे, अन्य ने कहा कि इससे नरक के निवासियों की चिंता नहीं हुई, क्योंकि वे फारसी में जवाब देंगे और यह उनकी भाषा नरक में है। तीसरा - कि लोग अश्शूर में संवाद करेंगे, क्योंकि यह आदम की भाषा है, जिसमें से अन्य सभी भाषाएं हुईं। चौथा - यह स्वर्ग के निवासियों की चिंता नहीं करता है, क्योंकि वे अरबी में संवाद करेंगे। हालांकि, उनमें से कोई भी अपने शब्दों के पक्ष में तर्क नहीं करता है, न तो दिमाग से, न ही शरिया स्रोतों से, लेकिन ये किसी भी सबूत से मुक्त एक बयान हैं। सर्वशक्तिमान अल्लाह एक ही बेहतर बेहतर है! " "Majmu'ul-fatava" 4/299 देखें।

1. यह कहानी है कि लोगों ने एक-दूसरे को समझना बंद कर दिया और आधुनिक दुनिया की कई भाषाएं दिखाई दीं। यह मिथक विभिन्न लोगों के बीच कितना लोकप्रिय है और उसकी व्याख्या क्या है?

2. बेबीलोनियन टॉवर की मिथक न केवल दृढ़ विश्वास पर आधारित है कि शुरुआत में सभी मानवता ने एक ही भाषा में बात की थी, बल्कि इस तथ्य पर भी कि यह भाषा "आदर्श" थी: वस्तुओं के नाम उनके असली सार को स्थानांतरित कर दिया गया था। क्या अन्य संस्कृतियों के प्रतिनिधियों के ये विचार साझा करते हैं और क्या वे सोचते हैं कि उनकी भाषा मूल के करीब है?

पहले प्रश्न का उत्तर पुराने नियम 11: 1-9 की उत्पत्ति की पुस्तक में पेश किया गया है, जहां यह बताता है कि भगवान ने मानव जाति को दंडित करने का फैसला किया, भाषाओं के मिश्रण का अभिशाप लगाया। दूसरे प्रश्न का उत्तर उत्पत्ति 2:19 की पुस्तक में पाया जा सकता है। इस हिस्से में, भगवान ने सभी जानवरों और पक्षियों के आदम को यह सुनने के लिए प्रेरित किया कि एडम उन्हें कैसे बुलाता है, और "व्यक्ति कैसे प्रतिकूल होगा, इसलिए उसका नाम था।" विभिन्न संस्कृतियों पर बेहतर भ्रमण हमें यह देखने की अनुमति देगा कि इन मुद्दों को कैसे कवर किया गया है। पहले व्यक्ति के रूप में, कई पुराने नियम से सहमत हैं: भाषाओं की विविधता भगवान का करा या कम से कम कुछ प्रतिकूल कारक का परिणाम है।

ऑस्ट्रेलियाई जनजातियों में से एक की किंवदंती पुराने लोगों को खाने के बारे में बताती है। अपने द्वारा खिलाए गए जनजातियों को "शुद्ध" भाषा द्वारा बोली जाती थी, और जिन लोगों ने आंतरिक अंग खाए हैं, वे "अशुद्ध" पर हैं। अफ्रीकी केबिन का मानना \u200b\u200bहै कि लोगों ने संघर्ष के कारण विभिन्न भाषाओं को बोलना शुरू कर दिया। असम के गोत्र के मुताबिक, भाषाओं का मिश्रण इस तथ्य के कारण हुआ कि एक बार तीन बच्चे चूहे पर शिकार किए गए थे। अमेज़ॅन के जनजातियों में से एक राय का पालन करता है कि भगवान ने लोगों और उनकी भाषाओं को विभाजित किया ताकि वे उसके प्रति आज्ञाकारी हो जाएं। अमेरिका की स्वदेशी आबादी में, पहली जनजाति (कैलिफ़ोर्निया) में, ऐसा माना जाता है कि शुरुआत में लोगों ने एक ही भाषा में बात की, लेकिन एक बार, अंतिम संस्कार समारोह में, भाषा एक हो गई। IRoquoise का मानना \u200b\u200bहै कि एक परिवार झगड़ा के कारण भाषाओं को अलग करना, जिसके परिणामस्वरूप एक बच्चा मारा गया था। लेकिन यह धारणा है कि भाषाओं की विविधता एक अभिशाप है, जैसा लगता है उतना आम नहीं। दुनिया में कई संस्करण हैं, जिसके अनुसार प्राकृतिक प्रक्रियाओं के परिणामस्वरूप अलगाव हुआ।

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

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

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

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

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

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

अरबी नहीं है, एक व्यक्ति इस्लाम को नहीं जान सकता है। इसलिए, मुसलमानों के बीच, यह भाषा, प्राचीन प्रयासों का समय। पैगंबर (उसे शांति) के धर्म के अध्ययन के लिए एक शर्त अरब ग्रंथों का विश्लेषण है, लगभग सभी को बहुत लंबे समय तक लिखा गया है। आधुनिक अरबी में, 12 मिलियन से अधिक शब्द (रूसी में तुलना के लिए, 131,000 हैं, और अंग्रेजी में लगभग दस लाख हैं ...)। यह एक बहुत समृद्ध और जटिल भाषा है। जब मैंने सीरिया में इस्लामी विश्वविद्यालय में अध्ययन किया, तो हमारे शिक्षक, फिलोलॉजिस्ट ने हमें ऐसा उदाहरण लाया: अरबी में, समानार्थी शब्द केवल एक शब्द "ऊंट" छह हजार तक पहुंचता है! उनका व्याकरण अत्यधिक जटिल और बहुमुखी है। इसके अध्ययन के लिए काफी बौद्धिक और परिषद प्रयासों की आवश्यकता होती है। इसलिए, कुरान के दुभाषियों और पैगंबर के हदीसोव (उसे शांति) के बीच, कोई शौकिया नहीं हैं। पवित्र पाठ के अर्थ में पहुंचना लगभग असंभव है, जिसमें ठोस अरबी लेक्सिकॉन और सिंटैक्स, अर्थशास्त्र, इस भाषा के ध्वन्यात्मक ज्ञान के ज्ञान शामिल नहीं है। कभी-कभी ऐसे लोग होते हैं जो कुरान के स्वयं को connoisseurs कहते हैं। वे सबसे अधिक महामल से उद्धरण देते हैं, लोगों को सलाह देते हैं। लेकिन अगर आप उन्हें ज्ञान के स्रोत के बारे में पूछते हैं - आपको जवाब मिलता है: "मैंने अनुवाद पढ़ा।" इस्लाम के लिए ऐसे लोग बहुत खतरनाक हैं, क्योंकि, वे क्या करते हैं कि वे क्या करते हैं, वे सबसे अधिक महामल की व्याख्या में भ्रम और अशुद्धि ला सकते हैं। इस्लामी शैक्षिक संस्थानों में, निम्नलिखित शिक्षण तकनीक सार्वभौमिक रूप से अभ्यास की जाती है: शुरुआती स्कूल के कई वर्षों के छात्र विशेष रूप से अरब दार्शनिक का अध्ययन कर रहे हैं। और केवल, पर्याप्त रूप से सामग्री की आवश्यक मात्रा में मास्टरिंग, किलुकिक ग्रंथों के अध्ययन तक पहुंच प्राप्त करें। इस प्रकार, अरबी इस्लाम के बारे में जानकारी को महारत हासिल करने के लिए एक प्रकार का स्प्रिंगबोर्ड है। इसके अलावा, अरबी भाषा एक ऐसी भाषा है जिसमें स्वर्ग के निवासी बोलेंगे। अल्लाह के लिए महिमा कि उसने हमें मुसलमान बना दिया! हमें आपकी इच्छा को समझने के लिए एक सुंदर, समृद्ध अरबी भाषा दी गई!

स्वर्ग संवाद प्रोग्रामिंग प्रणाली की विकसित अनुकूली भाषा डीएसएसपी मॉस्को स्टेट यूनिवर्सिटी संकाय कम्प्यूटेशनल गणित और साइबरनेटिक्स के संकाय एन.पी. ब्रुज़ेंट्सोव, वीबी झहरोव, आई। यर्नव, एससिडोरोव, एनए। शैन्यशेव मास्को, 1 9 87

स्वर्ग की भाषा का सामान्य विवरण

भाषा विकास की नियुक्ति और उद्देश्य

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

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

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

प्रक्रियात्मक प्रोग्रामिंग

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

स्वर्ग की भाषा में, मुख्य "रचनात्मक" प्रक्रिया है - नामित प्रभाव। भाषा अपने स्वयं के नामों (प्रतीकों) द्वारा दर्शायी सरल प्रक्रियाओं (प्राइमेटिव) के सीमित सेट पर आधारित है। उदाहरण के लिए: + का अर्थ है "गुना", नकारात्मक - "परिवर्तन चिह्न", वीसीटीआर - "एक वेक्टर बनाएं"। विशेष रूप से, प्राइमेटिव हैं: और; (कोलन और अर्धविरोन) जो आपको एक नई प्रक्रिया शुरू करने की अनुमति देता है, उदाहरण के लिए, नाम पी के साथ, इसे प्रक्रियाओं के अनुक्रम के रूप में परिभाषित करना पी 1, पी 2, ..., पीएन के रूप में

: पी पी 1 पी 2 ... पीएन;

यदि पी प्रक्रिया उस क्रिया को प्रस्तुत करती है जो प्रोग्राम बनाया जा रहा है, तो इस कार्यक्रम के डिजाइन को प्रक्रिया पी 1, पी 2, ..., पीएन के लगातार विवरण के रूप में जाना जाता है। इसका मतलब यह है कि इनमें से प्रत्येक प्रक्रिया को कम बड़ी प्रक्रियाओं के अनुक्रम द्वारा निर्धारित किया जाना चाहिए, जिन्हें तब भी छोटी प्रक्रियाओं के अनुक्रमों द्वारा निर्धारित किया जाता है, जब तक कि परिभाषाएं केवल प्राइमेटिव से ही प्राप्त नहीं होती हैं।

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

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

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

उदाहरण के लिए, रैखिक अनुक्रम पी 0 पी 1 प्रक्रिया पी 0 का कारण बनता है, और फिर पी 1 प्रक्रिया जमा करने का कारण बनता है। यदि पी 1 प्रक्रिया हमेशा नहीं की जाती है, और निष्पादन पी 0 के परिणामस्वरूप सकारात्मक संख्या होती है, तो पी 1 की बजाय, निष्पादन आदेश स्थिति द्वारा लिखा जाता है: यदि + पी 1, यानी। पी 0 पी 1 के बजाय, यह पी 0 होगा यदि + पी 1। स्वर्ग में उपसर्ग स्थितियों का एक सेट शामिल है जो आपको प्रभावी रूप से स्थिति से निष्पादन व्यक्त करने की अनुमति देता है, साथ ही दो, तीन या अधिक प्रक्रियाओं की पसंद भी करता है।

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

जिस प्रक्रिया का नाम किसी अन्य प्रक्रिया की परिभाषा में प्रवेश करता है उसे इसमें घोंसला कहा जाता है। नेस्टेड प्रक्रिया, यदि यह एक आदिम नहीं है, तो बदले में एम्बेडेड प्रक्रियाएं हैं, यानी घोंसला एकाधिक हो सकता है। इसके अलावा, स्वर्ग की भाषा के नियम इस नाम वाली प्रक्रिया के अपने नाम या नाम की प्रक्रिया की परिभाषा में शामिल करने पर रोक नहीं देते हैं, यानी स्वर्ग रिकर्सन की अनुमति देता है।

एक दो प्रक्रिया को दोहराया प्रक्रिया से भी जोड़ा जा सकता है। इस मामले में, चक्रों का घोंसले है। स्वर्ग कई चक्रों की अनुमति देता है।

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

प्रक्रियाएं और डेटा

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

एक बेहद सरल डेटा तत्व एक दो अंकों का तत्व है - बिट। बिट्स से अन्य सभी प्रारूप और डेटा प्रकार बनाए जा रहे हैं। स्वर्ग की भाषा में, एक 8-बिट बाइट, एक 16-बिट शब्द और 32-बिट शब्द बुनियादी प्रारूपों के रूप में स्वीकार किए जाते हैं। बाइट्स, शब्दों और लंबे शब्दों के आधार पर उनके ऊपर किए गए लंबे शब्द कई व्याख्याओं की अनुमति देते हैं, यानी विभिन्न डेटा प्रकारों के आधार के रूप में कार्य कर सकते हैं। इसके अलावा, वे समग्र प्रारूपों और प्रकारों के गठन के लिए स्रोत तत्व हैं।

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

मूल भाषा में, डेटा विज्ञापन केवल नामों तक पहुंच के कार्य को घोषित करते हैं: नाम के साथ, स्मृति कोशिकाओं की संख्या और उन तक पहुंच के तंत्र नाम से जुड़े हुए हैं। परीक्षण और परिवर्तन संचालन सीधे नामांकित डेटा पर लागू नहीं होते हैं। इन परिचालनों को ऑपरेंड स्टैक के ऊपर परिभाषित किया गया है, जो 32-बिट लंबे शब्दों (स्टैक एलिमेंट्स) का अनुक्रम है, जो नए तत्वों के अंत में (संदर्भ) जोड़कर गतिशील रूप से परिवर्तनीय है, साथ ही एक ही अंत से तत्वों को हटाने (निकासी) ढेर से)। तत्वों को क्रम में कवर किया गया है, जिसके विपरीत, जिसमें उनका संदर्भ दिया गया था: बाद में चुप पहले लिया जाता है। डेटा का परीक्षण या स्टैक में परिवर्तित किया जाना चाहिए जहां निर्धारित संचालन उनके ऊपर किए जाते हैं, जिसके बाद ढेर से प्रसंस्करण के परिणाम जब्त किए जा सकते हैं।

उदाहरण के लिए, यदि कोई वैरिएबल एक्स है, तो 32-बिट लंबे शब्द के रूप में घोषित किया गया है, तो केवल दो ऑपरेशन सीधे इसके ऊपर किए जाते हैं:

1) अपने मानों को उस स्टैक में सेट करना जो हर बार एक्स का उल्लेख करता है, स्वचालित रूप से होता है,

2) टीम द्वारा उसे सौंपना! एक्स अंतिम (ऊपरी) तत्व के मान ढेर से समझा जाता है।

यदि, कहें, तो आपको एक्स के मान को दोगुना करने की आवश्यकता है, इसे अपने साथ फोल्ड करना, फिर निम्न आदेश एक-दूसरे द्वारा किया जा सकता है:

एक्स मानों के दो उदाहरण ढेर पर भेजे जाएंगे, फिर कमांड + उनके साथ आता है, जिसके बाद टीम के परिणामस्वरूप राशि के ढेर में एक सदमे मिल जाएगा! X इस राशि को खाता है और एक्स चर का मूल्य असाइन करता है।

उच्च स्तरीय भाषाओं के लिए सामान्य एक्स के रूप में दिए गए उदाहरण का उदाहरण: \u003d x + x प्रोग्रामर से परिचित है, लेकिन यह प्रोसेसर द्वारा किए गए आदेशों के अनुक्रम का प्रत्यक्ष प्रतिबिंब नहीं है, और यह है एक प्रकार का गणितीय सूत्र। प्रोग्रामिंग कंप्यूटिंग कार्यों के दौरान यह सुविधाजनक है, हालांकि, मूल भाषा में, निष्पादन योग्य आदेशों के साथ अस्पष्ट अनुपालन अधिक महत्वपूर्ण है, क्योंकि प्रोफ़ैन परीक्षण कार्यक्रम सीधे प्रोग्रामिंग भाषा में किया जा सकता है और प्रोसेसर के अलावा किसी अन्य भाषा को जानने की आवश्यकता नहीं है। भाषा: हिन्दी।

लेकिन विशेष रूप से भूख डेटा प्रसंस्करण का मूल्यवान लाभ यह है कि परीक्षण और रूपांतरण प्रक्रियाओं को उनके द्वारा लागू किए गए डेटा के बावजूद परिभाषित और कार्यान्वित किया जा सकता है। परीक्षण और परिवर्तन संचालन डेटा पहचानकर्ताओं (या स्थिरांक और चर के नाम, औपचारिक मानकों) के सापेक्ष नहीं हैं, और ढेर तत्वों के सापेक्ष, जो ऑपरेशन के समय तक, ऑपरेशन के मूल्य होना चाहिए सौंपा। उदाहरण के लिए, कमांड + (फोल्ड) पर किए गए दो नंबरों का अतिरिक्त संचालन यह है कि दो ऊपरी तत्वों को ढेर से (वर्टेक्स और घुमावदार) के रूप में लिया जाता है, उनकी राशि की गणना और इसे ढेर पर निचोड़ना। दो संख्याओं को फोल्ड करने के लिए, आपको उन्हें ढेर में भेजने और + कमांड निष्पादित करने की आवश्यकता है, परिणाम स्टैक के शीर्ष पर होगा।

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

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

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

डीएसएसपी प्रोसेसर

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

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

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

उदाहरण के लिए, अभिव्यक्ति (2-5) * 3 की गणना करने और प्राप्त परिणाम को प्रदर्शित करने के लिए, हम दर्ज करते हैं:

2 5 - 3 * .

कुंजी दबाने के बाद प्रोसेसर परिणाम देता है, इसलिए पूरी स्ट्रिंग होगी

* 2 5 - 3 * . -90

लाइन की शुरुआत में तारांकन प्रोसेसर द्वारा एक संकेत के रूप में जारी किया जाता है कि यह इनपुट की प्रतीक्षा कर रहा है।

जांच की गई उदाहरण में, प्रोसेसर को पूरी दशमलव के रूप में दर्ज की गई संख्याओं को माना और संभाला। वास्तव में, इन संख्याओं की शुरूआत को बाइनरी अतिरिक्त कोड में स्थानांतरित कर दिया गया था, और आउटपुट के दौरान - दशमलव प्रणाली में रिवर्स ट्रांसफर। डीएसएसपी प्रोसेसर बाइनरी, ऑक्टल और हिरनियर I / O के मोड भी स्वीकार करता है। वांछनीय मोड में जाने के लिए, बी 2, बी 8, बी 10, बी 16 के आदेशों में से एक को तदनुसार किया जाना चाहिए।

कुंजी दबाएं इन कुंजी (पत्र, संख्या, विराम चिह्न, संचालन प्रतीकों) पर नामित लिज़र का प्रतिनिधित्व करने वाले प्रोसेसर इनपुट पर कोड को कॉल करें। दर्ज लीटर के अनुक्रम में इनपुट लाइन बाइट्स की एक श्रृंखला है जिसमें साहित्य पर एक बाइट द्वारा लीटर कोड शामिल हैं। इनपुट स्ट्रिंग की अधिकतम लंबाई 80 लीटर है।

इनपुट लाइन को संसाधित करना, प्रोसेसर इसमें शब्दों से भरा हुआ है - एक लीटर के संयोजन, एक दूसरे के रिक्त स्थान से अलग होते हैं, और उन्हें व्याख्या करते हैं। यदि संसाधित शब्द ऑपरेशन (प्रक्रिया) या यह नाम के साथ एक ज्ञात प्रोसेसर है, तो प्रोसेसर उन क्रियाओं को निष्पादित करता है जिन्हें परिभाषा द्वारा बुलाया जाना चाहिए। यदि शब्द प्रोसेसर को नहीं जानता है, तो यह स्थापित I / O मोड को ध्यान में रखते हुए, इसे एक संख्या के रूप में समझने की कोशिश करता है।

संख्याएं इस प्रणाली में अनुमत संख्या वाले शब्दों को पहचानती हैं और पहले लिटरा के रूप में एक ऋण चिह्न शामिल हो सकती है। हेक्साडेसिमल I / O मोड में, लैटिन पत्र ए, बी, सी, डी, ई, एफ, आंकड़ों के साथ अनुमत के रूप में भी शामिल किया गया है। स्वीकार किए गए नंबर को बाइनरी वैकल्पिक कोड में अनुवादित किया जाता है और ऑपरेंड स्टैक में शामिल किया जाएगा 32-बिट लंबे शब्द का रूप। साथ ही, यदि संख्या का मूल्य प्रतिनिधि मानों की सीमा से बाहर निकला -2147483648: 2147483647, तो इसे इस श्रेणी के मूल्य के साथ एक तुलनीय मॉड्यूल 2 ** 32 द्वारा प्रतिस्थापित किया गया है।

इस मामले में जब प्रोसेसर संसाधित नहीं किया जाता है और इसे किसी संख्या के रूप में स्वीकार नहीं किया जा सकता है, तो प्रोसेसर टर्मिनल स्क्रीन पर एक संदेश प्रदर्शित करता है: "मुझे नहीं पता<обрабатываемое слово>"और आगे के नुस्खे में प्रवेश करने की प्रतीक्षा करता है।

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

व्यक्तिगत लिटेरा का कोड कशेरुक के जूनियर बाइट के रूप में ढेर में कवर किया जाएगा जब प्रोसेसर को इस लिटेरा को इसके लिए प्रीपोज़ करने योग्य संकेत के साथ प्राप्त होता है। उदाहरण के लिए, प्रतीक # एल अक्षर एल के ढेर कोड पर बढ़ावा देता है, साइन # 5 लोडिंग डिजिट कोड 5. टर्मिनल को टीबी कमांड टीबी कमांड स्क्रीन पर लेटेरिक प्रदर्शित करता है, जिसमें से कोड निहित है छोटे पाट ढेर के शीर्ष।

यहां तक \u200b\u200bकि प्रत्यक्ष निष्पादन मोड में, डीएसएसपी प्रोसेसर कमांड सामान्य कैलकुलेटर की संभावनाओं से काफी बेहतर है, उपयोगकर्ता को डेटा प्रोसेसिंग ऑपरेशंस के अलावा, नामांकित डेटा के विज्ञापन का अर्थ है और प्रक्रियाओं को निर्धारित करने के बाद मूल के साथ उपयोग किया जा सकता है संचालन। डेटा नामों और प्रक्रियाओं की घोषणा विशेष आदेशों का उपयोग करके की जाती है।

उदाहरण के लिए, नामित 16-बिट चर बनाने के लिए, कहें, Temp, आपको कीबोर्ड पर डायल करना चाहिए और प्रोसेसर इनपुट कुंजी में जमा करना चाहिए टीम

वार टेम्प

आप घोषणा के साथ, प्रारंभिक मूल्य चर असाइन कर सकते हैं, उदाहरण के लिए, 0:

Var temp 0! अस्थायी।

अब Temp इनपुट के लिए अस्थायी प्रोसेसर आगमन इस चर के वर्तमान मूल्य के ढेर को भेजा जाएगा, और इसे नया असाधारण, स्टैक से लिया गया मान कमांड द्वारा किया जा सकता है! अस्थायी।

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

N! \u003d N * (n - 1) * (n-2) * ... * 2 * 1, यानी एन -1 गुणा।

वांछित परिणाम प्राप्त करने के लिए एफसीटी प्रक्रिया इस संख्या एन को लगातार घटती संख्याओं पर गुणा करना चाहिए, एन -1 से 1 से शुरू, यानी। कुल एन -1 बार। स्वर्ग की भाषा में, यह प्रक्रिया पी: डीओ पी के टी-एकाधिक निष्पादन का उपयोग करके प्रोग्राम किया गया है, जहां पी प्रक्रिया का नाम है, टी वर्तमान स्टैक वर्टेक्स मूल्य है जो दर्शाता है कि पी। प्रदर्शन करने के लिए कितनी बार इसकी आवश्यकता होती है। प्रक्रिया।

मान लीजिए कि एफसीटी प्रक्रिया को लागू करने से पहले एन संख्या एन ढेर पर शेड है और इसके शीर्ष में है। प्रक्रिया को और समझने योग्य बनाने के लिए, चर के संशोधित गुणक की कल्पना करें:

एफसीटी प्रक्रिया की परिभाषा हम फॉर्म में पेश करते हैं:

एफसीटी [एन]! के के के 1- डी एफ। [एन];

ऑपरेंड स्टैक की वर्तमान स्थिति को दर्शाने वाली टिप्पणियां स्क्वायर ब्रैकेट में दी जाती हैं। टीम! के, जो परिभाषित प्रक्रिया शुरू करता है, ढेर से संख्या एन चर का मान असाइन करता है। फिर स्टैक में दो दोगुना और घटाव 1 स्टैक के शीर्ष पर दोहराव प्रक्रियाओं की संख्या एन -1 के बराबर है । इसके बाद डीओ एफ कमांड का पालन किया जाता है, जो इस चक्र को निर्धारित करता है, जिसमें ढेर के शीर्ष पर, फैक्टोरियल का वांछित मूल्य होगा - एन! टीम। (बिंदु) टर्मिनल स्क्रीन पर इस मान की एक प्रति देता है। यह प्रक्रिया एफ निर्धारित करने के लिए बनी हुई है, जो के घटाव 1 के मूल्य को संशोधित करता है और स्टैक में गणना की गणना के के आंशिक परिणाम को गुणा करता है:

एफ [आर] के 1-! के [आर] के *;

दोनों प्रक्रियाओं की शुद्धता की जांच करना ओपरेंड स्टैक के प्रत्येक आदेश और परिवर्तनीय के मूल्य के बाद टर्मिनल जारी करने के साथ उनकी परिभाषाओं के उपकोडर निष्पादन द्वारा किया जाता है। एफसीटी प्रक्रिया के संचालन के पूरा होने पर, ढेर में होना चाहिए एन!, और चर के मान 1 के बराबर होना चाहिए।

जांच और समायोजित (यदि सत्यापन के दौरान त्रुटियों का पता लगाया गया है) प्रक्रियाओं को उनके उपयोग के लिए NUMM N के अलग-अलग मानों के लिए परीक्षण किया जाता है। चूंकि प्रक्रिया एफ एफसीटी में एम्बेडेड है, फिर इसे परीक्षण प्रक्रिया के दौरान स्वचालित रूप से परीक्षण किया जाता है। यह ध्यान में रखना चाहिए कि परिणाम के परिणाम अधिकतम सकारात्मक संख्या से अधिक नहीं हो सकते हैं, अतिरिक्त कोड 32-बिट लॉन्ग शब्द: 2147483647, यानी। एफसीटी केवल एन \u003d 1 पर सही परिणाम देता है ..., 13।

एफसीटी का उपयोग आपके प्रोसेसर कमांड के उपयोग से अलग नहीं है: परिणाम प्राप्त करने के लिए, आपको ऑपरेंड मान सेट करने और प्रक्रिया का नाम दर्ज करने की आवश्यकता है:

5 एफसीटी। 120

7 एफसीटी। 5040

एफसीटी प्रक्रिया के कार्यान्वयन को सहायक चर के परिचय की आवश्यकता होती है, हालांकि, एक कार्यात्मक रूप से समकक्ष प्रक्रिया को सहायक चर के बिना किया जा सकता है, सी ऑपरेशन का उपयोग करके, जो इसकी एक प्रतिलिपि, और संचालन ई 2 और ई 3 के साथ भेजता है, जो क्रमशः स्टैक के दूसरे और तीसरे तत्व के साथ क्रमशः कशेरुक का आदान-प्रदान करते हैं। इस प्रक्रिया की परिभाषा में निम्नलिखित रूप हैं।

: एफटीए [एन] सी 1- सी डी डी डी डी। ;

: एफए सी ई 3 * ई 2 1-

इस तरह की "शुद्ध ढेर" प्रक्रिया का लाभ पूरी तरह स्वायत्तता है: जैसे मूल प्रोसेसर स्टैक ऑपरेशंस के रूप में यह केवल ऑपरेंड स्टैक के ऊपर किया जाता है, बिना अन्य मेमोरी की आवश्यकता के और अन्य प्रोसेसर घटकों में कोई भी बदलाव नहीं किया जाता है।

विशिष्ट प्रक्रियाओं और घोषित डेटा के नाम प्रोसेसर डिक्शनरी में दर्ज किए गए हैं जो इन नामों के साथ इन नामों के कनेक्शन की स्थापना करते हैं, यानी, मुख्य स्मृति में रखी गई प्रक्रियाओं के साथ और घोषणा की गई इस स्मृति के तत्वों के साथ घोषित स्टोर करने के लिए आवंटित किया गया है डेटा। इनपुट स्ट्रीम से अगले शब्द को संसाधित करते हुए, प्रोसेसर शब्दकोश स्कैन करता है और इसमें संयोग्य शब्द पाया जाता है, इस शब्द से जुड़ी कार्रवाई करता है। यदि खोज असफल हो गई, तो यह कैसे पहले से ही कहा गया था, इस शब्द की संख्यात्मक व्याख्या द्वारा एक प्रयास किया गया था, और यदि यह विफल रहता है, तो यह एक संदेश का पालन करता है कि शब्द प्रोसेसर ज्ञात नहीं है।

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

जब, प्रक्रिया पी की परिभाषा के संकलन के साथ, सभी गैर-घटक प्रक्रियाओं की परिभाषाओं को संकलित किया जाता है, पॉइंटर्स का पूरा पदानुक्रम बनता है, जो प्रोसेसर इनपुट को सबमिट करके पी प्रक्रिया पी करने की संभावना सुनिश्चित करता है केवल इसका नाम। साथ ही, नामों को नेस्टेड प्रक्रियाओं के पी की परिभाषा के संबंध में संकलित किया जाता है, जब तक कि आपको इन प्रक्रियाओं से अलग से संपर्क करने की आवश्यकता न हो, यह शब्दकोश में कोई समझ नहीं लेता है। कुछ मामलों में, यह शब्दकोश के एक हिस्से तक पहुंच को बंद करने के लिए उपयुक्त हो जाता है, छोड़कर, शायद कुछ प्रक्रियाओं को करने की क्षमता।

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

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

एक अलग कार्यक्रम बनाने के मामले में, इसकी अपनी sublovery का गठन किया गया है, और यह इस तथ्य से हासिल किया जाता है कि कार्यक्रम का पाठ टीम शुरू करता है

कार्यक्रम $।<имя программы>

एक व्यक्ति इस आदेश को एक शीर्षक के रूप में समझता है, इसके बाद स्क्वायर ब्रैकेट में एक टिप्पणी होती है, जो प्रोग्राम फ़ंक्शन द्वारा लागू किए गए कुछ शब्दों में विशेषता है। प्रोसेसर के लिए, यह कमांड अनुक्रम के बराबर है

$ को भूल जाओ।<имя> $ बढ़ाना<имя>

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

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

पाठ को दर्ज करने और संपादित करने के अंत में, संपादक ई कुंजी को एक साथ (या बल्कि, एक प्रीलोडेड कुंजी के साथ) दबाकर बंद कर देता है , और सिस्टम डीएसएसपी कमांड के मुख्य मोड में जाता है। इसी तरह की कार्रवाई बस कुंजी दबाकर कारण बनती है । इस मोड में, संपादक बफर की सामग्री पीएफ कमांड (प्रदर्शन - रन) में प्रोसेसर इनपुट पर जारी की जा सकती है। साथ ही, पाठ में निहित सभी टीम विशेष रूप से, प्रोग्राम $ टीम का प्रदर्शन किया जाएगा<имя> $ TED $ निकालें<имя> इस आदेश के अंतिम निष्पादन के बाद से, डेटा नाम और प्रक्रियाओं के साथ-साथ संबंधित निकायों, इस sublovery को फिर से खोलने के लिए फिर से खोलना। डेटा विज्ञापन कमांड और प्रक्रिया परिभाषाएं डेटा के पॉइंटर्स और इन नामों द्वारा इंगित परिभाषाओं के अनुसार संकलित प्रक्रियाओं के साथ उनके द्वारा दर्ज किए गए नामों को सक्षम कर देगी।

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

प्रोग्राम की जांच और परीक्षण करने के बाद, इसके स्रोत टेक्स्ट को संपादक बफर से ओई एफ कमांड में कॉपी किया जा सकता है, जहां एफ फ़ाइल का नाम है, जिसके रूप में प्रोग्राम डिस्क पर दर्ज किया जाएगा। भविष्य में, फ़ाइल की सामग्री प्रोसेसर इनपुट में लोड एफ कमांड इनपुट में डाउनलोड की जा सकती है, साथ ही संपादक बफर को कॉपी करने के रूप में आईई एफ कमांड को मौजूदा पाठ में जोड़ने के रूप में कॉपी किया जा सकता है। डिफ़ॉल्ट रूप से, फ़ाइलों में विस्तार .dsp है। बफर को पहले के कमांड द्वारा साफ किया जा सकता है। एलपीई बफर सामग्री की सामग्री को मुद्रित करना भी संभव है।

डाउनलोड करने के बाद, प्रोग्राम को निष्पादित करने के लिए तैयार है, इसके लिए बनाए गए $ को साफ करना संभव है<имя> कमांड स्पष्ट $<имя>। इस आदेश को निष्पादित करना, प्रोसेसर नामित सबबलरिंग से अनलॉक किए गए नामों को हटा देता है, यानी। सभी नाम, उन परिभाषाओं से पहले उन लोगों के अपवाद के साथ जिनमें एक फिक्सिंग उपसर्ग है :: (दो रंग)। साथ ही, केवल स्वयं के नाम (शब्दकोश इनपुट) हटा दिए जाते हैं, और उनके साथ जुड़े प्रक्रियाएं और डेटा को सहेजा जाता है और संकलन आंतरिक लिंक के दौरान स्थापित कार्यक्रम के निष्पादन के दौरान उपलब्ध होता है, लेकिन फिर वे अधिक अनुपलब्ध होते हैं। । बाहर पहुंचने की क्षमता को पुनर्स्थापित करने के लिए, उदाहरण के लिए, यदि आवश्यक हो, तो कुछ अतिरिक्त या परिवर्तन संकलित करें, आपको प्रोग्राम के स्रोत टेक्स्ट को फिर से डाउनलोड करने की आवश्यकता है।

नामों को बाहर से बाहर से अप्राप्य किया जा सकता है, उन्हें शब्दकोश से हटाए बिना, शट $ कमांड<имя>इसे सबलिप्लिपेंट नामित सभी शब्दों तक पहुंच। अपने शब्दों का उपयोग करने के लिए एक बिल्लिपेंट खोलने से $ कमांड का उपयोग किया जाता है<имя>। केवल $ $ भी है<имя>कॉल करने के अलावा, सभी उप-अधिमान को बंद करना, और रद्द करने वाली टीम जो इस प्रतिबंध को रद्द करती है। सूचीबद्ध आदेश आपको संकलन के दौरान शब्दकोश के उपयोग को प्रबंधित करने और उपयोगकर्ता के उपयोगकर्ता के लिए उपलब्ध नामों के आवश्यक न्यूनतम सेट को सीमित करने की अनुमति देते हैं।

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

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

स्टैक वर्टेक्स की सामग्री में प्रवेश क्रमशः एक संख्या के रूप में और लीटरा के रूप में संभव है। टन कमांड जारी करने वाले संख्यात्मक मान को जारी किए जाने वाले संख्यात्मक मान को जारी किया जाएगा, जिसकी चौड़ाई वर्टेक्स द्वारा निर्दिष्ट की गई है, उस समय तक निर्धारित संख्याओं के प्रतिनिधित्व की संख्या में इसे निष्पादित किया जाता है। टीओबी कमांड स्क्रीन पर एक लीटर जारी करता है, जिसका कोड छोटे पाट में ढेर के शिखर में निहित है। दोनों मामलों में, आउटपुट के साथ स्टैक से तर्कों को हटाकर होता है।

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

<адрес вектора> संपर्क।<имя процедуры>

कमांड इंटरप्ट एक नामित प्रतिक्रिया ऑपरेशन कॉल है। इस ऑपरेशन का नाम ट्रैप कमांड द्वारा निर्धारित किया जाता है जो इसे तथाकथित परिमित प्रतिक्रिया प्रक्रिया से मेल खाता है यदि अंतिम प्रतिक्रिया प्रतिक्रिया के चालू या ईन ईन कमांड का उपयोग करके प्रतिस्थापित नहीं की जाती है। सभी तीन आदेशों में एक ही प्रारूप है:

जाल<имя вызова> <процедура реагирования>

पर।<имя вызова> <процедура реагирования>

ईन।<имя вызова> <процедура реагирования>

ईओएन कमांड के नाम से जुड़ी प्रक्रिया ईओएन कमांड वाली प्रक्रिया के शरीर से प्री-आउटपुट के साथ की जाती है, और ऑपरेंड स्टैक पॉइंटर के मूल्य के साथ, जो ईओएन निष्पादन के समय हुआ था।

स्वर्ग की भाषा का सिंटैक्स

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

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

मान्य उदाहरण: एनओपी स्टैक 2 और 1+ -366 एक्स नमूना साफ़ करें।

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

जब शब्दकोश में पहचान योग्य शब्द नहीं है, तो प्रोसेसर इसे निम्नलिखित मामलों में से एक में विशेषता देने की कोशिश कर रहा है:

    संख्यात्मक शाब्दिक, यानी संख्याओं का अनुक्रम "माइनस" चिह्न की शुरुआत हो सकती है, उदाहरण के लिए: 0, 40 9 6, -25;

    शाब्दिक लिटरर: एक शब्द # अक्षर से शुरू होता है, जो प्रोसेसर को सीधे उस कोड के रूप में प्राप्त करने का कारण बनता है, उदाहरण के लिए: # ए - शीर्षक का शाब्दिक लैटिन पत्र ए, # 5 - शाब्दिक आंकड़े 5, # - शाब्दिक स्थान , ## - शाब्दिक लाइटर्स #;

    पाठ शाब्दिक: दोहरे उद्धरणों में संलग्न मनमाने ढंग से पाठ और शब्द विभाजक द्वारा अलग किया गया, उदाहरण के लिए: "टेक्स्ट", "इनपुट फ़ाइल एन 3";

    एक पाठ संदेश प्रदर्शन के लिए जारी करने वाला आदेश: जारी संदेश का पाठ, बाएं आकार के दोहरी-दोहरी उद्धरण तक सीमित, और दाएं पर दोहरे उद्धरण और शब्द विभाजकों द्वारा अलग किए गए, उदाहरण के लिए: "स्टैक खाली है";

    टिप्पणी: स्क्वायर ब्रैकेट में संलग्न मनमाने ढंग से पाठ और विभाजकों द्वारा अलग किया गया, उदाहरण के लिए :.

साहित्यिक और डिस्प्ले पर संदेश जारी करने की एक टीम डिक्शनरी द्वारा पहचाने गए शब्दों के साथ डीएसएसपी भाषा की वस्तुएं हैं, टिप्पणियां पूरी तरह से डीएसएसपी प्रोसेसर द्वारा अनदेखी की जाती हैं - वे एक व्यक्ति के लिए नहीं हैं, न कि कार के लिए। यदि शब्द शब्दकोश में नहीं मिला है और सूचीबद्ध डिज़ाइन से संबंधित नहीं है, तो प्रोसेसर एक संदेश जारी करता है: "मुझे नहीं पता<неопознанное слово>".

शाब्दिक #, "और एक संयोजन से जुड़े विशेष अर्थ को देखते हुए। शब्द की शुरुआत में, यानी विभाजक के बाद, साथ ही साथ "सेपरेटर से पहले" पत्र के बाद, उन्हें शब्दकोश में शामिल करने के लिए परिभाषित शब्दों में निर्दिष्ट पदों में उपयोग नहीं किया जाना चाहिए।

प्रोसेसर इनपुट पर शब्दों के अनुक्रम को प्रोसेसर द्वारा किए गए आदेशों के अनुक्रम के रूप में व्याख्या किया जाता है। इस मामले में, तीन प्रकार के शब्द भिन्न होते हैं:

1) स्वतंत्र रूप से प्रदर्शन किया, यानी अकेले टीमों (मोनोस्लोव) का प्रतिनिधित्व करना;

2) एक या अधिक बाद के शब्दों के संयोजन के साथ प्रदर्शन किया, यानी जो दो-, तीन- या वर्बोज़ टीमों के प्रारंभिक शब्द (उपसर्ग) हैं;

3) मैं एक विशेष कार्यान्वयन मोड (प्रीफिक्स) पर एक परिष्करण या मार्गदर्शन के रूप में कमांड की भविष्यवाणी करता हूं।

निबालियों में शाब्दिक, डेटा नाम, अधिकांश I / O ऑपरेशंस, परीक्षण और स्टैक में डेटा परिवर्तन, साथ ही उपयोगकर्ता द्वारा परिभाषित प्रक्रियाएं शामिल हैं। उदाहरण के लिए: 1 9 87 - संख्यात्मक शाब्दिक, # 5 - शाब्दिक आंकड़े 5, "योजनाओं की सूची" - पाठ शाब्दिक, लंबाई - परिवर्तनीय नाम, टोब, नकारात्मक, +, और,<, = - имена (обозначения) операций, SORT, CONVERT, ЧИСТКА, СНЯТЬ - имена процедур пользователя.

उपसर्ग डेटा विवरणों और प्रक्रियाओं के आदेशों में निहित हैं, साथ ही साथ डेटा, सशर्त और प्रक्रियाओं के एकाधिक निष्पादन, शब्दकोश प्रबंधन नामक हेरफेर। उपसर्ग के साथ टीमों के उदाहरण:

Var राशि - एक चर राशि बनाएँ

: अजीब [x] 1 &; - एक अजीब प्रक्रिया बनाएं जो एक विषम संख्या को 1 पर भी बदल देती है, यहां तक \u200b\u200bकि 0 पर भी,

0 एक्स - एक वैरिएबल एक्स मान 0 असाइन करें,

बीआर + पी 1 पी 2 - यदि ढेर से लिया गया तो उसके चरम का मूल्य सकारात्मक है, फिर पी 1 निष्पादित करें, अन्यथा पी 2 प्रदर्शन करें,

आरपी चेक - बार-बार एक चेक प्रक्रिया करें,

$ वास्तविक sublalding का उपयोग करने के लिए $ वास्तविक - ओपन का उपयोग करें।

एक नियम के रूप में, एक विशेष उपसर्ग के लिए शब्दों की एक निश्चित संख्या की आवश्यकता होती है। तो, var,! 0 के उदाहरणों में, एक शब्द की आवश्यकता है, और br + उपसर्गों को दो शब्दों की आवश्यकता है। हालांकि, उपसर्ग: (कोलन) आपको तीन शब्दों से शुरू होने वाली मनमानी लंबाई का आदेश बनाने की अनुमति देता है। टीम का अंत शब्द है; (अर्धविराम)। मनमाने ढंग से लंबाई भी एक टीम की विशेषता है - सीएनएसटी ए 1 का वर्णनकर्ता ... एजे स्थिर; और बीआर ए 1 पी 1 की एकाधिक चयन टीम ... एजे पीजे और पीएन प्रक्रिया।

Prerefixes विशेष शब्द हैं, सामने की ओर कमांड में जोड़ना इसकी सामग्री को संशोधित करता है या एक विशेष निष्पादन मोड को परिभाषित करता है। उदाहरण के लिए, एक प्रेसीपिडिक्स के बिना वर्क एक्स कमांड एक 16-बिट एक्स चर बनाने के लिए एक पर्चे है। यदि आप इसे बाइट प्रीफिक्स संलग्न करते हैं, तो हमें बाइट var एक्स कमांड प्राप्त होगा, जो 8-बिट चर बनाते हैं (बाइट) नाम एक्स के साथ। यदि आप लंबे प्रीरेफ़िक्स का उपयोग करते हैं, तो हमें लांग वार एक्स-पर्चे मिल जाएगा 32-बिट चर नामित एक्स।

एक और प्रकार का वर्णन, अर्थात् :: (दो रंग) स्पष्ट प्रक्रिया के संबंध में टीम स्थिरता के परिणाम की रिपोर्ट करते हैं, जो शब्दकोश से ढीले शब्दों को हटा देता है। कार्यक्रमों को डेटा का वर्णन करने और प्रक्रियाओं को निर्धारित करने के लिए प्रोग्राम आदेशों को डिजाइन करने की प्रक्रिया में शब्दकोश में प्रवेश किया गया नाम, कार्यक्रम को बनाए रखने और सत्यापित करने के बाद, शब्दकोश से हटाया जा सकता है, इसे तैयार कार्यक्रम को बनाए रखने के लिए आवश्यक कुछ को छोड़कर। निष्कासन $ कमांड द्वारा किया जाता है<имя подсловаря>कार्यक्रम से जुड़ी सहायक कंपनी को साफ़ करने के लिए निर्धारित करना, इन शब्दों को केवल उन शब्दों को बनाए रखना, जिनमें से किससे संबंधित है :: ::। उन टीमों के उदाहरण अनसुलझा शब्द उत्पन्न करते हैं:

:: बाइट सीएनएसटी litcode # # 0 #a;

::: एमओडी / [ए, बी), ओएसटी (ए, बी)] ई 2 डी [ओएसटी (ए, बी)];

जैसा कि दूसरा उदाहरण प्रदर्शित होता है, जिसमें प्रीफिक्स :: और बाइट शामिल होते हैं, टीम के हिस्से के रूप में एक से अधिक प्रीफिक्स हो सकते हैं।

इस प्रकार, डीएसएसपी में एक टीम या तो एक शब्द (मोनोस्लोह) या एक वाक्यांश (वाक्यांश) हो सकती है, जो उपसर्ग शुरू करती है और इस उपसर्ग के लिए स्थापित शब्दों की संख्या होती है, और यदि उपसर्ग शब्दों की मनमानी संख्या की अनुमति देता है, तो एक अंत में शब्द-limiter, या यह एक वाक्यांश हो सकता है, विशेष शब्द-presufixes के साथ सामने पूरक।

डीएसएसपी की मूल भाषा में टीम की तुलना में अधिक जटिल सिंटेक्टिक संरचनाएं नहीं होती हैं और इसमें कोई अन्य नहीं होता है, जो ऊपर की चर्चा के अलावा, डिजाइन करता है। प्रोग्रामिंग भाषाओं में भी इस तरह के अपरिहार्य, एक अभिव्यक्ति और कार्य के रूप में चीजें मूल भाषा में गायब हैं और केवल अपने विकास के दौरान आवश्यक होने पर पेश की जा सकती है।

आधार भाषा में कार्यक्रम पाठ में उनके स्थान के क्रम में किए गए आदेशों का एक सेट है। साथ ही, प्रत्येक कमांड, अकेले होने वाले प्राइमेटिव्स के अपवाद के साथ, इसके निष्पादन के दौरान इसमें शामिल शब्दों का अनुक्रम शामिल होता है जो इसमें शामिल शब्दों द्वारा परिभाषित किया जाता है। इस आदेश में शामिल किए गए आदेशों में टीमों की श्रृंखलाओं को दर्शाते हुए शब्द भी शामिल हैं जो उनके साथ जुड़े श्रृंखलाओं का जिक्कार करते हुए भी संभव शब्द हैं। उस स्तर से पहले जिन पर केवल प्राइमेटिव्स कमांड में निहित हैं।

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

दूसरी तरफ, मूल प्रणाली को डीएसएसपी कार्यक्रमों की मशीन दक्षता में वृद्धि के विशेष माध्यमों से पूरक किया जा सकता है। इन फंडों में उपयोग की जाने वाली मशीन के कमांड कोड में सीधे व्यक्तिगत प्रक्रियाओं को निर्धारित करने की क्षमता शामिल है। प्रक्रिया को निर्धारित करने की विधि के आगे उपयोग पर कोई प्रभाव नहीं पड़ता है: सभी प्रक्रियाओं के नाम एक सामान्य शब्दकोश में दर्ज किए जाते हैं और पूरी तरह से बराबर होते हैं। कई लाइब्रेरी प्रोग्राम अन्य भाषाओं में लिखे गए प्रक्रियाओं या संपूर्ण कार्यक्रमों का उपयोग करना संभव बनाता है।

संचालन और टीमों का विवरण

संचालन के ऊपर प्रदर्शन किया

ऑपरेंड स्टैक डीएसएसपी प्रोसेसर के आर्किटेक्चर के मुख्य तत्वों में से एक है। अधिकांश प्रोसेसर कमांड इसे इस्पण को बहाने के द्वारा ढेर का उपयोग करते हैं, जिनमें उन्हें आवश्यक ऑपरेंड की आवश्यकता होती है। स्टैक पर डेटा की व्याख्या हल होने वाली समस्या के सार पर निर्भर करती है, यानी, अंततः प्रोग्रामर को सौंपा गया है। इस तथ्य के कारण कि स्टैक में गिरने का मूल्य वास्तव में अपना नाम खो देता है, कार्यक्रम के पाठ में निर्धारित करना मुश्किल होता है, जिसमें एक या किसी अन्य ऑपरेशन को संचालित किया जाता है, इसके परिणाम क्या हैं। इसलिए, टिप्पणियों का उपयोग स्वर्ग की भाषा में ऑपरेंड और प्रक्रियाओं के परिणामों को स्पष्ट रूप से निर्दिष्ट करने के लिए किया जाता है। ढेर की सभी सामग्री का वर्णन करने के लिए इसकी आवश्यकता नहीं है (और यह हमेशा संभव नहीं है)। इसके ऊपर किए गए प्रक्रिया से प्रभावित स्टैक का ऊपरी हिस्सा भी टिप्पणी करें, बिल्कुल जरूरी है, क्योंकि इसके बिना, कार्यक्रम की दृश्यता खो जाती है, इससे जांचना मुश्किल हो जाता है।

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

आइए ऑपरेंड स्टैक की स्थिति को दर्शाते हुए एक टिप्पणी का एक उदाहरण दें:

[Nach.dr., n + 1.1 / 0]

कार्यक्रम के बिंदु पर, जहां यह टिप्पणी स्थित है, ऑपरेंड स्टैक में कम से कम तीन पदों में होना चाहिए, और 1 या 0 1 या 0 हो सकता है, एक्सपोजर वैल्यू में, एन + 1 के बराबर, और इसके तहत - एक संख्या प्रारंभिक पते के रूप में व्याख्या की गई।

सुविधा के लिए, स्टैक की वांछित स्थिति हम घटना की गहराई की अवधारणा का उपयोग करेंगे। हम मानते हैं कि ढेर का शीर्ष 1 की गहराई पर स्थित है, एक्सपोक्यूम - गहराई से 2, आदि। विशेष रूप से, उदाहरण में "नच" के रूप में चिह्नित मान। एक गहराई पर झूठ।

डीएसएसपी की आधार भाषा का अध्ययन हम स्टैक में कमांड फोल्डिंग मानों के साथ शुरू करेंगे। इस प्रकार की सबसे सरल (और अक्सर उपयोग की जाने वाली) टीम एक संख्यात्मक शाब्दिक है, यानी, स्थिर का एक स्पष्ट संकेत, जिसे ढेर पर रखा जाना चाहिए। उदाहरण के लिए, हम 28, -5 और 11 के चरण में भेजना चाहते हैं। इसके लिए, आपको कीबोर्ड से लाइन दर्ज करना होगा:

28 -5 11 और कुंजी दबाएं (रिटर्न कैरिज)। प्रोसेसर दर्ज संख्याओं को पहचानता है और उन्हें ढेर में वैकल्पिक करता है, ताकि शीर्ष 11 होगा। यह सुनिश्चित करने के लिए कि यह डिस्प्ले स्क्रीन पर स्टैक टॉप के शीर्ष को मुद्रित करने के लिए पर्याप्त है। इसके लिए, डीएसएसपी टीम नाम के साथ परोसा जाता है। (बिंदु)। कीबोर्ड साहित्य "बिंदु" और दबाने पर टाइपिंग , मुझे स्क्रीन पर जवाब मिलता है: 11, जो अंतिम वाक्य-घुड़सवार मूल्य से मेल खाता है। "बिंदु" का पुन: निष्पादन एक ही परिणाम की ओर जाता है - यह आदेश केवल स्टैक की स्थिति को बदलने के बिना कशेरुक को देखता है।

स्क्रीन पर ढेर की सभी सामग्री जारी करने के लिए, डीएसएसपी में एक आदेश है .. (दो अंक)। इसे करने के बाद, हम स्क्रीन लाइन पर मिलते हैं:

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

मशीन की स्मृति में ढेर की एक स्थिति देखने के लिए, 32-बिट शब्द (4 बाइट्स) का उपयोग किया जाता है, संख्याएं अतिरिक्त कोड में जमा की जाती हैं। तदनुसार, डीएसएसपी प्रोसेसर केवल 2147483648 से 2147483647 तक की सीमा में झूठ बोलने वाले पूर्णांक को सही ढंग से समझ सकता है। यदि इनपुट नंबर 32 बिट्स का प्रतिनिधित्व नहीं करता है (संकेत को ध्यान में रखते हुए), तो वरिष्ठ गैर-फिट बिट्स की गिरावट आई है।

माना गया उदाहरण में यह माना जाता था कि डीएसएसपी प्रोसेसर दशमलव / आउटपुट / आउटपुट मोड में है। स्वर्ग की भाषा में इस मोड को स्थापित करने के लिए, एक बी 10 कमांड है।

कई कार्यों को संसाधित डेटा की संख्या को संख्या के रूप में समझने की आवश्यकता होती है, लेकिन बाइनरी कोड के रूप में, यानी 32 घटक बिट्स वैक्टर। डीएसएसपी में, बाइनरी, ऑक्टिक या हेक्साडेसिमल नंबर सिस्टम में प्रस्तुत कोड के साथ काम करना संभव है। वांछित मोड को स्थापित करने के लिए, यह तीन कमांडों में से एक को निष्पादित करने के लिए पर्याप्त है: बी 2, बी 8 या बी 16, जिसके बाद प्रोसेसर निर्दिष्ट संख्या प्रणाली में सभी दर्ज किए गए कोड को समझने और प्रिंट करेगा।

इस सुविधा का उपयोग दशमलव संख्याओं को आधार 2, 8 और 16 के साथ संख्या प्रणाली में स्थानांतरित करने के लिए किया जा सकता है। उदाहरण के लिए, आपको संख्याओं का अनुवाद करने के लिए निम्न पंक्ति दर्ज करने और निष्पादित करने की आवश्यकता है:

बी 10 2 9 बी 2। B8। B16। नतीजतन, प्रोसेसर स्क्रीन पर कई संख्याएं प्रदर्शित करेगा: 00000000035 0000001 डी जो तीन निर्दिष्ट संख्या सिस्टम में दशमलव संख्या 2 9 हैं। ध्यान दें कि कोड उनके मशीन प्रतिनिधित्व में मुद्रित होते हैं, यानी, अग्रणी शून्य के साथ और साइन्स के बिना "+", "-"। बी 10 -2 बी 8 स्ट्रिंग निष्पादित करते समय। संख्या 37777777776 जारी की जाएगी, जो एक अतिरिक्त कोड में एक ऑक्टल प्रतिनिधित्व -2 है।

हेक्साडेसिमल कोड के साथ काम करते समय, संख्यात्मक शाब्दिकों के बीच संघर्ष और डीएसएसपी प्रोसेसर कमांड के नाम हो सकते हैं। उदाहरण के लिए, हेक्साडेसिड / आउटपुट मोड में बी 8 शब्द को ऑक्टल मोड सेटअप कमांड के रूप में और हेक्साडेसिमल निरंतर के रूप में व्याख्या किया जा सकता है। अनिश्चितता से बचने के लिए, मामूली शून्य से संख्यात्मक शाब्दिक शुरू होना चाहिए, उदाहरण के लिए, 0b8।

डीएसएसपी प्रोसेसर कमांड सिस्टम का आधार स्टैक में परिवर्तन परिवर्तन संचालन है। इन परिचालनों के काम को नियंत्रित करने वाला सामान्य नियम यह है कि प्रत्येक ऑपरेशन स्टैक से लेकर (हटा देता है) इसे आवश्यक ऑपरेंड की आवश्यकता होती है और परिणामों के मूल्य को (यदि कोई हो) भेजती है।

प्रोसेसर कमांड पर विचार करें जो चार अंकगणितीय परिचालनों को लागू करते हैं: पूर्णांक के अतिरिक्त, घटाव, गुणा और विभाजन। स्वर्ग की भाषा में उनकी छवि के लिए, शब्दों का उपयोग किया जाता है: +, -, * और / / क्रमशः। दो संख्याओं की मात्रा के ढेर को प्राप्त करने के लिए, उदाहरण के लिए 123 और 45, आपको इन नंबरों को ढेर में भेजने और + कमांड निष्पादित करने की आवश्यकता है। ऐसा करने के लिए, बस कीबोर्ड से अगली पंक्ति दर्ज करें (यह माना जाता है कि दशमलव इनपुट / आउटपुट मोड सेट है):

123 45 +

यदि आप अब स्टैक की सामग्री को जारी करते हैं (कमांड का उपयोग कर), तो इसके अतिरिक्त परिणाम दिखाई देंगे:

इसी प्रकार, एक कम्यूटिव गुणात्मक ऑपरेशन चल रहा है।

कम (विभाजित) के रूप में noncommutative घटाव और विभाजन संचालन प्रदर्शन करते समय, ढेर लिया जाता है, और vertex घटाया जाता है (विभाजक)। उदाहरण के लिए, अंतर की गणना करने के लिए 151-68 आपको एक स्ट्रिंग करने की आवश्यकता है:

151 68 -

स्वर्ग की भाषा में अंकगणितीय कार्रवाई करने के लिए कार्यक्रम इस तथ्य से विशेषता है कि ऑपरेशन संबंधित ऑपरेंड के बाद है। अंकगणितीय अभिव्यक्तियों की इस तरह की एक प्रविष्टि को पोस्टफिक्स (या पोलिश उलटा) प्रविष्टि कहा जाता है और इसका व्यापक रूप से स्टैक माइक्रोकैल्युलेटर्स में उपयोग किया जाता है। उदाहरण के लिए, हमें अंकगणितीय अभिव्यक्ति के मूल्य की गणना करने की आवश्यकता है ((127 + 81) * 15- (31 + 117) * 21) * 3

पोस्टफिक्स रिकॉर्ड में, यह अभिव्यक्ति इस तरह दिखेगी:

127 81 + 15 * 31 117 + 21 * - 3 *

यह स्ट्रिंग (जिसमें एक-दूसरे रिक्त स्थान से अलग होते हैं) डीएसएसपी प्रोसेसर द्वारा हमारी अभिव्यक्ति की गणना के लिए एक तैयार-निर्मित कार्यक्रम है।

डिवीजन टीम / इस तथ्य से अन्य अंकगणितीय परिचालनों से अलग है कि इसका परिणाम दो मान - निजी और अवशेष है। निजी यह ढेर हो जाता है, और अवशेष शीर्ष पर है। निजी नकारात्मक रूप से यदि विभिन्न पात्रों के विभाज्य और विभाजक हैं। अवशेषों के पास हमेशा एक विभाजन का संकेत होता है। हम डिवीजन टीम का उपयोग करने के कुछ उदाहरण देते हैं।

125 7 / [-17,-6] / / /

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

प्रोग्रामिंग को अक्सर 1 और 1 पर किसी भी मूल्य के मूल्य को बढ़ाना या घटा देना पड़ता है। स्वर्ग की भाषा में, विशेष आदेश दर्ज किए जाते हैं, जो स्टैक के शीर्ष के ऊपर निर्दिष्ट क्रियाएं करते हैं। वे शब्दों द्वारा इंगित किए जाते हैं: 1+, 1-, 2+, 2-। इन आदेशों का निष्पादन वांछित स्थिरांक (1 या 2) के ढेर में फोल्डिंग के बराबर है, इसके बाद वांछित अंकगणितीय कार्रवाई (+ या -) के निष्पादन के बाद। उदाहरण के लिए, 2+ 2 + शब्दों के बराबर है। दक्षता के विचारों के कारण डेटा भाषा आदेशों का परिचय।

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

न्यूमेरिक डेटा को नकारात्मक, एबीएस और एसजीएन को कमांड करने के लिए भी डिज़ाइन किया गया है। नेग कमांड स्टैक वर्टेक्स साइन को विपरीत में बदल देता है, एबीएस अपने मॉड्यूल के ढेर के मूल्य को प्रतिस्थापित करता है, एसजीएन - स्टैक के शीर्ष से एक संख्यात्मक मान का उपभोग करता है और निकाले गए नंबर का संकेत देता है: -1 - यदि संख्या नकारात्मक है, 1 - यदि सकारात्मक, 0 - यदि बराबर शून्य है। उदाहरण के लिए:

5 नेग [-5] एबीएस एसजीएन

मूल भाषा में उपलब्ध न्यूनतम और अधिकतम आदेश आपको न्यूनतम और अधिकतम दो पूर्णांक खोजने की अनुमति देते हैं। इन आदेशों के लिए ऑपरेंड शीर्ष और ढेर में दो संख्याओं की सेवा करते हैं। न्यूनतम टीम Lamellarameters के न्यूनतम ढेर को छोड़ देती है, अधिकतम उनमें से अधिकतम है। उदाहरण के लिए:

5 0 15 मिनट [-5,0] मैक्स

ढेर में तीन संख्याओं का न्यूनतम (अधिकतम) खोजने के लिए, न्यूनतम (अधिकतम) कमांड को दो बार लागू करने के लिए पर्याप्त है:

न्यूनतम मिनट [-2]

परिणामस्वरूप ए से बी (सीमाओं सहित) से ढेर के शीर्ष में निहित संख्याओं को दर्ज करने के पंपों का एसईजी कमांड स्टैक में साइन छोड़ देता है: 1, यदि संख्या सीमा को हिट करती है, और 0, यदि नहीं:

उदाहरण के लिए एसईजी [साइन]:

संख्यात्मक डेटा पर केंद्रित टीमों के अलावा, डीएसएसपी प्रोसेसर कमांड के एक सेट में 32-बिट कोड बदलने के लिए कई संचालन शामिल हैं। ये परिचालन स्टैक तत्व को 32-घटक बिट वेक्टर के रूप में समझते हैं, जिनके घटकों को इस तरह से दाईं ओर गिना जाता है कि बाएंमोस्ट बिट में संख्या 31 है, और सबसे सही संख्या 0. घटक की घटती संख्या दोहराती है मशीन शब्द बिट्स कई माइक्रोप्रोसेसर के लिए अपनाया गया।

बिट्स के वैक्टर के ऊपर किए गए आदेशों के लिए, मुख्य रूप से बॉल बीजगणित संचालन शामिल हैं:

    प्रत्येक कशेरुक बिट के मूल्य को बदलते हुए प्रत्येक वर्टेक्स बिट के मूल्य को बदलना, यानी 0 से 1, 1 से 0 की प्रतिस्थापन।

    शिखर के बैच संयोजन और परिणाम के आईएम बिट में स्टैक और स्थापित करने के अधीन हैं, i \u003d 31.30, ..., 0, मान 1, यदि दोनों ऑपरेंड के आईबी बिट्स 1 के बराबर हैं, और दूसरे में हैं मामलों को मैं सोचता हूं कि मैं 0 के बराबर हूं;

    शिखर की बॉबिन विघटन और स्टैक और 0 के अधीन है, जो परिणाम के आईएम बिट में सेट है, i \u003d 31.30, ..., 0, मान 0 यदि दोनों ऑपरेंड के आईबी बिट्स 0 के बराबर हैं, और अन्य मामलों में मुझे लगता है कि आई-वें बिट 1 के बराबर है;

    बोटेट अतिरिक्त (गैर-समतुल्यता) "+" शिखर और विस्तारित, आईएम परिणाम मूल्य 0 में सेट करें यदि दोनों ऑपरेंड के आईबी बिट के समान मूल्य हैं, और I के मूल्यों को 1 के परिणाम मानते हैं ऑपरेंड के अलग-अलग।

525 INV 722 और 136 & 0 325 "+"

दोनों संयोजन अक्सर निर्वहन शब्द के शून्य (सफाई) के लिए उपयोग किया जाता है। इसके लिए, वे मूल शब्द का संयोजन प्रदर्शन करते हैं जिसमें उन निर्वहन में शून्य युक्त मास्क के साथ होता है जिसे साफ करने की आवश्यकता होती है और अन्य डिस्चार्ज में इकाइयां होती हैं। उदाहरण के लिए, यदि आपको किसी शब्द x में 3 से 5 वीं तक बिट्स को रीसेट करने की आवश्यकता है, तो मास्क 37777777707 के साथ अपने बैच संयोजन का उत्पादन करना आवश्यक है। एक्स \u003d 235 के लिए, हम प्राप्त करते हैं:

दोनों अपघटन का उपयोग श्रेणी निर्वहन के पूर्व-शुद्ध समूह में बिट्स के वांछित संयोजन का आनंद लेने के लिए किया जा सकता है। उदाहरण के लिए, आपको अंतिम उदाहरण के परिणामस्वरूप ढेर में शेष 5 वें शब्द से बिट्स में 010 के बाइनरी संयोजन को लागू करने की आवश्यकता है। यह इस तरह किया जा सकता है:

बिट्स में संचालन में तार्किक शिफ्ट कमांड भी शामिल हैं:

    बाएं शिफ्ट एसएचएल - 31 वीं से शुरू होने वाले ढेर के शीर्ष का प्रत्येक बिट संख्याओं के वांछित क्रम में इसका पालन करने का मूल्य लेता है, और उत्तरार्द्ध, शून्य बिट मान 0 लेता है;

    दाएं एसएचआर में शिफ्ट - स्टैक के शीर्ष का प्रत्येक बिट, 0 वें से शुरू होने से बढ़ती संख्या के क्रम में निम्नलिखित का मूल्य होता है, और 31 वीं बिट 0 का मान लेता है;

    शिफ्ट शिफ्ट - ऊपरी तत्व को ढेर से बाहर रखा गया है और इसे एक पूर्णांक एन माना जाता है, यह दर्शाता है कि कितने बदलाव और किस दिशा में ढेर के शीर्ष में उत्पादन करना आवश्यक है: जब एन\u003e 0, इसे स्थानांतरित किया जाता है छोड़ दिया, n के साथ<0 - вправо.

B8 125 SHR SHL -2 SHT

इसका उपयोग सीमा के बाईं ओर 2 से डिग्री एन तक स्थानांतरित करने के लिए किया जा सकता है, जहां एन एक प्राकृतिक संख्या है जो बदलावों की संख्या निर्धारित करती है। उदाहरण के लिए, 8 पर संख्या -5 का गुणा 3 डिस्चार्ज के लिए इस संख्या को स्थानांतरित करके किया जा सकता है:

बी 10 -5 3 एसएचटी [-40]

इसे ओवरफ्लो की संभावना को ध्यान में रखना चाहिए।

दाईं ओर की शिफ्ट का उपयोग केवल सकारात्मक संख्याओं के लिए 2 से डिग्री के लिए एक विखंडन ऑपरेशन के रूप में किया जा सकता है, क्योंकि शिफ्ट के दौरान वरिष्ठ (प्रतिष्ठित) बिट दाईं ओर रीसेट हो जाता है। उदाहरण के लिए:

जहाँ तक

दाएं रोर और बाएं आरओएल पर 1 बिट पर स्टैक कशेरुक के चक्रीय शिफ्ट कमांड तार्किक शिफ्ट कमांड के समान हैं, सिवाय इसके कि चरम बिट विस्तारित गायब नहीं होता है, लेकिन 32 के विपरीत छोर से रिक्त स्थान पर जा रहा है -बिट लंबा शब्द। उदाहरण के लिए (संख्या हेक्साडेसिमल):

बाइनरी कोड प्रसंस्करण के लिए, एसडब्ल्यूबी और एसडब्ल्यूडब्ल्यू डीएसएसपी प्रोसेसर कमांड भी डिजाइन किए गए हैं। एसडब्ल्यूबी फ़ंक्शन ढेर के शीर्ष के सबसे कम उम्र के आधे हिस्से के बाइट्स के क्रमपरिवर्तन में स्थित है, और स्टैक के शीर्ष के हिस्सों के क्रमपरिवर्तन में एसडब्ल्यूडब्ल्यू फ़ंक्शन। हम हेक्साडेसिमल I / O (इस मोड में, प्रत्येक बाइट को दो 16-समृद्ध संख्याओं द्वारा चित्रित किया गया है) के हेक्स मोड का उपयोग करके इन आदेशों के कार्य को चित्रित करते हैं:

B16 0ABCD SWB SWB

0ABCEF12 SWW SWB।

स्वर्ग की भाषा में एक महत्वपूर्ण भूमिका टीम हेरफेर स्टैक द्वारा खेला जाता है। वे स्टैक पर डेटा के मानों को नहीं बदलते हैं, लेकिन केवल अपने स्थान को बदलते हैं, ढेर की गहराई में ऑपरेंड तक पहुंच की सुविधा प्रदान करते हैं।

स्टैक तत्वों को हटाने के लिए तीन आदेश हैं: डी, \u200b\u200bडीडी, डीएस (ड्रॉप - फेंक दें)। डी कमांड एक (शीर्ष) तत्व, डीडी - दो तत्वों को हटा देता है, उदाहरण के लिए:

डी डीडी डी डीएस स्टैक से सभी तत्वों को हटा देता है (ढेर को साफ करता है):

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

आइए पोलिनोमियल पी (एक्स) \u003d 3 * x ** 2 + 4 * x-5 की गणना के उदाहरण पर इस कमांड का उपयोग दिखाएं हॉर्नर स्कीमा के अनुसार: पी (एक्स) \u003d (3 * एक्स + 4) * एक्स -5। हमारा मानना \u200b\u200bहै कि एक्स का मान ढेर के शीर्ष में निहित है।

[x] c 3 * 4 + * 5 -

ढेर शीर्ष मुख्य प्रतिलिपि टीम के साथ, सी 2, सी 3, सी 4 कमांड भी हैं जो तत्वों को गहराई 2, 3, 4 पर कॉपी करते हैं। उनके काम को निम्नलिखित उदाहरणों से समझाया जा सकता है:

सी 2 सी 4।

एक गहराई पर स्थित एक तत्व की प्रतिलिपि बनाने की सीटी कमांड भी है, जो ढेर के शीर्ष में निर्दिष्ट है। एक सीटी का प्रदर्शन, प्रोसेसर ऊपरी तत्व को ढेर से हटा देता है, प्रतिलिपि तत्व की गहराई के लिए अपने मूल्य का उपयोग करता है और बाद की प्रतिलिपि को ढेर में भेजता है। इस प्रकार, गहराई 5 पर स्थित एक तत्व की प्रतिलिपि बनाना 5 सीटी कमांड की एक जोड़ी द्वारा सेट किया गया है, जो कि कौन सा प्रोसेसर नंबर 5 स्टैक में बढ़ावा देता है, और फिर सीटी कमांड को निष्पादित करता है। पैरामीटर 1, 2, 3, 4 के साथ सीटी का निष्पादन सी, सी 2, सी 3, सी 4 कमांड के अनुसार बराबर है।

एक्सचेंज कमांड ई 2, ई 3, ई 4 (एक्सचेंज - एक्सचेंज) क्रमशः दूसरे, तीसरे, 4 तत्व के साथ क्रमशः पहले (ऊपरी) स्टैक तत्व का क्रमशः उत्पन्न करता है, जो गहराई से 2, 3, 4 तत्व के साथ है। उदाहरण के लिए:

ई 3 ई 2।

एक बड़ी गहराई के लिए विनिमय करने के लिए, ईटी कमांड का उपयोग किया जाता है, साथ ही सीटी, तत्व की गहराई के लिए एक सूचक के रूप में स्टैक कशेरुक का मूल्य, जो पहले तत्व के साथ आदान-प्रदान किया जाता है। उदाहरण के लिए:

5 ईटी।

पैरामीटर 2, 3, 4 के साथ ईटी कमांड ई 2, ई 3, ई 4 कमांड के बराबर है।

प्रतिलिपि और विनिमय आदेशों के उपयोग को चित्रित करने के लिए, सीखने के कार्य पर विचार करें। स्टैक को तीन नंबर दिए जाते हैं। ढेर पर जाना आवश्यक है :. आप निम्नलिखित कार्यक्रम की पेशकश कर सकते हैं, जिसका अर्थ टिप्पणियों से स्पष्ट है।

सी 3 सी 3 सी 3 +

E4 + E4।

यह उदाहरण दर्शाता है कि ऑपरेंड स्टैक की स्थिति को दर्शाते हुए टिप्पणियों की भूमिका कितनी अच्छी है।

कार्यक्रमों की तुलना अक्सर संख्यात्मक मानों के बीच की जानी चाहिए और तुलना के परिणामों के आधार पर विभिन्न प्रक्रियाएं करना पड़ता है। स्वर्ग की भाषा में तुलनात्मक टीम हैं<, =, >। वे संख्याओं के ऊपर परिभाषित किए जाते हैं और नतीजतन संख्यात्मक मान 0 और 1. को देते हैं। तो, टीम< потребляет из стека два элемента и засылает в стек число 1, если значение нижнего элемента оказалось меньше значения верхнего, а в противном случае засылает 0. Например, в результате выполнения последовательности 5 -20 < в стек будет заслан 0. Команда = засылает 1 в случае равенства потребленных ею элементов. Команда > स्वीप 1 जब निचला तत्व शीर्ष से अधिक होता है। गैर-रणनीतिक तुलनाओं को प्रोग्राम करने के लिए (कम या बराबर, अधिक या बराबर), न कि कमांड का उपयोग नहीं किया जाता है, जो स्टैक के शीर्ष के मूल्य को शून्य, शून्य और शून्य-इकाई के बराबर नहीं करता है। उदाहरण के लिए, तार्किक अभिव्यक्ति x\u003e \u003d 5 की गणना, जहां एक्स स्टैक के शीर्ष में स्थित एक संख्या है, इस प्रकार पूछा जा सकता है:

[x] 5< NOT

तुलनात्मक आदेशों, तार्किक संयोजन संचालन और (तार्किक और) और विघटन और 0 (तार्किक या) के साथ प्रोग्रामिंग शर्तों की संभावनाओं की संभावनाओं का विस्तार सुनिश्चित किया जाता है। उदाहरण के लिए, उदाहरण के लिए, आपको स्टैक 1 पर प्राप्त करने की आवश्यकता है, अगर संख्या x certex में है सी 5 के सेमिन से संबंधित है< NOT C2 10 <

और e2 2 \u003d & 0

तुलना के परिणामों के आधार पर कार्यक्रम प्रबंधन उपकरण भविष्य में विचार किया जाएगा।

कार्यवाही

मुख्य रिसेप्शन प्रोग्रामिंग के रूप में, डीएसएसपी उपयोगकर्ता को प्रक्रियाओं नामक नामित अनुक्रमों को निर्धारित करने की क्षमता प्रदान करता है। निर्दिष्ट मूल्य एक्स के लिए स्क्वायर तीन decar 3 * x ** 2-4 * x + 9 के मूल्यों की गणना करने के लिए इसे अनुमति दें। इस मामले में, यह प्रक्रिया द्वारा निर्धारित किया जाना चाहिए जो सूत्र को लागू करता है तीन निर्णय और परिणाम के टर्मिनल को जारी करना, और फिर इस प्रक्रिया को विशिष्ट मान x पर लागू करें। वांछित प्रक्रिया, आइए इसे पीएक्स कहें, इस प्रकार परिभाषित किया गया है :: पीएक्स [एक्स] सी 3 * 4 - * 9 +। घ; कोलन का अर्थ है "प्रक्रिया का निर्धारण" संचालन, और प्रक्रिया का नाम अलगाव स्थान के बाद कोलन का पालन करता है। आदेशों के परिभाषित अनुक्रम (प्रक्रिया का शरीर) प्रक्रिया के नाम के बाद स्थित है और अल्पविराम के साथ एक बिंदु के साथ समाप्त होता है। संक्षेप में, प्रक्रिया फॉर्म में निर्धारित की जाती है:

: <имя процедуры> <тело процедуры> ;

स्वर्ग की भाषा में, शुरुआत में और प्रक्रिया के अंत में ऑपरेंड स्टैक की स्थिति पर टिप्पणी करना आवश्यक है। प्रक्रिया के शरीर में, कार्यक्रमों को समझने में मुश्किल में प्रोग्रामर के विवेकानुसार टिप्पणियां रखी जाती हैं।

टिप्पणियां किसी व्यक्ति को प्रक्रिया को समझने और उपयोग करने में मदद करती हैं, प्रोसेसर बस ब्रैकेट में संलग्न सबकुछ को अनदेखा करता है। इसलिए, टर्मिनल से एक अलग प्रक्रिया की परिभाषा दर्ज करते समय, टिप्पणियां छोड़ी जा सकती हैं।

प्रक्रिया की परिभाषा के बाद और कुंजी दबाकर इनपुट के अंत में प्रोसेसर की सूचना दी गई है, एक तारांकन टर्मिनल स्क्रीन पर दिखाई देता है, जो "प्रक्रिया निर्धारित करें" कमांड के निष्पादन को इंगित करता है और प्रोसेसर संवाद जारी रखेगा। अब आप पीएक्स प्रक्रिया को एक्स कीबोर्ड सेट पर लागू कर सकते हैं, उदाहरण के लिए, 2, 3, 4 (प्रोसेसर द्वारा जारी किए गए द्वारा इसे जोर दिया जाता है):

* 2 पीएक्स। 13

* 3 पीएक्स। 24

* 4 पीएक्स। 41

हम तीन-चयनित फॉर्म ए 2 * एक्स ** 2 + ए 1 * एक्स + ए 0 की गणना करने के लिए एक और सामान्य प्रक्रिया को परिभाषित करते हैं, जो आपको एक्स और ए 0, ए 1, ए 2 दोनों के मूल्यों को सेट करने की अनुमति देता है। आइए उसे पीएक्सए कहते हैं:

: पीएक्सए सी ई 4 ई 3 * + * +;

पीएक्सए का उपयोग करते समय, स्टैक वैल्यू ए 0, ए 1, ए 2, एक्स के वांछित अनुक्रम में होना चाहिए। उदाहरण के लिए: ए 0 \u003d 1, ए 1 \u003d 2, ए 2 \u003d -3, एक्स \u003d 4

* 1 2 -3 4 PXA। डी -39

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

: पी पीएक्सए। घ;

विशेष रूप से, प्रक्रिया के शरीर में निर्धारित प्रक्रिया का नाम शामिल हो सकता है, यानी प्रक्रिया पुनरावर्ती हो सकती है। उदाहरण के लिए:

: समय [टी] 1- समय;

यह प्रक्रिया 1 स्टैक कशेरुक के मूल्य को कम कर देती है और खुद को वापस कर देती है, यानी यह एक समय काउंटर के रूप में काम करती है।

समय काउंटर को सिद्धांत रूप में नहीं रोका जा सकता है: प्रोसेसर काम करते समय यूनिट घटाव प्रक्रिया बार-बार की जाएगी। लेकिन डीएसएसपी में, प्राप्त परिणामों के आधार पर प्रक्रिया की प्रक्रिया को प्रबंधित करने के लिए धनराशि है - कार्यक्रम प्रबंधन संचालन।

स्थिति और पुनरावृत्ति द्वारा प्रदर्शन

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

एक संरचित प्रोग्रामिंग विधि बनाना न केवल रैखिक, बल्कि किसी भी कार्यक्रम की स्थिति के तहत प्रक्रिया के लिए संचालन की उपस्थिति में, प्रक्रिया की पुनरावृत्ति और दोहराव वाली प्रक्रिया से बाहर निकलने के लिए भी संभव है। डीएसएसपी में इस तरह के आदेशों का सेट मनमाने ढंग से कार्यक्रम की संरचना करने की क्षमता प्रदान करता है।

प्रक्रिया के निष्पादन या गैर-पूर्ति की शर्तें संख्या के संकेत के सापेक्ष तैयार की जाती हैं, अधिक सटीक रूप से, स्टैक के शीर्ष के मूल्य के मूल्य के सापेक्ष वर्तमान में है। मुख्य सशर्त प्रक्रिया कमांड - बीआरएस (साइन-शाखा पर शाखा चिह्न) स्टैक कशेरुक के वर्तमान मूल्य के संकेत के आधार पर बीआरएस के बाद नामित तीन प्रक्रियाओं में से एक को करने के लिए निर्धारित करता है। प्रदर्शन बीआरएस, प्रोसेसर को ऊपरी तत्व को ढेर से वापस ले लिया जाता है, इसके मूल्य का परीक्षण करता है, और यदि यह नकारात्मक है, तो यह इन प्रक्रियाओं में से पहला करता है, यदि शून्य, तो दूसरा, और यदि सकारात्मक हो, तो तीसरा। तो टीम

स्टैक से एक तत्व को हटाने और प्रक्रिया एन निष्पादित करने से कॉल करता है, यदि रिमोट वैल्यू नकारात्मक है, तो प्रक्रिया पी, सकारात्मक होने पर, यदि शून्य प्रक्रिया का निष्पादन, और शून्य हो।

बीआरएस कमांड का उपयोग करने का एक उदाहरण एसजीएन प्रक्रिया की निम्नलिखित परिभाषा है

: एसजीएन [एक्स] बीआरएस -1 0 1;

यह प्रक्रिया ढेर के शीर्ष में निहित एक्स संख्या के मूल्य को प्रतिस्थापित करती है, यदि x<0, числом 0, если X=0, и числом 1, если X>0. एसजीएन प्रक्रिया डीएसएसपी में मूल प्रोसेसर ऑपरेशन के रूप में उपलब्ध है।

बीआरएस कमांड, तीन डेटा से एक प्रक्रिया की पसंद के साथ, यदि-तब के रूप में दो अंकों के ऑपरेटरों को लागू करने की संभावना प्रदान करता है और फिर और। उदाहरण के लिए, यदि x\u003e 0 तो P1 और P0 प्रस्ताव बीआरएस पी 0 पी 1 कमांड से मेल खाता है, और यदि एक्स ऑफ़र करता है<>0 फिर पी - बीआरएस पी एनओपी पी कमांड, जिसमें एनओपी एक खाली ऑपरेशन का नाम है। लेकिन डीएसएसपी में, दो अंकों की शर्तों का एक और अधिक कुशल कार्यान्वयन होता है - आदेश यदि-, IF0, यदि +, br-, br0, br +।

यदि समूह IF-तब ऑपरेटर के अनुरूप है। उदाहरण के लिए, आईएफ-पी कमांड ऊपरी तत्व को ढेर से निर्देशित करता है और इसके संकेत का परीक्षण करता है, और यदि इस तत्व के पास एक ऋण चिह्न है, तो प्रक्रिया पी। IF0 P और यदि PROUND PROMENS PRICTICN PRICTICN PROPRICT PROPRED , क्रमशः, मामले में जब जब्त तत्व शून्य होता है, और इस मामले में जब इसका मूल्य सकारात्मक होता है।

यदि समूह आज्ञाओं के आवेदन को चित्रित करने के उदाहरण के रूप में, हम एबीएस बेसिक भाषा कमांड की परिभाषा देते हैं जो स्टैक वर्टेक्स मॉड्यूल की गणना करता है।

: एबीएस [एक्स] सी अगर- नेग [| एक्स |];

बीआर-, BR0 और BR + कमांड IF-तब-elles ऑपरेटर के अनुरूप हैं, जो दो बुलाओ प्रक्रियाओं में से एक को चुनने के लिए निर्धारित करते हैं। यदि स्टैक से तत्व Seizite का संकेत पदनाम में उपलब्ध कमांड के साथ मेल खाता है, तो प्रक्रिया की जाती है, पहले नामित किया जाता है, और यदि यह मेल नहीं खाता है, तो दूसरी प्रक्रिया की जाती है। उदाहरण के लिए, BR0 पी 0 पी 1 कमांड इस मामले में पी 0 प्रक्रिया को निर्देश देता है जब ढेर से तत्व वापस ले लिया जाता है, और यदि यह स्थिति संतुष्ट नहीं होती है, तो पी 1 प्रक्रिया करें।

माना गया आदेश आर्थिक रूप से इन स्थितियों के आधार पर प्रक्रिया के निष्पादन को प्रोग्राम करने की अनुमति देता है। एक्स की प्रजातियों की सबसे आम स्थितियां<0, x=0, x>0 यदि समूह कमांड द्वारा सीधे कार्यान्वित किया गया है। शर्तें एक्स।<=0, x<>0, x\u003e \u003d 0 को पहली प्रक्रिया के रूप में एक खाली एनओपी ऑपरेशन का उपयोग करके कमांड BR-, BR0, BR + का उपयोग करके प्रोग्राम किया गया है। उदाहरण के लिए, यदि एक्स सुझाव<=0 then P соответствует команда BR+ NOP P. Примером использования команд группы BR может служить следующая реализация команды базового языка NOT, заменяющей нулевое значение вершины стека единицей, а ненулевое - нулем.

: नहीं [x] br0 1 0;

कार्यक्रम शाखाओं को अक्सर तुलना आदेशों के बाद बनाया जाता है (<, =, >), दो संख्याओं की तुलना के परिणाम के आधार पर 1 या 0 के तार्किक मान का उत्पादन। उदाहरण के लिए, अधिकतम मूल भाषा कमांड को निम्नानुसार प्रोग्राम किया जा सकता है:

: अधिकतम सी 2 सी 2< IF+ E2 D ;

शाखा कमांड समूह में बीआर चयन कमांड भी शामिल है, जो फॉर्म में लिखा गया है:

बीआर ए 1 पी 1 ए 2 पी 2 ... एके पीके ... एक पीएन और पी 0

इस कमांड को समझकर, प्रोसेसर पहले प्रक्रिया संकेतक ए 1 करता है और इसके नीचे स्टैक के पिछले कशेरुक के मूल्य की तुलना करता है। यदि मान संयोग हैं, तो दो ऊपरी तत्वों को ढेर से हटा दिया जाता है और पी 1 प्रक्रिया को ए 1 पॉइंटर द्वारा मैप किया जाता है, जिसके बाद बीआर कमांड (यानी, उपरोक्त रिकॉर्डिंग में) कमांड को आदेश दिया जाता है। कार्यक्रम पी 0 के पाठ में अगला कदम)। यदि कम्पैक योग्य मान मेल नहीं खाते हैं, तो एक ऊपरी तत्व को ढेर से हटा दिया जाता है (यानी, परिणाम ए 1) और एक ही क्रिया ए 2 पी 2 की एक जोड़ी के साथ बनाई जाती है, फिर यदि संयोग काम नहीं करता है, तो साथ एक जोड़ी ए 3 पी 3, आदि एक पीएन समावेशी द्वारा। ऐसे मामले में जब किसी भी प्रयास ने संयोग नहीं दिया, तो वर्ड के बाद बुलाए गए पी 0 प्रक्रिया की जाती है। आमतौर पर, पॉइंटर्स की भूमिकाएं संख्यात्मक स्थिरांक होते हैं, उदाहरण के लिए:

[x] c br 5 neg -3 abs 0 और t0 [y]

स्टैक के शीर्ष पर इस लाइन के निष्पादन के परिणामस्वरूप, वाई \u003d -5 का मान प्राप्त किया जाएगा यदि x \u003d 5; y \u003d 3, यदि x \u003d -3; y \u003d 1, यदि x \u003d 0 और y \u003d 0 अन्य सभी मामलों में।

आम तौर पर, पॉइंटर प्रक्रिया न केवल एक संख्यात्मक स्थिर हो सकती है, बल्कि एक परिवर्तनीय या कोई अन्य प्रक्रिया भी हो सकती है जो सरल आवश्यकता को पूरा करती है: इसमें ढेर से कुछ भी नहीं ले जाती है और एक मूल्य को ढेर में डालती है।

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

: समय [टी] 1- सी अगर + समय;

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

7 समय।<ВК>

चूंकि + समय की परिभाषा में, साथ ही साथ एक सशर्त ऑपरेशन, परीक्षण तत्व को ढेर से वापस ले लिया जाता है, और यह आइटम बाद के संचालन के लिए आवश्यक है, इसे डुप्लिकेट करना होगा, यदि + कॉपी ऑपरेशन से पहले रखा जा सके।

रिकर्सन प्रक्रिया के कई निष्पादन का मुख्य साधन नहीं है। स्वर्ग की भाषा में प्रोग्रामिंग चक्रों के लिए, आरपी (दोहराना - दोहराना) हैं और (करते हैं, करते हैं, प्रदर्शन करते हैं)।

आरपी डब्ल्यू कमांड वाई प्रक्रिया को बार-बार एक असीमित संख्या निर्धारित करता है। पुनरावृत्ति को दोहराने के लिए, प्रक्रिया के शरीर में एक पूर्व (निकास - निकास) होना चाहिए, जो किसी दिए गए हालत के तहत किया जाता है। पूर्व संचालन प्रक्रिया के निष्पादन के लिए संक्रमण करता है जो इस पूर्व संचालन वाली एक बार-बार प्रक्रिया के लिए कार्यक्रम के पाठ का पालन करता है। इस प्रकार, रिकर्सिव प्रक्रिया समय के रूप में ऊपर लागू किए गए काउंटर को प्रक्रिया डब्ल्यू की पुनरावृत्ति के रूप में प्रोग्राम किया जा सकता है, जिसे निम्नानुसार निर्धारित किया जाता है:

: डब्ल्यू [टी] 1- सी आईएफ 0 पूर्व;

काउंटर को 25 बार काम करने के लिए, आपको एक स्ट्रिंग करने की आवश्यकता है

पूर्व संचालन के साथ, जो स्थिति के तहत निष्पादन आदेशों में उपयोग किया जाता है, वहां सशर्त निकास संचालन पूर्व-, EX0, EX + होता है, जैसा कि-पूर्व, IF0 पूर्व, यदि + पूर्व, यानी ढेर से उपभोग करता है तत्व अपने संकेत का परीक्षण करता है और आउटपुट निष्पादित करता है यदि हस्ताक्षर पदनाम में निर्दिष्ट ऑपरेशन के साथ मेल खाता है। पूर्व, पूर्व-, EX0, EX + ऑपरेशंस का उपयोग सबसे बार-बार प्रक्रिया (हमारे मामले में, डब्ल्यू) के शरीर में किया जा सकता है, लेकिन प्रक्रियाओं में भी इसे खींचा जाता है।

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

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

: नोड आरपी चरण [नोड (एम, एन), नोड (एम, एन)] डी [नोड (एम, एन)];

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

: चरण सी 2 सी 2 - बीआरएस एनओपी एक्स ई 2 सी 2 -;

अब प्रोग्राम में कोई अनिश्चित प्रक्रिया नहीं है और आप इसे जांचने के लिए आगे बढ़ सकते हैं। चेक को नीचे से लिया जाना चाहिए, यानी, आपको पहले यह सुनिश्चित करने की आवश्यकता है कि प्रक्रिया सही है और केवल नोड है।

मूल भाषा ऑपरेशन पुनरावृत्ति को एन टाइम्स की प्रक्रिया के बाद बुलाए गए पुनरावृत्ति को कॉल करता है, जहां एन के समय तक स्टैक के शीर्ष में निहित संख्या है। उदाहरण के लिए, प्रक्रिया पी को 8 बार निष्पादित किया जाता है, आपको सेट करने की आवश्यकता होती है

8 पी। पी।

यदि प्रक्रिया पी के शरीर में, कम से कम एक आउटपुट ऑपरेशन होता है और इसकी निष्पादन स्थिति पुनरावृत्ति की निर्दिष्ट संख्या से पहले संतुष्ट हो जाएगी, पुनरावृत्ति प्रक्रिया से बाहर निकलने से रोक दी जाएगी, जैसा कि के मामले में किया जाता है आरपी ऑपरेशन। उदाहरण के लिए, जब दोहराया जाता है, तो उपरोक्त वर्णित प्रक्रिया, जिसकी परिभाषा में आईएफ 0 पूर्व, रिकॉर्डिंग [टी] 30 डब्ल्यू डब्ल्यू 30 दोहराव का कारण बन जाएगी यदि टी\u003e \u003d 30। अगर 0

यदि ऑपरेशन के समय से स्टैक के शीर्ष में यह शून्य या नकारात्मक मूल्य साबित हुआ, तो निम्न प्रक्रिया पूरी नहीं हुई है।

ऑपरेशन के उपयोग को स्पष्ट करने के लिए, हम उस संख्या की प्रक्रिया को परिभाषित करते हैं जो ढेर के शीर्ष में निर्दिष्ट 32-बिट शब्द x में गैर-शून्य बिट की मात्रा की गणना करता है।

ढेर में इकाइयों की संख्या रखी जाएगी। इकाइयों की गणना संख्या प्रक्रिया के 32 गुना पुनरावृत्ति में होगी, जिसमें हम एक्स के एक बिट का पता लगाएंगे। ढेर में चक्र से बाहर निकलने पर, एक मांग-डाउन संख्या होनी चाहिए।

: NUM [X] 0 E2 32 DO NUMI D [n];

नॉनज़ेरो बिट्स की गणना करने के लिए, हम वरिष्ठ (31 वें) शब्द बैच में यूनिट का उपयोग नकारात्मक संख्या के संकेत के रूप में कार्य करता है। यदि अध्ययन के तहत शब्द नकारात्मक है, तो एन इकाई में जोड़ना आवश्यक है। NUMI प्रक्रिया के अंत में, आपको एक श्रेणी के लिए बाईं ओर एक श्रेणी के लिए शब्द को स्थानांतरित करने की आवश्यकता है।

: NUMI C यदि- N + SHL;

एन + प्रक्रिया का कार्यान्वयन काफी सरल है: आपको शिखर को बदले बिना स्टैक में एक इकाई जोड़ने की आवश्यकता है।

: एन + ई 2 1+ ई 2;

बार-बार प्रक्रियाओं में आरपी हो सकता है और अपने शरीर में संचालन हो सकता है, जिससे नेस्टेड चक्रों की घटना होती है, और घोंसले की गहराई की अनुमति है। साथ ही, ढेर के शीर्ष में घोंसले की गहराई के संकेत के साथ नेस्टेड चक्र का एक निकास संचालन है। उदाहरण के लिए, दो निवेश चक्रों की उपज निम्नानुसार सेट की जा सकती है:

यह ध्यान में रखना चाहिए कि EXT कमांड के उपयोग में वृद्धि के लिए देखभाल की आवश्यकता होती है, क्योंकि प्रोग्राम को संशोधित करते समय, चक्र की गहराई और संबंधित स्थिरता को बदलने की आवश्यकता होगी।

प्रस्तुत आंकड़ा

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

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

शब्द var 16-बिट संख्यात्मक चर घोषित करता है। उदाहरण के लिए, लेखन

एक वैरिएबल एक्स की घोषणा, यानी प्रोसेसर की रिपोर्ट करता है कि नाम एक्स चर का नाम है। प्रोसेसर इस नाम के साथ 16-बिट मेमोरी सेल को जोड़ता है, जिसमें इस चर का मूल्य संग्रहीत किया जाएगा। ऑपरेंड स्टैक के शीर्ष में निहित चर एक्स मान का असाइनमेंट कमांड, है

इस आदेश को निष्पादित करके, प्रोसेसर को ऊपरी तत्व ढेर से वापस ले लिया जाता है और वेरिएबल एक्स के लिए बनाए गए सेल को अपना मूल्य लिखता है।

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

उदाहरण के तौर पर, हम नोड की प्रक्रिया के ऊपर चर्चा की गई प्रक्रिया का एक और संस्करण पेश करते हैं जिसमें दो ऑपरेटिंग चर का उपयोग किया जाता है।

: नहीं! एक्स! वाई आरपी चरण एक्स [नोड];

: चरण x y \u003d ex + x y br + x-y y-x;

: एक्स-वाई एक्स वाई -! एक्स;

: वाई - एक्स वाई एक्स -! Y;

जैसा कि देखा जा सकता है, कार्यक्रम कुछ हद तक हो गया है, लेकिन इसकी दृश्यता में वृद्धि हुई है।

वीसीटीआर शब्द ने 16-बिट कोशिकाओं के एक-आयामी सरणी (वेक्टर) की घोषणा की, और इस सरणी के पुराने तत्व की संख्या वर्टेक्स के मूल्य से निर्धारित की गई है। उदाहरण के लिए, रिकॉर्डिंग के परिणामस्वरूप

9 वीसीटीआर पंक्ति प्रोसेसर 10 अनुक्रमिक रूप से 16-बिट मेमोरी शब्दों को संबोधित करते हुए, एक वेक्टर पंक्ति (0: 9) बनाते हैं। सबसे पहले, संख्या 9 को ढेर में खींचा गया है, और फिर वीसीटीआर प्रक्रिया की जाती है, जो ऊपरी स्टैक तत्व को निर्मित पंक्ति वेक्टर की लंबाई निर्धारित करने के लिए उपभोग करती है।

जे-वें तत्व पंक्ति के मूल्य के मूल्य में तह, 0<=j<=9, задается командой

[जे] पंक्ति

पैरामीटर के रूप में ढेर में तत्व संख्या का उपयोग करके, पंक्ति वेक्टर का नाम इस संख्या के प्रतिस्थापन को संबंधित आइटम के मूल्य के साथ कॉल करता है। यदि शब्द सीधे पंक्ति वेक्टर नाम के सामने है, तो इस वेक्टर का निर्दिष्ट वर्टेक्स तत्व मूल्य को सौंपा गया है, और स्टैक की गहराई 2 से कम हो जाती है। उदाहरण के लिए, पंक्ति वेक्टर के 5 वें तत्व को रीसेट करें संभव के:

वैक्टरों को समन्वयित करने की संभावना भी है - स्थिरांक, यानी। 16-बिट नंबरों के वैक्टर, जिनके मूल्यों को परिभाषित किया जाता है जब भविष्य में कोई विज्ञापन नहीं बदला जाता है। इस प्रकार, 16-बिट स्थिरांक वीसी लंबाई एल + 1 के वेक्टर को फॉर्म में शब्द का उपयोग करके घोषित किया गया है:

सीएनएसटी वीसी के 0 के 1 ... केएल;

जहां के 0, के 1, ... केएल - टीमों ने एक मूल्य के ढेर को भेजा। अक्सर ये केवल संख्यात्मक शाब्दिक होते हैं, लेकिन परिवर्तनीय नाम, प्रक्रियाएं, साथ ही साथ शब्दों के शब्दों से युक्त आदेश भी हो सकते हैं, जैसे कि चर के पते की सेटिंग कमांड के नीचे माना जाता है "एक्स अपील के तत्वों के लिए अपील सामान्य वेक्टर सामान्य वैक्टर के घटकों के समान ही किया जाता है। उदाहरण के लिए:

16-बिट शब्दों की बहुआयामी सरणी को एआरआर शब्द का उपयोग करके घोषित किया गया है, जिसके सामने प्रत्येक माप के लिए अधिकतम अनुक्रमणिका मूल्य और माप की संख्या इंगित की जाती है। उदाहरण के लिए, एक त्रि-आयामी टीआईआर सरणी (0: 8.0: 2.0: 24) को निम्नानुसार घोषित किया गया है:

संख्या 3, जो तुरंत आघात से पहले है, का अर्थ घोषित सरणी का आयाम है।

स्टैक में सरणी के तत्व की सेटिंग इस तत्व के सूचकांक के विनिर्देश द्वारा सरणी नाम के साथ प्राप्त की जाती है। उदाहरण के लिए, टीआईआर तत्व स्टैक (0,2,2) में संदर्भ आदेश के रूप में व्यक्त किया गया है

तदनुसार, स्टैक के चरण के मौजूदा मूल्य के इस तत्व का असाइनमेंट कमांड द्वारा निर्धारित किया गया है

सभी माना गया उदाहरण 16-बिट शब्दों से संरचनाओं के निर्माण को चित्रित किया। हालांकि, भाषा आपको 32-बिट शब्दों और 8-बिट बाइट्स की संरचनाओं की पहचान करने की अनुमति देती है। इसके लिए, संरचना को परिभाषित करने वाले शब्द से पहले, प्री-एमराइफिक्स लंबा या बाइट क्रमशः रखा जाता है। उदाहरण के लिए,

5 बाइट वीसीटीआर एक्स - 6 घटक वेक्टर बाइट्स एक्स की परिभाषा;

बाइट सीएनएसटी वाई 65 66 67; - 3 घटक बाइट वेक्टर-निरंतर वाई की परिभाषा;

10 20 2 लांग आरआर एमटीआरएक्स - एमटीआरएक्स लॉन्ग वर्ड मैट्रिक्स की परिभाषा (0: 10.0: 20)।

शब्दों और बाइट संरचनाओं के तत्वों को पढ़ना 16-बिट शब्दों की संरचनाओं के मामले में किया जाता है। 32 बिट्स से कम के तत्व की लंबाई के साथ, वसूली योग्य मूल्य ढेर के शीर्ष के सबसे कम उम्र के शब्द या बाइट में रखा जाता है, और वर्टेक्स का पुराना हिस्सा रीसेट होता है। जैसा कि गीत या बाइट संरचना के तत्व को सौंपा गया मूल्य, जूनियर शब्द या बाइट को 32-बिट लंबे शब्द ढेर में भी लिया जाता है।

हालांकि डिफ़ॉल्ट डेटा निर्धारित करते समय 16-बिट शब्द प्रारूप का उपयोग किया जाता है, लेकिन इसमें एक शब्द पदनाम भी होता है। इस प्रीपिफोन का उपयोग करने के लिए सलाह दी जाती है जब इसे प्रोग्राम को अन्य मशीनों में स्थानांतरित करने के लिए माना जाता है, जहां डीएसएसपी भी लागू किया जाता है और डिफ़ॉल्ट अलग हो सकता है।

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

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

बाइट सीएनएसटी वाई # ए # बी # सी;

कार्यक्रम में संख्यात्मक स्थिरांक के प्रतीकात्मक पदनाम का उपयोग करना अक्सर सुविधाजनक होता है। यह सुविधा सुनिश्चित करने के लिए एक परिभाषित शब्द मूल्य है:

यह कमांड ऊपरी तत्व ढेर से iMayments है और नाम के लिए सीधे एक शब्द उत्पन्न करता है। इस शब्द का उपयोग एक संख्यात्मक निरंतर के उपयोग के बराबर है। उदाहरण के लिए:

भौतिक पते में स्मृति के साथ काम करें

माना जाता है कि उपकरण डेटा नामकरण करने और कंप्यूटर की पता प्रणाली के बावजूद डेटा में हेरफेर करने की क्षमता प्रदान करते हैं। लेकिन आधार भाषा में, इसके अलावा, आपको स्मृति तत्वों के पते में हेरफेर करने की अनुमति है। चर का पता या एक सरणी x का एक तत्व एक टीम के ढेर को भेजा जाता है

इस कमांड के सरणी तत्व के मामले में, इंडेक्स वैल्यू (इंडेक्स) की निगरानी की जाती है।

मूल भाषा कमांड @ स्टैक के शीर्ष में लंबे स्मृति शब्द के पते को प्रतिस्थापित करता है, जिसमें यह शब्द होता है। उदाहरण के लिए, परिवर्तनीय वाई का मान निम्न पंक्ति को निष्पादित करके स्टैक में रखा जा सकता है:

@B कमांड संबंधित बाइट के पते को प्रतिस्थापित करता है, जो स्टैक कशेरुक के वरिष्ठ बाइट्स को शून्य पर मानता है, और @ एल कमांड 32-बिट शब्द के पते को प्रतिस्थापित करता है।

स्मृति में मूल्यों को रिकॉर्ड करने के लिए आदेश भी हैं। कमांड! टी स्टैक के शीर्ष से जब्त पते पर लिखता है, 16-बिट मान प्रस्तुत किया जाता है। कमांड! टीबी युवा बाइट की एक समान प्रविष्टि कहता है यह बाइट के अधीन है, जो कशेरुक को संबोधित करता है, और टीएल 32-बिट शब्द रिकॉर्डिंग एक शब्द में एक शब्द में बंद है। उदाहरण के लिए, निम्न आदेशों में 15 पांचवें तत्व बाइट वेक्टर BV (0: 5) का मान असाइन करें:

15 5 "BV! Tb

भौतिक पते में स्मृति के साथ काम करने की आवश्यकता आमतौर पर तब होती है जब किसी विशेष कंप्यूटर के आर्किटेक्चर के आधार पर प्रोग्राम बनाते हैं, उदाहरण के लिए, I / O ड्राइवर बनाते समय।

डेटा और मेमोरी के साथ काम करने के लिए अतिरिक्त संचालन

स्वर्ग की भाषा में अधिक दक्षता और कॉम्पैक्ट प्रोग्राम प्राप्त करने के लिए, निम्नलिखित परिचालन पेश किए गए हैं:

0 <имя переменной> - चर रीसेट करें;

1 <имя переменной> - एक चर इकाई असाइन करें;

1- <имя переменной> - प्रति इकाई चर के मूल्य को कम करें;

1+ <имя переменной> - प्रति इकाई चर के मूल्य में वृद्धि;

!- <имя переменной> - वैरिएबल से स्टैक के शीर्ष का मूल्य;

!+ <имя переменной> - वैरिएबल में एक स्टैक वर्टेक्स मान जोड़ें।

इनमें से प्रत्येक संचालन को पढ़ने और लिखने और चर लिखने का उपयोग करके आसानी से प्रोग्राम किया जाता है। उदाहरण के लिए,

0 x 0 के बराबर है! एक्स।

1+ एक्स x 1+ के बराबर है! एक्स।

एक्स E2 के बराबर -! एक्स।

संचालन डेटा का उपयोग करने से कार्यक्रमों की दक्षता और दृश्यता में सुधार होता है।

व्यावहारिक रूप से, अक्सर सरणी के सभी तत्वों को किसी भी मूल्य को असाइन करना आवश्यक होता है। ऐसा करने के लिए, स्वर्ग की भाषा में एक ऑपरेशन है !!!<имя массива>। इसकी कार्रवाई निर्दिष्ट सरणी के सभी घटकों के लिए स्टैक कशेरुक के मूल्य के असाइनमेंट में निहित है। ऑपरेशन!!! किसी भी प्रारूप के तत्वों के साथ सरणी के लिए लागू।

उपयोग का उदाहरण:

कोड Lateers "स्पेस" बुफ बाइट सरणी के सभी घटकों में दर्ज किया गया है।

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

3 4 2 लांग आरे जेड

उन पर लागू इन आदेशों को निम्नलिखित परिणाम (संख्या दशमलव) देंगे:

आकार? X आकार? Y आकार? जेड

मंद? एक्स मंद? Y मंद? जेड

डीएसएसपी प्रोसेसर कमांड के एक सेट में ऐड-ऑन, चार कमांड शामिल हैं जो आपको कंप्यूटर मेमोरी कोशिकाओं के व्यक्तिगत बिट्स को पढ़ने और रिकॉर्ड करने की अनुमति देते हैं। ये @ बीबी टीम हैं,! बीआई 0,! BI1। उनमें से प्रत्येक के लिए पैरामीटर शब्द शब्द का पता और इस शब्द में बिट की संख्या (याद रखें कि बीआईटीएस को शून्य से शुरू होने वाले दाएं बाएं पर गिना जाता है)। कमांड! द्वि, इसके अलावा, ढेर में उपस्थिति और बिट के मूल्यों को दर्ज करने के लिए मानता है। @Bi कमांड निर्दिष्ट पैरामीटर को चयनित बिट (0 या 1), कमांड के मान के साथ प्रतिस्थापित करता है! BI0 और! BI1 मान को 0 और 1 पर असाइन करें, स्टैक से अपने पैरामीटर को हटा दें, और कमांड का मान असाइन किया गया है चयनित बिट के लिए तीसरे ढेर के युवा बिट और अपने तीन पैरामीटर को ढेर से हटा देता है। उदाहरण के लिए, यदि परिवर्तनीय एक्स का मान एक द्विआधारी संख्या 101101 है, तो सूचीबद्ध संचालन के परिणाम निम्नानुसार होंगे:

"एक्स [adr.x] 3 @bi - तीसरा बिट एक्स, 0" x 3! द्वि-एक्स 100101 है,

"X [addr.x] 0! BI0 - X 100100 है,

"एक्स [adr.x] 1! BI1 - X 100110 है।

स्वर्ग की भाषा में, स्मृति में स्थित बाइट्स के तारों के साथ काम करने के लिए भी साधन हैं। बाइट्स की स्ट्रिंग पर दो पैरामीटर रखे गए हैं: प्रारंभिक रेखा पता (यानी, इसके पहले बाइट का पता) और स्ट्रिंग की लंबाई (इसमें बाइट्स की संख्या)।

कमांड !!! एमबी का उपयोग एक (स्टैक में निर्दिष्ट) मूल्य की सभी पंक्तियों को असाइन करने के लिए किया जाता है। यह स्टैक से तीन पैरामीटर का उपभोग करता है: जहां बी मूल्य असाइन किया गया है, ए और एल प्रारंभिक पता और बाइट लाइन की लंबाई है। उदाहरण के लिए, उदाहरण के लिए, 3 से 10 वें बाइट txt massif (0:20) में तत्वों को रीसेट करने की आवश्यकता है। ऐसा करने के लिए, आप निम्न पंक्ति कर सकते हैं:

0 3 "txt 8 !!! एमबी

नतीजतन, तीसरे से शुरू होने वाली निर्दिष्ट सरणी के लगातार आठ तत्वों को 0. एक समान आदेश प्राप्त होगा !!! मेगावाट को 16-बिट शब्दों (संख्या (संख्या (संख्या) के एक ही मूल्य को भरने के लिए डिज़ाइन किया गया है शब्दों का) ढेर के शीर्ष में इंगित किया गया है! !! एम - लंबे शब्दों के अनुक्रम को भरने के लिए।

कमांड! एसबी लाइन भेजने का प्रदर्शन करता है। इसके पैरामीटर: जहां ए 1 और एल प्रारंभिक पते और आगे की लाइन की लंबाई होती है, ए 2 स्ट्रिंग का प्रारंभिक पता होता है जिस पर शिपमेंट किया जाता है। कमांड के निष्पादन के परिणामस्वरूप! पता ए 2 से स्मृति में एसबी लंबाई एल की एक बाइट स्ट्रिंग होगी, जो शिपमेंट के निष्पादन के लिए ए 1 पर स्थित स्ट्रिंग की एक सटीक प्रतिलिपि है। स्रोत पंक्ति और रिसीवर ओवरलैप कर सकते हैं। उदाहरण के लिए, उदाहरण के लिए, आपको बाइट सरणी एम (0:10) के तत्वों को निम्नानुसार स्थानांतरित करने की आवश्यकता है: एम (10): \u003d एम (9), एम (9): \u003d एम (8), ..., m (1): \u003d m (0)। ऐसा करने के लिए, आप टीम का उपयोग कर सकते हैं! एसबी:

0 "एम 10 सी 2 1+! एसबी

नतीजतन, स्मृति पते में वृद्धि के लिए प्रति बाइट्स प्रति बाइट्स की एक श्रृंखला होगी।

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

SRCHB कमांड स्ट्रिंग में एक निर्दिष्ट बाइट की खोज प्रदान करता है। पैरामीटर: जहां बी-बाइट, पहली प्रविष्टि जिसमें खोजना आवश्यक है, ए और एन शुरुआत के पते और उस पंक्ति की लंबाई के अनुसार निर्दिष्ट किया गया है जिसमें खोज आयोजित की जाती है। यदि n\u003e 0, तो खोज एक पते से पता चला है ए + एन -1 (पते के पते की दिशा में), यदि एन<0, то поиск ведется с адреса a до адреса a+n+1 (в сторону убывания адресов). В результате выполнения этой команды в стеке оказывается значение d, равное смещению относительно адреса a до первого вхождения байта b. Если такое вхождение не обнаружено, то d=n. Примеры:

#T "पाठ" SRCHB

# "पाठ" SRCHB

# "टेक्स्ट" [# ई, ए, 4] 1- + -4 [# ई, ए + 3, -4] SRCHB [-2]

डेटा के साथ काम करने के साधनों पर विचार करने के बाद, हम कंप्यूटर की बाहरी मेमोरी में डेटा के भंडारण से संबंधित प्रश्न पर ध्यान केंद्रित करेंगे, यानी। चुंबकीय डिस्क पर। स्वर्ग की भाषा में एक सेव कमांड है<имя файла>उपयोगकर्ता द्वारा परिभाषित वस्तुओं के साथ डिस्क पर मुख्य मेमोरी में सिस्टम की एक प्रति को सहेजने के लिए निर्धारित करना। साथ ही, स्मृति क्षेत्र, इन वीसीटीआर संचालन को आवंटित, एआर प्रदर्शित नहीं किया जाता है। नतीजतन, डिस्क से सहेजे गए सिस्टम को लोड करते समय, निर्दिष्ट डेटा के मान परिभाषित नहीं किए जाते हैं (उन्हें प्रोग्राम निष्पादन के चलाने में निर्धारित किया जाना चाहिए)। ज्यादातर मामलों में, यह उचित है, क्योंकि श्रमिकों, बफर इत्यादि के भंडारण के लिए डिस्क मेमोरी खर्च करने की आवश्यकता नहीं है। हालांकि, डेटा हैं, जिनमें से मान डिस्क से सिस्टम लोड करने के तुरंत बाद निर्धारित किया जाना चाहिए। उदाहरण के तौर पर, आप कुछ बाहरी डिवाइस के साथ डेटा विनिमय दर को संग्रहीत करने वाले एक चर को उद्धृत कर सकते हैं। जब आप किसी अन्य विनिमय दर पर जाते हैं, तो यह प्रोग्राम में कोई सुधार किए बिना इस चर के मूल्य को बदलने के लिए पर्याप्त होता है।

प्रोसेसर को निर्दिष्ट करके कि किसी निश्चित डेटा संरचना के तत्वों के मान सहेजें कमांड डिस्क पर प्रदर्शित किए जाने चाहिए, उदाहरण के लिए, संरचना परिभाषा से पहले रखे गए फिक्स प्रीफॉर्म परोसता है।

फिक्स वीएआर स्पीड 20 फिक्स बाइट वीसीटीआर टैबलेट

इसलिए परिभाषित डेटा संरचनाओं के साथ काम करना सामान्य तरीके से परिभाषित संरचनाओं के साथ काम करने से अलग नहीं है।

प्रोसेसर नियंत्रण आदेश

स्वर्ग की भाषा में, डीएसएसपी प्रोसेसर को नियंत्रित करने या डीएसएसपी प्रोसेसर के एमुलेटर को नियंत्रित करने के लिए लक्षित टीमों का एक छोटा समूह है।

पुनरारंभ कमांड प्रोसेसर का पुनरारंभा करता है। उसी समय, ढेर सफाई होती है, संदेश जारी किया जाता है।

डीएसएसपी संस्करण xx.hh.hh.hh.

मुफ्त XXXXXW।

और प्रोसेसर कमांड इनपुट स्टैंडबाय मोड में जाता है। डिबगिंग प्रोग्राम्स के दौरान यह आदेश उपयोगी है। यह भी किया जाता है जब गलत परिस्थितियां होती हैं: सरणी की सीमाओं से परे सूचकांक का बाहर निकलें, मुक्त स्मृति का थकावट इत्यादि।

\\ G कमांड एक अनिश्चित शब्द पर रोक लगाने के बाद कार्यक्रम के निष्पादन को जारी रखने के लिए कार्य करता है। यदि, प्रक्रिया को निष्पादित करते समय, प्रोसेसर एक अनिश्चित शब्द के संदर्भ को पूरा करता है, यह संदेश देता है:

बंद मत करो<слово> .

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

निष्पादन कमांड प्रक्रिया को करने के लिए प्रोसेसर को निर्देश देता है, जिसका पता ढेर के शीर्ष पर स्थित है। प्रक्रिया का पता प्राप्त करने के लिए, कमांड "" (दो एपोस्ट्रॉफ़) परोसा जाता है, इसके बाद प्रक्रिया के नाम पर। उदाहरण के लिए, आदेश के निष्पादन के परिणामस्वरूप

एबीएस प्रक्रिया का पता ढेर को भेजा जाएगा। ये आदेश आपको प्रक्रिया को किसी अन्य प्रक्रिया के पैरामीटर के रूप में स्थानांतरित करने की अनुमति देते हैं।

प्रोसेसर कंट्रोल कमांड ग्रुप में पहले से ही उल्लिखित ऑपरेशन सहेजें शामिल हैं<имя файла>डिस्क पर सिस्टम की एक प्रति को सहेजने के लिए निर्धारित करना, साथ ही कमांड जो इनपुट प्रोसेसर को सबमिट किए गए टेक्स्ट सूचना इनपुट के स्रोत को परिभाषित करते हैं। प्रारंभ में, यह स्रोत डिस्प्ले कीबोर्ड है।

टीम लोड।<имя файла> निर्दिष्ट नाम के साथ डिस्क फ़ाइल में इनपुट स्विच करता है। पीएफ कमांड - पाठ संपादक बफर से कमांड दर्ज करता है। टेक्सक कमांड प्रोसेसर इनपुट में एक टेक्स्ट स्ट्रिंग को प्रसारित करता है, जिनमें से पैरामीटर स्टैक में सेट होते हैं। निर्दिष्ट स्रोतों में निहित आदेशों को निष्पादित करके, प्रविष्टि स्वचालित रूप से डिस्प्ले कीबोर्ड पर स्विच करती है।

नियंत्रण शब्दकोश की टीम

प्रोसेसर द्वारा अनुमानित आदेशों का इनपुट प्रवाह, विशेष रूप से, प्रक्रियाओं और डेटा को निर्धारित करने के लिए आदेशों को शामिल करता है जो शरीर की प्रक्रिया के आंतरिक प्रतिनिधित्व और स्मृति आवंटन में एक संकलन बनाता है या निर्दिष्ट डेटा के तहत स्मृति आवंटन, साथ ही साथ संलग्नक संकलित प्रक्रिया या डेटा संरचना DSSP शब्दकोश में।

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

प्रक्रियाओं के निकायों में उपरोक्त से प्रोग्रामिंग करते समय, संदर्भ अभी तक विशिष्ट वस्तुओं को नहीं पाया जा सकता है। इस मामले में, शब्दकोश फॉर्म शब्दकोश इनपुट (हेडलाइंस) अनिश्चितता के संकेत द्वारा चिह्नित। सभी अनिश्चित नामों की डिस्प्ले स्क्रीन जारी करने के लिए, पूर्वेफ़ कमांड का उपयोग किया जाता है।

शब्दकोश में वृद्धि के दौरान, शब्दावली इनपुट के नामित सेट किए गए सब्लारोरोरेट्स बनाने का अवसर है। Sublalder आमतौर पर एक कार्य से संबंधित प्रक्रियाओं और डेटा संरचनाओं को जोड़ती है। उपखंडों और कार्यक्रम की अन्य वस्तुओं के नामों के बीच भ्रम से बचने के लिए, सब्लिप्लिपेंट का नाम $ litera से शुरू होना चाहिए। उन्हें बनाने या उपयोग करने के लिए subllovers तक पहुंच विशेष आदेशों द्वारा खोला और बंद किया जा सकता है, जिसमें निम्नलिखित शामिल हैं ($ V नाम के तहत, इसका मतलब किसी भी अनुमेय सब्लिपेंट का मतलब है)।

$ V बढ़ाना - Sublading $ V बढ़ाएं, जो कि निर्धारित नहीं है, सभी संकलित प्रक्रियाओं और डेटा के नाम $ v sublalding में बनाने के लिए;

उपयोग करने के लिए $ v - ओपन का उपयोग करें (नाम नामों में खोज के लिए) $ v sublalding;

बंद $ v - एक sublaring $ v का उपयोग करने की संभावना बंद करें;

केवल $ v - केवल $ v sublalding उपयोग के लिए उपलब्ध बनाओ;

रद्द करें - केवल रद्द करें।

एक कमांड भी है? $ अपनी स्थिति के सभी subwords के प्रदर्शन नामों पर मुद्रित - खोज के लिए खुले या बंद Sublalder। हमेशा sublalding, जिसका नाम शीर्ष द्वारा मुद्रित किया जाता है।

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

उदाहरण के लिए, ऑपरेशन? $ को बिल्लिपेंट्स के निम्नलिखित राज्य के रूप में मुद्रित किया गया था।

$ PRG ओपन

$ प्राइम ओपन

$ संपादित करें

$ प्राइम ओपन

सिस्टम बंद

इसका मतलब यह है कि इस समय $ पीआरजी सबब्लार्डिंग का निर्माण और उपयोग करने के लिए खुला है, $ प्राइम केवल उपयोग के लिए है, और $ संपादन और सिस्टम उपलब्ध नहीं हैं। ध्यान दें कि sublovery में एक ही नाम के साथ कई वर्ग शामिल हो सकते हैं।

शब्दावली इनलेट्स के संयोजन के एक शब्दकोश से हटाने की टीमें हैं और, उनके साथ आंतरिक वस्तुओं से जुड़ी हो सकती है। इस प्रकार, $ v कमांड को इन नामों द्वारा नामित वस्तुओं के साथ, $ V कमांड के अंतिम निष्पादन के बाद शब्दकोश (न केवल $ v sublalder में) सूचीबद्ध सभी नामों को हटा दिया गया है, साथ ही इन नामों द्वारा निर्दिष्ट वस्तुओं के साथ, और तैनाती के विस्तार को रद्द कर देता है $ v। प्रोग्राम $ v कमांड एक ही क्रिया उत्पन्न करता है क्योंकि $ v को $ V निष्पादित कमांड बढ़ाने के रूप में। किसी भी कार्यक्रम की शुरुआत में इस तरह के एक कमांड की उपस्थिति इस तथ्य की ओर ले जाती है कि जब कोई प्रोग्राम फिर से संकलित होता है, तो इसकी पुरानी प्रतिलिपि हटा दी जाएगी और सबब्लार्डर कार्यक्रम की नई प्रति की वस्तुओं को संग्रहीत करने के लिए होगा। उदाहरण के लिए, शब्दकोश में भूलने वाले $ प्राइम ऑपरेशन को करने के बाद, जिस राज्य को ऊपर दिखाया गया था, हम एक नया राज्य प्राप्त करते हैं:

$ संपादित करें

$ प्राइम ओपन

सिस्टम बंद

भूल गए कमांड को निष्पादित करने की प्रक्रिया में, हटाए गए अनुभागों के नाम जारी किए जाते हैं।

कृपया ध्यान दें कि सिस्टम sublloveor नाम $ -producer से शुरू नहीं होता है। यह अनुमत है, लेकिन इस तथ्य की ओर जाता है कि इस subllipriprates के लिए भूलने और rpogram आदेश का उपयोग किसी भी कार्य का कारण नहीं है (उनके लिए सिस्टम subllipant मौजूद नहीं है)।

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

::: x + y! + x;

$ परीक्षा में $ परीक्षा साफ़ करें, केवल एक्स और एक्स + नाम केवल शब्दावली इनपुट रहेगा (हालांकि आंतरिक प्रतिनिधित्व में वाई शब्द के अनुरूप चर रहेगा)।

I / O कमांड

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

प्रोग्रामिंग टर्मिनल के संचालन को इनपुट और आउटपुट कमांड, व्यक्तिगत लीटर और लीटर (स्ट्रिंग्स) के अनुक्रमों के साथ-साथ कुछ अतिरिक्त आदेशों द्वारा प्रदान किया जाता है।

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

टिन कमांड (टर्मिनल इनपुट नंबर - टर्मिनल से नंबर की प्रविष्टि) इनपुट लूप को ढेर में आरंभ करता है और कीबोर्ड से कॉल की गई संख्या को प्रदर्शित करता है। इनपुट संख्या संख्याओं का एक अनुक्रम होना चाहिए जो "माइनस" साइन, और अंत के साथ शुरू हो सकते हैं । सेट / आउटपुट मोड के आधार पर, संख्या को प्रोसेसर द्वारा 16-धन, दशमलव, ऑक्टल या बाइनरी माना जाता है। यदि 16-रिच नंबर अक्षर 0 द्वारा इंगित अंकों को शुरू करता है, तो इससे पहले नंबर 0 जोड़ा गया है। दर्ज संख्या का बाइनरी अतिरिक्त कोड में अनुवाद किया जाता है, जिसे 32-बिट लंबे समय के पूर्णांक मान के रूप में ढेर में भेजा जाता है शब्द, यानी 31 वरिष्ठ बिट्स की डिग्री में 2 के वजन के बाईं ओर स्थित बिट्स के कट ऑफ के साथ।

प्रत्येक टिन कमांड एक संख्या में प्रवेश करता है। यदि आपको एक पंक्ति में संख्याओं का अनुक्रम दर्ज करने की आवश्यकता है, तो उन्हें कुंजी दबाकर अलग करने की आवश्यकता है इसके अलावा, कार्यक्रम में प्रत्येक संख्या के प्रवेश पर टिन कमांड निष्पादित किया जाना चाहिए।

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

इसी प्रकार, टीओएस कमांड का उपयोग करके, प्रारंभिक पते के साथ एन बाइट-लीटर से अनुक्रम का अनुक्रम निर्धारित किया गया है।

प्रोग्राम तत्वों में सीधे शामिल टर्मिनल के लिए आउटपुट डिजाइन द्वारा प्रदान किया जाता है।

."<текст>"

उदाहरण के लिए, प्रोग्राम के एक निश्चित खंड के लिए, पाठ प्रदर्शन पर दिखाई देता है। विकल्प संख्या दर्ज करें, खंड में रिकॉर्ड होना चाहिए। "विकल्प संख्या दर्ज करें"।

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

टोब कमांड (टर्मिनल आउटपुट बाइट) एक लीटर प्रिंट करता है, जिसका कोड ढेर के शीर्ष के जूनियर बाइट द्वारा निर्धारित किया जाता है। ढेर की गहराई 1 से घट जाती है।

प्रदर्शन कर्सर को सीधे नियंत्रित करने वाले आदेश भी हैं:

सीआर - एक नई लाइन की शुरुआत में जाओ,

एसपी - स्पेस, यानी, एक स्थिति को दाईं ओर ले जा रहा है।

बेल कमांड एक छोटी बीप ("कॉल") कहता है।

कभी-कभी टर्मिनल का आदान-प्रदान करते समय, यह जांचना आवश्यक है कि कुंजी पहले ही दबा दी गई है या नहीं, प्रदर्शन ने पहले से ही पिछले आउटपुट कमांड का काम किया है। यह टीटीआई (टर्मिनल टेस्ट इनपुट) और टीटीओ (टर्मिनल टेस्ट आउटपुट) द्वारा किया जा सकता है, जो स्टैक साइन 1 में छोड़कर, निर्दिष्ट ईवेंट हुआ, और 0 अन्यथा।

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

"फंक्शन टेबल" एलपीएस

इंटरप्ट और अनन्य स्थितियों की प्रसंस्करण

प्रोग्रामिंग परिधीय होने पर, बाधाओं को संसाधित करने की आवश्यकता होती है। डीएसएसपी में, इस प्रसंस्करण को निम्नानुसार प्रोग्राम किया गया है। प्रसंस्करण इंटरप्ट के लिए इरादा कार्यक्रम एक पारंपरिक डीएसएसपी प्रक्रिया है, जिसमें से एक इंटा प्रीफिक्स है, उदाहरण के लिए, int: a! 1+ i; Predrafix Int रुकावट के दौरान प्रोसेसर की स्थिति का संरक्षण सुनिश्चित करता है और इसे इंटरप्ट प्रोसेसिंग के अंत में पुनर्स्थापित करता है।

एक विशिष्ट इंटरप्ट के साथ एक प्रसंस्करण प्रोग्राम को बांधने के लिए, लिंक कमांड परोसा जाता है:

<адрес вектора> संपर्क।<имя процедуры> इसी वेक्टर द्वारा जो प्रदर्शन करते हैं, बाधा को संसाधित करने की प्रक्रिया के लिए अपील दर्ज की जाती है। लिंक कमांड प्रोग्राम को निष्पादित करते समय संकलित और गतिशील कार्यक्रम के समय में एक बाधा प्रक्रिया के स्थिर बाध्यकारी दोनों का प्रयोग कर सकता है।

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

डीएसएसपी में, कमांड इंटरप्ट्स का उपयोग करके असाधारण स्थितियां तय की गई हैं। कमांड इंटरप्ट एक चुनौती के लिए एक नामित प्रतिक्रिया प्रक्रिया है और निम्नानुसार घोषित किया गया है:

जाल<имя вызова> <конечная реакция>

उदाहरण के लिए:

ट्रैप एस 1. "सिंगो एस 1।"

पहले मामले में, इंटरप्ट एस के लिए अंत प्रतिक्रिया एक्स प्रक्रिया है, दूसरे में जब इंटरप्ट एस 1 होता है, तो एक संदेश टर्मिनल को जारी किया जाएगा: एस 1 की स्थिति जारी की जाएगी।

कार्यक्रम, प्रदर्शन करते समय जो इंटरप्ट की घटना हो सकती है, इंटरसेप्ट कमांड का उपयोग करके इसकी प्रतिक्रिया स्थापित कर सकती है। डीएसएसपी दो प्रकार की अवरोध प्रदान करता है: चालू और ईओएन। इंटरसेप्शन कमांड का उपयोग केवल प्रक्रियाओं के भीतर किया जा सकता है और प्रारूप:

पर।<имя прерывания> <реакция>

ईन।<имя прерывания> <реакция> उदाहरण के लिए:

: एक ... एस पर। "इंटरप्ट एस" ...;

: ए 1 ... ईन एस 1 एबीसी ...;

ऑन और ईन ने विभिन्न प्रकार की प्रतिक्रियाएं निर्धारित की हैं। यदि ऑन कमांड द्वारा एक नई प्रतिक्रिया सेट की जाती है, तो जब कोई व्यवधान होता है, तो प्रतिक्रिया प्रक्रिया की जाती है, जिसके बाद बाधित कार्यक्रम काम जारी रखता है। यदि प्रतिक्रिया ईओन कमांड द्वारा निर्धारित की जाती है, तो पहले ऑपरेंड स्टैक ईओएन निष्पादन के समय गहराई से गहराई लेता है, फिर प्रतिक्रिया की जाती है, और इसके अंत में उस प्रक्रिया को तुरंत समाप्त कर देता है जिसमें ईओएन कमांड का तुरंत उपयोग किया गया था।

उदाहरणों पर विचार करें। एम प्रक्रिया टर्मिनल को कीबोर्ड से लीटरा में प्रवेश करती है और यह जांचती है कि यह है या नहीं। यदि दर्ज पत्र एक अंक नहीं है, तो एनडी रुकावट उत्साहित है। ट्रैप एनडी। "एक अंक नहीं।" : एम आरपी एम 1; : एम 1 टीआरबी [बी] सी # 0< C2 #9 > & 0 यदि + एनडी [बी] टोब;

एनडी इंटरप्ट का अंत प्रतिक्रिया संदेश है: अंक नहीं।

यदि एम को पी 1 प्रक्रिया से बुलाया जाता है, जो एनडी पीआर 1 मीटर पर इंटरप्ट एनडी: पी 1 पर अपनी प्रतिक्रिया स्थापित करता है; : पीआर 1 [बी] सीआर। "त्रुटि।" डी # 0 [# 0]; गैर-रूसी लीटरा में प्रवेश करते समय, एनडी बाधा प्रतिक्रिया कार्यक्रम पर पीआर 1 प्रकार द्वारा संसाधित की जाएगी, जो एक नई संदेश लाइन से जारी करने का कारण बनती है: त्रुटि। दर्ज पत्र को साहित्यिक 0 के साथ बदल दिया जाएगा, जिसके बाद एम काम करना जारी रखेगा।

यदि एम को पी 2 से बुलाया जाता है: पी 2 ईओएन एनडी पीआर 2 एम प्रक्रिया; : पीआर 2 सीआर। "त्रुटि। इनपुट का अंत।" ; फिर गैर-रूसी लीटरा में प्रवेश करते समय, एनडी बाधा को पीआर 2 प्रकार ईऑन के प्रतिक्रिया कार्यक्रम द्वारा संसाधित किया जाएगा, जो एक नई संदेश लाइन से जारी करने का कारण बनता है: त्रुटि। इनपुट का अंत।, जिसके बाद पी 2 काम पूरा करेगा। ऑपरेंड स्टैक खाली होगा।

यदि आवश्यक हो, तो प्रतिक्रिया कार्यक्रम में, आप फिर से पुनर्प्राप्त कर सकते हैं, इसे उच्च स्तर के कार्यक्रम पर इस तरह से वितरित कर सकते हैं। इस मामले में, प्रक्रिया को व्यापक प्रक्रिया या अंतिम प्रतिक्रिया में अवरोध कमांड में निर्दिष्ट कार्यक्रम या तो प्रक्रिया होगी। उदाहरण के लिए, यदि आप PR2 को निम्नानुसार संशोधित करते हैं :: PR2 Cr। "त्रुटि। इनपुट का अंत।" Nd; टर्मिनल को जारी संदेश इस तरह होगा: एक त्रुटि। इनपुट का अंत। अंक नहीं।

डीएसएसपी में कई अंतर्निहित कमांड इंटरप्ट हैं, जिसकी प्रतिक्रिया उपयोगकर्ता कार्यक्रमों में प्रदान की जा सकती है।

भाषा एक साइन सिस्टम है जो आपको मूल्य और अवधारणा के अर्थ से अपने पदनाम से स्थानांतरित करने की अनुमति देती है।

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

भाषा कार्य अलग हो सकते हैं - जानकारी स्थानांतरित करने के अलावा, यह भावनाओं और मूल्यांकन को व्यक्त करने में मदद करता है।

क्या पवित्रशास्त्र का अनुवाद करना संभव है?

चर्च की जीभ प्रार्थना, पूजा और शास्त्रों की भाषा है।

कुछ धर्मों में, पवित्र ग्रंथ शुरुआत में एक भाषा में मौजूद होते हैं और मूल रूप से अशिक्षित माना जाता है। तो, मुस्लिम कुरान शुरू में अरबी में तैयार किया जाता है। इसके अलावा, मुसलमानों का मानना \u200b\u200bहै कि यह पुस्तक समय की शुरुआत में बनाई गई थी।

केवल हिब्रू में पवित्र ग्रंथों का विचार, यहूदी शास्त्री झुकाव थे। ईसाई पवित्रशास्त्र मूल रूप से गलत था।

III शताब्दी ईसा पूर्व में तथाकथित "सत्तर अनुवाद" - सेप्टुआगिंटा - ग्रीक के पुराने नियम का अनुवाद किया गया था। इसके अलावा, कुछ शोधकर्ताओं का मानना \u200b\u200bहै कि यह सेतुगिंटा था जिसने आपातकालीन समय में पवित्र पवित्रशास्त्र की भूमिका निभाई थी।

यह septuagints का अस्तित्व है पवित्रशास्त्र के प्रमुख स्थानान्तरण के पक्ष में मुख्य तर्क बन गया। हालांकि, यहां तक \u200b\u200bकि मजबूत भी है। अब ऐसा माना जाता है कि मसीह के प्रेरितों ने अरम में बात की थी। लेकिन सुसमाचार के संकलक, संदेह नहीं, ग्रीक में इन वार्तालापों को पारित किया।

अब एक वैज्ञानिक दिशा है - भाषाई पुनर्निर्माण। उनके संकलक यह समझने की कोशिश कर रहे हैं कि मूल में ये संवाद कैसे सुना गया। लेकिन फिर भी यह वैज्ञानिक styras का विषय है।

वास्तव में स्वर्ग में सर्दी?

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

उदाहरण के लिए, "स्वर्ग एक दृश्य और ठंडा" वाक्यांश स्पष्ट रूप से दिखाता है कि पवित्रशास्त्र गर्म जलवायु वाले देशों में बनाया गया था, जहां "शीतलता" बल्कि सुखद है। रूसी में, ऐसे संगठन शायद ही कभी हुआ होगा। और "शांत" की भावना में क्रिया "शांत", "समय बिताने में अच्छा" रूसी में ग्रीक के माध्यम से हिब्रू के एक ट्रेस के रूप में गिर गया।

सभी स्लाव बाइबल को समझ गए?

पवित्रशास्त्र को हमारे पूर्वजों को रूसी में नहीं लाया गया था। किरिल और मेथोडियस - सोलुन यूनानी - सोलन स्लाव की बोली जाने वाली भाषा के आधार पर एक नई लिखित भाषा विकसित की।

दुनिया में, बहुत से देश उन भाषाओं का उपयोग करते हैं जिनके पास लेखन नहीं है। जबकि हम जीवन के बारे में बात कर रहे हैं, वहां कोई समस्या नहीं है। लेकिन, जैसे ही इस भाषा को धार्मिक पाठ या दार्शनिक ग्रंथों का अनुवाद करने की आवश्यकता होती है, भाषा में सुधार की आवश्यकता होती है, जिसे किरिल और मेथोडियस द्वारा बनाया गया था।

अगर हम मानते हैं कि स्लाव जनजाति कई हज़ार साल पहले आधुनिक स्लाव लोगों की तुलना में एक-दूसरे से सहमत होना आसान था, तो हम सही होंगे - भाषाएं करीब थीं। लेकिन इसका मतलब यह नहीं है कि किरिल और मेथोडियस द्वारा बनाई गई पवित्रशास्त्र का अनुवाद, Kievans और Novgorod द्वारा अधिक समझा गया था, - लिखित साहित्यिक भाषा अलग थी।

शायद यह रूसी स्थिति की एक विशेषता है, क्योंकि रूसी साहित्यिक भाषा मॉस्को गॉवर की तुलना में चर्च-स्लावंस्की के करीब है। वास्तव में, संपूर्ण चर्च स्लावोनिक भाषा रूसी को "उच्च शांत" के रूप में दर्ज करती है। उदाहरण के लिए, यहां तक \u200b\u200bकि आधुनिक समुदायों - रोने का प्रकार, चल रहा है - चर्च स्लावोनिक मॉडल पर ठीक से गठित किया जाता है - पुराने रूसी में "रोना", "दौड़ना" होगा।

कभी-कभी प्राचीन रूसी अनुरूपताएं और बिल्कुल बाहर गिर गई - "बोलोगोय" शीर्षक में "अच्छा" और "दुःख"; "शैल", जो केवल "हेलमेट" के विपरीत नामांकन में है।

बंद भाषाएं और ... समानांतर

प्राचीन रूस में डिगलो की एक स्थिति थी। यह "द्विभाषीवाद" नहीं है। Digliame एक समाज में दो भाषाओं के समानांतर है। उदाहरण के लिए, XIX में रूसी, और फ्रेंच का इस्तेमाल किया। फ्रांसीसी एक उच्च समाज की एक जीभ थी, लेकिन, सिद्धांत रूप में, किसी भी पाठ का अनुवाद किया जा सकता था।

Diglow में, भाषाएं उपयोग के क्षेत्र में छेड़छाड़ नहीं करती हैं। वे प्राचीन रूसी में बात करते थे, प्राचीन रूसी में घरेलू नोट लिख सकता था। लेकिन चर्च स्लावोनिक में प्रार्थना की।

XVIII शताब्दी में पीटर को ऐसी स्थिति मौजूद थी, धीरे-धीरे गिर गई। अब विज्ञान और साहित्य रूसी में विकसित हो सकते हैं, लेकिन केवल प्रार्थनाएं अभी भी चर्च-स्लाव पर मौजूद हैं। चर्च-स्लाव की घोषणा में अनुवाद करें - और यह एक मजाक या निन्दा की तरह दिखाई देगा।

पुजारी या शेफर्ड?

हम एक अद्वितीय युग में रहते हैं। ज़ारिस्ट रूस में, रूसी में बाइबल पढ़ी जा सकती है, प्राचीन रूस में - चर्च स्लावोनिक को सुनो। लेकिन ज्यादातर लोग अशिक्षित थे, या शास्त्रों को पढ़ने और समझने के लिए पर्याप्त नहीं थे।

सोवियत काल में, हर कोई सक्षम था, लेकिन पवित्रशास्त्र का कोई पाठ नहीं था।

साक्षरता अभी भी सहेजी गई है और ग्रंथ उपलब्ध हैं।

वास्तविक ग्रंथों के अलावा, हमें प्रार्थनाओं से पूजा करने के लिए कुछ और स्लाव ग्रंथों को मास्टर करने के लिए आमंत्रित किया जाता है। सच है, रूसी में मौजूदा अनुवाद धारणा के लिए कुछ हद तक मुश्किल है। XIX शताब्दी में, कोई अनुरूप नहीं है, अनुवादकों को अक्सर स्लाव के अनुवाद में स्थानांतरित कर दिया जाता है।

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

लेकिन बाइबल के स्लाव पाठ को समझने के लिए कुल मिलाकर अर्थ के अर्थ को रोकता है, न कि शब्द।

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

पवित्र ग्रंथों को अन्य भाषाओं में अनुवाद करते समय, समस्याएं उत्पन्न होती हैं (हालांकि लोगों, जिनकी भाषाओं में, पवित्रशास्त्र का अभी तक इसका अनुवाद नहीं किया गया है, यह शायद पृथ्वी की 5 प्रतिशत आबादी है)। यही वह काम है कि दास के लिए किरिल और मेथोडियस का प्रदर्शन किया गया था।

सिरिल और मेथोडियस पहले नहीं थे - इससे पहले कि इथियोपियाई, गोथिक में अनुवाद थे। किरिल और मेथोडियस स्टीफन परमोवस्की के बाद पवित्रशास्त्र को ज़्य्रायन की जीभ में स्थानांतरित कर दिया गया।

पवित्र और प्रसंस्करण अनुवाद

क्या इसे एक पवित्र पाठ माना जाता है? नहीं, लेकिन केवल इस हद तक कि वह चर्च समुदायों में अपनाया गया था। उदाहरण के लिए, एक synodal अनुवाद एक liturgical के रूप में निषिद्ध नहीं है, लेकिन स्वीकार नहीं किया जाता है। लेकिन इसका उपयोग इस तरह के एक प्रोटेस्टेंट के रूप में किया जाता है, उदाहरण के लिए, रूसी बैपटिस्ट।

प्रोटेस्टेंटवाद के आधुनिक प्रवाह भी हैं, जो मानते हैं कि बाइबिल पाठ सभी को उपलब्ध होना चाहिए। बाइबिल के भूखंडों पर कॉमिक्स सहित प्रकाशित।

नए नियम के पाठ के साथ कोई समस्या नहीं है - इसका स्रोत ग्रीक में जाना जाता है। लेकिन पुराने नियम के sanodal अनुवाद का आधार हिब्रू का पाठ था। ग्रीक अनुवाद से टुकड़े केवल तभी डाले गए थे जब विसंगतियां मौलिक थीं।

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

सवालों के जवाब

प्रकोपीर के बाद, अलेक्जेंडर से पूछा गया, Aleksandra से पूछा गया:

आदम ने किस भाषा में बात की?

- यह कहना कठिन है। एक तरफ, भाषा जीवित होने पर बदलती है। लेकिन कोई भी नहीं जानता कि यह भाषाओं की एक नई संपत्ति नहीं थी, जो बाबुलियन टावर के निर्माण के बाद दिखाई दी।

लेकिन, किसी भी मामले में, एडम की भाषा शायद हिब्रू समेत किसी भी मौजूदा भाषा के विपरीत थी।

रूसी के लिए पूजा के अनुवाद के बारे में विवाद है?

- इस विचार पर क्रांति से पहले चर्चा की गई थी, और आंशिक रूप से अद्यतन द्वारा समझौता किया गया था। वे सभी रूसी में सेवा नहीं करते थे, लेकिन विचार उनके द्वारा समर्थित था।

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

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

ऐसे कई अन्य अनुवाद हैं, और बारीकियों का इतना बड़ा होगा कि अनुवाद करने की तुलना में कुछ हद तक रसेल करना आसान है।

सहज रूप से यह प्रक्रिया लंबे समय से जा रही है। कभी-कभी घटनाएं होती हैं: उदाहरण के लिए, "शादी की रैंक" में, दोहरी संख्या कभी-कभी अप्रत्याशित रूप से कई लोगों द्वारा प्रतिस्थापित होती है, और आधुनिक स्वीकार्यों में असंगत रूप से उपयोग किया जाता है।

विभिन्न भाषाओं के गठन में भाग लेने के लिए कैसे दिव्य मत्स्य पालन?

- मानव इच्छा के अलावा भाषा मौजूद है। एक व्यक्ति एस्पेरांतो बना सकता है, लेकिन प्राकृतिक भाषाएं उनके कानूनों में मौजूद हैं।

सिरिल और मेथोडियस ने प्रेरणा पर चर्च स्लावोनिक में अनुवाद किया, लेकिन मॉडल के लिए भी, जो उस समय तक था।

प्रेरणा के मुताबिक, ग्रीक में सुसमाचार को रिकॉर्ड करने के लिए, प्रेरितों ने सुसमाचार का अनुवाद करने का विचार रखा।

तैयार डारिया mendeleev

फोटो दिमित्री कुज़मिन



यादृच्छिक लेख

यूपी