नोट्स का पास्कल संचालन. भाषा प्रोग्रामिंग पास्कल के विकास का इतिहास। ज़मीनी। मानक प्रकार

1970 में विघटन का बुव। निकलॉस वर्थ याक मूव, जो सख्त टाइपिंग और सहज ज्ञान युक्त वाक्यविन्यास सुनिश्चित करेगा। इनका नाम फ्रांसीसी गणितज्ञ, भौतिक विज्ञानी और दार्शनिक ब्लेज़ पास्कल के नाम पर रखा गया है।

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


ब्लेस पास्कल
1995 में लॉन्च किया गया टर्बो पास्कल मिडलवेयर की निरंतरता के रूप में, डेल्फ़ी प्रोग्रामिंग सिस्टम ऐड-ऑन के तेजी से निर्माण के लिए सबसे अच्छे मिडलवेयर में से एक बन गया है। डेल्फ़ी ने पास्कल भाषा में निम्न वस्तु-उन्मुख एक्सटेंशन पेश किए हैं; भाषा को अद्यतन किया गया और नाम बदलकर ऑब्जेक्ट पास्कल कर दिया गया। संस्करण डेल्फ़ी 7.0 से शुरू होकर, भाषा डेल्फ़ी ऑब्जेक्ट पास्कल को केवल डेल्फ़ी कहा जाने लगा, पुराने नाम का अक्सर दुरुपयोग किया जाता है। मिडलवेयर का शेष संस्करण डेल्फ़ी XE है।
डेल्फ़ी 7 पर्यावरण

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

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

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

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

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

वर्णमाला भाषा पास्कलकई अनुभाग शामिल हैं:

लैटिन अक्षर: ए ए बी बी…

अंक: 0 1 2..9

गणितीय संक्रियाओं के लक्षण: + - * /

गणितीय प्रतीक:<> =

प्रभाग चिह्न: . , : ;

विशेष वर्ण: ( )() $ ^

मेरे पास्कल द्वारा लिखित कार्यक्रम को निम्नलिखित अनुभागों में विभाजित किया जा सकता है।

शीर्षक

विभाजन को चिह्नित करें

स्थिरांक का अनुभाग

प्रकार अनुभाग

प्रतिष्ठितों का विभाजन

प्रक्रियाओं और कार्यों का अनुभाग

संचालक अनुभाग

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

वे चिन्ह ";" से अलग होते हैं
ऑपरेटर अनुभाग ऑपरेटर भुजाओं में स्थित है। ये आरक्षित शब्द शुरू होते हैं, ख़त्म होते हैं। ऑपरेटर अनुभाग एक बिंदु के साथ समाप्त होता है। ऑपरेटर की भुजाओं के बीच में रिकॉर्डिंग आमतौर पर तीन संकेतों के प्रवेश द्वार के साथ की जाती है।

1) ऑपरेटर की भुजाओं को बाएं किनारे पर समान उद्घाटन के साथ सीवे, और ऑपरेटरों को सम्मिलन स्तर के पीछे

ऑपरेटर1;

ऑपरेटर2;

ऑपरेटर3;

2) ऑपरेटरों को रिकॉर्ड करने, परिवर्तनों, प्रक्रियाओं, कार्यों और अन्य प्रोग्राम घटकों को निर्दिष्ट करने के लिए छोटे अक्षरों का उपयोग करें। यद्यपि पास्कल अनुवादक आपको बड़े और छोटे दोनों अक्षरों का उपयोग करने की अनुमति देता है, व्यवहार में शेष अक्षरों का ठहराव व्यापक है;

3) ऑपरेटरों और प्रोग्राम अंशों के लिए स्थानापन्न टिप्पणियाँ बनाएँ। इससे एक महत्वपूर्ण अवधि के बाद अन्य डेवलपर्स और स्वयं लेखक दोनों के लिए प्रोग्रामों के काम के सिद्धांतों की समझ आसान हो जाएगी।

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

§ आरक्षित शब्दों का दुरुपयोग नहीं किया जा सकता.

§ आप संख्याओं का उपयोग करके कोई व्यवसाय शुरू नहीं कर सकते.

§ यदि नाम चुना गया है, तो अंतर को ठीक नहीं किया जाता है।



लागू करें: कार्यक्रमएक; कार्यक्रमहाँ या ना; कार्यक्रम x5;

डेटा प्रकार क्षमा करें.

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

इसके विवरण में परिवर्तन का प्रकार दर्शाया गया है। पास्कल की बुनियादी अवधारणाओं में से एक असाइनमेंट संचालन में प्रकारों के कठोर उलटफेर में निहित है।

पास्कल भाषा में डेटा प्रकारों को पाँच मुख्य वर्गों में विभाजित किया गया है।

1. बस टिपि

2. संरचित प्रकार

3. संभावित प्रकार

4. प्रक्रियात्मक प्रकार

5. वस्तु प्रकार

सरल प्रकारों से पहले हैं: पूर्णांक प्रकार, वाक् प्रकार, तार्किक प्रकार, वर्ण प्रकार, अति-सावधानी प्रकार, अंतराल प्रकार।

इन प्रजातियों में भाषण प्रकार से भिन्न प्रकारों का एक उपसमूह होता है, जिसे क्रमसूचक प्रकार कहा जाता है।
ऑर्डर प्रकारों में कई विशेषताएं होती हैं.

1. किसी दिए गए क्रमसूचक प्रकार के सभी संभावित मान एक क्रमबद्ध गुणन हैं और प्रत्येक संभावित मान एक क्रमसूचक संख्या से जुड़ा होता है, जो एक पूर्णांक संख्या है।

2. किसी भी क्रमसूचक प्रकार का मान, आखिरकार, क्रमसूचक संख्या शून्य से शुरू होता है (अगला क्रमसूचक संख्या 1, 2, 3... है)।

3. किसी पूर्णांक प्रकार के मान की क्रमसूचक संख्या ही मान होती है।

4. किसी भी क्रमिक प्रकार के लिए, त्वचा का मूल्य, पहले के अलावा, पूर्ववर्ती होता है और त्वचा का मूल्य, शेष के अलावा, अगला होता है।

तब तक आप इसे किसी भी क्रम में पांच ऑपरेशन में कर सकते हैं.

मानक संचालन ऑर्डप्रविष्ट मान का क्रमांक बदल देता है। मन्दिरों में अर्थ दर्शाया गया है।

मानक संचालन महीनोनिर्दिष्ट मान पर स्थानांतरित किए गए मान को घुमाता है, यदि यह फ़ंक्शन इस प्रकार के पहले मान पर सेट है, तो रीसेट के बारे में एक अधिसूचना प्रदर्शित होती है।

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

मानक निम्न ऑपरेशन उसे निर्दिष्ट क्रमिक प्रकार की सीमा के न्यूनतम मान को घुमाता है।

मानक उच्च ऑपरेशन उसे निर्दिष्ट क्रमिक प्रकार की सीमा में उच्चतम मान को घुमाता है।

हमारे पास्कल में पाँच मूल्यवान, पूर्णांक प्रकार हैं (तालिका 6)। त्वचा के प्रकार का अर्थ है पूर्ण संख्याओं का उपगुणक।

तालिका 6 - पास्कल मूवी के पूर्णांक प्रकार

एक नियम के रूप में, सभी डेटा के लिए पूर्णांक प्रकार चुना जाता है।

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

बट:
1 - संपूर्ण प्रकार
1.0 - भाषण प्रकार
100 - दहाई प्रारूप (100)
#100 - हेक्साडेसिमल प्रारूप (256)

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

तार्किक प्रकार बूलियन प्रकार का होना चाहिए।
बूलियन प्रकार के मानों के दो मान हो सकते हैं: सत्य(1) वह असत्य(0). तार्किक प्रकार के ठहराव के लिए, केवल दो समायोजन संचालन हैं: और गैर-समायोजन। गंभीर प्रकार बूलियनएक बाइट पर कब्ज़ा करो.

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

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

बट:
प्रकार A=(2, 4, 1, 7);
बी=('सी', 'एल', '3', '|');

ओवररिएक्ट किए गए प्रकार के मानों को कीबोर्ड से दर्ज नहीं किया जा सकता है या स्क्रीन पर प्रदर्शित नहीं किया जा सकता है।

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

भाषण प्रकार में फ़्लोटिंग पॉइंट और अंकों की एक निश्चित संख्या के साथ प्रारूप में दर्शाए गए वास्तविक संख्याओं का एक उपसमूह शामिल होता है।

पास्कली के पांच प्रकार के भाषण प्रकार हैं (तालिका 7)।

तालिका 7 - पास्कल भाषण प्रकार

सिंगल, डबल, स्लाइडिंग परिशुद्धता और प्रकारों पर कार्रवाई

फोल्डिंग प्रकार सभी पास्कल कार्यान्वयन द्वारा समर्थित नहीं हो सकता है। इसलिए, यह महत्वपूर्ण है कि वास्तविक प्रकार सुलभ हो।

पास्कल प्रोग्राम निकलॉस विर्थ द्वारा बनाया गया था, और इसका नाम 17वीं शताब्दी के फ्रांसीसी दार्शनिक और गणितज्ञ के नाम पर रखा गया है। ब्लेस पास्कल। उस समय, वर्ट स्विट्जरलैंड में संघीय तकनीकी विश्वविद्यालय में कंप्यूटर विज्ञान के प्रोफेसर थे और उन्होंने एक ऐसी भाषा की मांग की जो छात्रों को प्रोग्रामिंग शुरू करने में मदद कर सके।

पास्कल की अवधारणा को 1970 के आसपास एन. विर्ट द्वारा विस्तारित किया गया था और पास्कल ने नए पाठों पर लिखे गए प्रोग्राम ग्रंथों के अनुप्रयोग और सटीकता में आसानी से व्यापक वृद्धि हासिल की। पास्कल के टुकड़े अन्य प्रोग्रामिंग के विकास के लिए आधार के रूप में कार्य करते हैं, जैसे कि एडा और मॉड्यूला -2, और टुकड़े पास्कल के समान संरचनाओं में समृद्ध हैं, पास्कल का ज्ञान अन्य प्रोग्रामिंग के विकास के लिए एक ठोस आधार है।

1970 के दशक में पास्कल के लिए एक अंतरराष्ट्रीय मानक विकसित करने का प्रयास किया गया था। 1982 के परिणामस्वरूप, ISO 7185 मानक सामने आया।

एंडर्स हेजलबर्ग के प्रयासों से, मोवा पास्कल को पेशेवर टर्बो रास्कल प्रोग्रामिंग सिस्टम में बदल दिया गया। संस्करण 1.0 के बाद, जो काफी समय से मौजूद था और व्यापक रूप से विस्तारित नहीं हुआ था, संस्करण 2.0 1984 के मध्य में सामने आया। विस्तार तीव्र गति से आगे बढ़ा है। 1985 के पतन तक, संस्करण 3.0 सामने आया, जिसे नई सुविधाओं के साथ संस्करण 2.0 से उन्नत किया गया: कंपाइलर और संपादक अधिक कुशल होने लगे, अतिरिक्त RUN कमांड का उपयोग करके प्रोग्राम में पैरामीटर स्थानांतरित करना संभव हो गया, जिससे यह संभव हो गया। MS-DOS प्रोग्राम से क्लिक करें, यह फ़ाइलों के साथ मैन्युअल रोबोट बन गया है। 1988 से, संस्करण 4.0 का विस्तार किया गया है।

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

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

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

डेल्फ़ी विकास टीम के काम से उत्पाद के तीसरे संस्करण में प्रोग्राम बनाने के लिए उपकरणों का एक विस्तारित सेट, WWW प्रोग्राम विकसित करने के लिए COM प्रौद्योगिकियों का उपयोग करने की क्षमता और अन्य मौजूदा प्रोग्रामिंग तकनीकों का खजाना सामने आया है।

डेल्फ़ी 4 पास्कल कंपाइलर्स के विकास में एक मील का पत्थर रहा है क्योंकि एंडर्स हेजल्सबर्ग ने 16 साल पहले पहला टर्बो पास्कल कंपाइलर बनाया था।

पास्कल) - ज़ागलनी महत्व की वैसोकोरिवनेवा भाषा प्रोग्रामिंग। सबसे प्रसिद्ध कार्यक्रमों में से एक औद्योगिक प्रोग्रामिंग में व्यापक रूप से पाया जाता है, जो स्कूल में शुरू हुआ, और कई अन्य कार्यक्रमों का आधार है। ALGOL-68 भाषा मानक के विकास के लिए समिति में उनकी भागीदारी के बाद 1968-69 में निकलॉस वर्ट की कृतियों की पुस्तकें (1970 में प्रकाशित)।

प्रागैतिहासिक काल

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

कार्यान्वयन

यूसीएसडी पास्कल

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

एप्पल से ऑब्जेक्ट पास्कल

बोरलैंड, माइक्रोसॉफ्ट पास्कल से टर्बो पास्कल और ऑब्जेक्ट पास्कल

पास्कल का सबसे प्रसिद्ध कार्यान्वयन, जिसने भाषा का व्यापक विस्तार सुनिश्चित किया, बोरलैंड से टर्बो पास्कल, जो फिर डॉस (संस्करण 5.5 से शुरू) और विंडोज़ और फिर डेल्फ़ी के लिए पास्कल ऑब्जेक्ट में विकसित हुआ, भाषा के कौन से महत्वपूर्ण विस्तार हुए हैं पेश किया?

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

मानक

1970 में पास्कल के काम की शुरुआत के बाद, ऐसे कार्यान्वयन सामने आए जो न केवल परिवर्धन में, बल्कि वाक्यविन्यास में भी भिन्न थे, और भाषा मानकीकरण की आवश्यकता नष्ट हो गई। फिल्म का मानक 1974 में कैथलीन जेन्सेन के साथ निकलॉस वर्ट द्वारा विकसित किया गया था। बाद में, अंतर्राष्ट्रीय मानक ISO और अमेरिकी मानक ANSI को अपनाया गया। फिलहाल, तीन मूलभूत रूप से अलग-अलग मानक हैं: अनएक्सटेंडेड पास्कल, एक्सटेंडेड पास्कल, ऑब्जेक्ट-ओरिएंटेड एक्सटेंशन्स टू पास्कल।

पास्कल भाषा मानक: सप्ताहांत, अंतर्राष्ट्रीय आईएसओ और अमेरिकी एएनएसआई
नामविकल्पकिम/डे रोज़्रोबलेनोसृजन की नदी
पास्कल मानकसिलएन. वर्ट, केटलिन जेन्सेन
पास्कल मानकसिलआईएसओ 7185:1983
एएनएसआई/आईईईई 770X3.97:1983
अनएक्सटेंडेड पास्कलसिलआईएसओ 7185:1990
विस्तारित पास्कलएक्सटेंशनएएनएसआई/आईईईई 770X3.160:19891989
आईएसओ/आईईसी 10206
वस्तु के उन्मुख
पास्कल के लिए एक्सटेंशन
ऑब्जेक्ट-ओरिएंटेड एक्सटेंशनएएनएसआई/एक्स3-टीआर-13:1994

एक्सटेंडेड पास्कल के ऑब्जेक्ट-ओरिएंटेड एक्सटेंशन की मुख्य अतिरिक्त विशेषताओं में से एक इसकी मॉड्यूलैरिटी और विशेषताएं हैं जो अलग संकलन की सुविधा प्रदान करती हैं।

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

इस निर्माण का सिंटेक्स

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

वर्तमान बोलियों (फ्री पास्कल) में, रिवर्सिंग ऑपरेटर और फ़ंक्शन जैसे ऑपरेशन उपलब्ध हैं।

हैलो वर्ल्ड

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

तो, पास्कल में सबसे सरल प्रोग्राम इस तरह दिखेगा: आरंभ.प्रोग्राम दैनिक संचालन को रद्द नहीं करता है और ऑपरेटरों का एक खाली ब्लॉक नहीं रखता है।

पंक्ति को प्रदर्शित करने के लिए बट प्रोग्राम हैलो, वर्ल्ड! प्रोग्राम हैलोवर्ल्ड(आउटपुट);शुरू

WriteLn('हैलो, विश्व!'); (पंक्ति संचालक)

अंत।

टिपी को श्रद्धांजलि

प्राचीनपास्कल के डेटा प्रकार: फ्लोटिंग कोमा (वास्तविक), पूर्णांक (पूर्णांक), प्रतीकात्मक (चार), तार्किक (बूलियन) और पुन: व्याख्या (एक नए प्रकार का निर्माता, पास्कल से परिचय) वाली संख्याएँ:

आर: असली; (ज़मिन्ना भाषण प्रकार) i: पूर्णांक; (Zmіnna संपूर्ण प्रकार) c: चार; (ज़मिन्ना-चरित्र) बी: बूलियन; (तार्किक परिवर्तन) ई: (सेब, नाशपाती, केला, संतरा, नींबू); (ज़मिन्ना टिपु-पेरेहरुवन्न्या)

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

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

एक्स: 1..10; y: "ए"। "जेड"; z:नाशपाती..नारंगी;

क्रमसूचक प्रकारों के लिए, ऑपरेशंस इंक, डीसी, सक्स, प्रीड, ऑर्ड, इक्वलाइजेशन ऑपरेशंस (=>< => <= <>), उनका उपयोग ऑपरेटरों के मामले में, (लूप ऑपरेटर के रूप में), सरणियों के बीच, बहुलता और श्रेणी प्रकार के तत्वों को निर्दिष्ट करने के लिए किया जा सकता है।

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

अपने समृद्ध एक्सटेंशन के अलावा, पास्कल एक विशेष डेटा प्रकार का समर्थन करता है अवैयक्तिक:वर

सेट1: 1..10 का सेट; सेट2: "ए" का सेट.."जेड"; सेट3: मोती का सेट..नारंगी;

रिच आधुनिक गणित में एक मौलिक अवधारणा है, जिसका उपयोग रिच एल्गोरिदम में किया जा सकता है।

पास्कल में, बहुलता के प्रकार की तुलना क्रमसूचक प्रकार के समान प्रकार के तत्वों से की जा सकती है। इस सुविधा की व्यापक रूप से प्रशंसा की जाती है और भाषा में समतुल्य निर्माण की मांग की जाती है, जो अवैयक्तिकता का समर्थन नहीं करती है। उदाहरण के लिए, अधिकांश पास्कल कंपाइलर: यदि मैं तब (अवैयक्तिक तत्व की पहचान की जाँच कर रहा हूँ)।ओब्रोबत्स्य श्विद्शे, निज़ यदि (i>4) और (i<11) then { проверка логическими условиями }...बहुलता का मान निर्धारित करने के लिए, बहुलता के तत्वों की एक सूची, वर्गाकार आर्च पर कोमा और प्लेसमेंट के साथ प्रबलित प्रदर्शित की जाती है (जैसा कि पहले ही ऊपर दिखाया गया है): var (आश्चर्यजनक परिवर्तनों का अनुभाग)

डी: चार का सेट;

प्रारंभ करें (ब्लॉक करने के लिए सिल)

डी:=["ए","बी"];

...पास्कल जेन्सेन और वर्ट में, पंक्तियों को प्रतीकों की एक पैक सरणी के रूप में दर्शाया गया था; अब से, स्थिर डॉज़िन की बदबू को रद्द कर दिया गया और अंतराल के साथ इस दिन तक पूरक किया गया।

आधुनिक पास्कल में, पंक्तियों के साथ काम करने के लिए, प्रकार स्ट्रिंग का उपयोग किया जाता है, जो संयोजन (+) और संरेखण (>) के संचालन का समर्थन करता है< = <> >= <=). Строки сравниваются в лексикографическом порядке . Например, строки считаются равными если они имеют одинаковую длину и коды всех символов с одинаковыми индексами совпадают.

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

नए प्रकारों की पहचान निम्न कारणों से की जा सकती है:

एक्स = पूर्णांक; वाई = एक्स;

...इसके अलावा, गोदामों का निर्माण निम्नलिखित प्रकारों से किया जा सकता है: प्रकार (प्रकार डिकॉउलिंग अनुभाग)

ए = पूर्णांक की सरणी; (नामित सरणी) बी = रिकॉर्ड (नामित रिकॉर्ड) एक्स: पूर्णांक; y:चार; अंत; सी = ए की फ़ाइल; (फ़ाइल को असाइनमेंट)

पास्कल में फ़ाइल प्रकारों को टाइप की गई, टेक्स्ट और बिना प्रकार की फ़ाइलों में विभाजित किया गया है।

जैसा कि उपरोक्त उदाहरण में दिखाया गया है, पास्कल में टाइप की गई फ़ाइलें समान तत्वों का एक क्रम हैं। त्वचा फ़ाइल के लिए बफ़र में एक परिवर्तन-सूचक होता है, जिसे f ^ द्वारा दर्शाया जाता है। प्रक्रियाएँ प्राप्त करें (पढ़ने के लिए) और डालें (लिखने के लिए) संकेतक को अगले तत्व पर ले जाएँ। पढ़ना उसी तरह कार्यान्वित किया जाता है जैसे read(f, x) और get(f); एक्स:=एफ^. जाहिर है, रिकॉर्डिंग इस तरह से कार्यान्वित की जाती है कि write(f, x) f^: = x के समान है; डाल(एफ). टेक्स्ट फ़ाइलों को चार प्रकार की फ़ाइल के विस्तार के रूप में निर्दिष्ट किया जाता है और, टाइप की गई फ़ाइलों पर मानक संचालन (पढ़ना, एक चरित्र को लिखना) के अलावा, कंसोल इनपुट-आउटपुट के समान, सभी डेटा प्रकारों की फ़ाइलों में प्रतीकात्मक इनपुट-आउटपुट की अनुमति देता है। .

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

Vkazivniki

पास्कल विभिन्न प्रकार के संकेतकों (टाइप किए गए और अनटाइप किए गए पॉइंटर) का समर्थन करता है: प्रकार

ए = ^बी; बी = रिकॉर्ड एक्स: पूर्णांक; y:चार; z: ए; अंत;

पॉइंटर_टू_बी:ए;

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

टाइप किए गए संकेतक के लिए, ऑपरेशन "रोसिनेम" असाइन किया गया है (सिंटैक्स: संकेतक^)।

एक नया रिकॉर्ड बनाने और फ़ील्ड ए और बी के लिए मान 10 और वर्ण ए निर्दिष्ट करने के लिए, निम्नलिखित ऑपरेटरों की आवश्यकता होती है: नया(पॉइंटर_टू_बी); (शोमैन की याद में विजन)

पॉइंटर_टू_बी^.x:= 10; (pointer_to_b^.y:= "A";pointer_to_b^.z:= nil;...dispose(pointer_to_b); (सूचक से स्मृति)रिकॉर्ड और ऑब्जेक्ट के फ़ील्ड को स्केल करने के उद्देश्य से, आप with ऑपरेटर का भी उपयोग कर सकते हैं, जैसा कि एप्लिकेशन में दिखाया गया है: नया(पॉइंटर_टू_बी);

पॉइंटर_टू_बी^ के साथ शुरू करें

एक्स: = 10; y:= "ए"; z:= शून्य

अंत;...निपटान(pointer_to_b);

प्रक्रियात्मक प्रकार

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

फ़ंक्शन func1:स्ट्रिंग;शुरू

Func1:='func N 1'

फ़ंक्शन func2:स्ट्रिंग;शुरू

Func2:='func N 2'

var fun:myfunc;begin

fun:=@func1;writeln(fun) (फ़ंक्शन func1 क्लिक किया गया है)

अंत।

संचालक केरुवन्न्या विकोनान्न्यम कार्यक्रम

पास्कल एक संरचित प्रोग्रामिंग भाषा है, जिसका अर्थ है कि प्रोग्राम में कई मानक कथन होते हैं जो क्रमिक रूप से जोड़े जाते हैं, आदर्श रूप से GOTO कमांड की आवश्यकता के बिना। जबकि एक<>बी करो (चक्र iz मन का परिवर्तन)

राइटलन("सिक्का बनाना");

यदि a > b तो (मानसिक संचालिका)

राइटलन("उमोवा विकोनाला")

अन्यथा (अन्यथा-अनुभाग - भिन्न हो सकता है)

राइटलन("उमोवा ने विकोनल नहीं किया");

i के लिए:= 1 से 10 करें (पुनरावृत्ति लूप)

राइटलन('पुनरावृत्ति संख्या', i:1);

दोहराएँ (अंगूठे के बाद से चक्र)

ए:=ए+1

केस I (मानसिक बहुलता ऑपरेटर)

0: लिखें('शून्य'); 1: लिखें('एक'); 2: लिखें("दो") अन्यथा लिखें("अज्ञात संख्या") (अन्यथा अनुभाग - दैनिक हो सकता है)

अंत;ऑपरेटर्स में while , for , if , केस के दायरे में आप ऑपरेटर का उपयोग कर सकते हैं अवरोध पैदा करना. ऐसा निर्माण, जो प्राथमिक संचालक या ब्लॉक हो, कहलाता है फोल्डिंग ऑपरेटर.

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

असाइन करें(inp, "text.txt"); ($I-) (IO चेकिंग मोड को सक्षम करना - इनपुट-आउटपुट निष्पादन के समय प्रोग्राम समापन कोड उत्पन्न करना) ((ऐसे मामलों के लिए जहां फ़ाइल नहीं मिली है)) रीसेट (inp); ($I+) (सक्षम IO चेकिंग मोड) यदि IOresult=0 तो शुरू करें (मानों को ioresult(बदलकर सत्यापित किया जाता है)<>0 परिचय-दर्शन के समय) ... बंद करें (आईएनपी); अंत में अन्यथा लिखें ("फ़ाइल नहीं मिली")

C/C++ प्रीप्रोसेसर निर्देशों ($ifdef, $define, $include) के समान निर्देश हैं जो संकलन प्रक्रिया के दौरान कंपाइलर द्वारा संकलित किए जाते हैं।

प्रक्रियाएं और कार्य

पास्कल में, उपप्रोग्राम को प्रक्रियाओं और कार्यों में विभाजित किया गया है:

वाक्यात्मक रूप से, प्रक्रियाएँ और कार्य किससे बने होते हैं? हैडर(जिसमें कीवर्ड प्रक्रिया या फ़ंक्शन शामिल है, नाम जिनका अनुसरण हथियारों में पासिंग पैरामीटर के विवरण के साथ किया जा सकता है, मान का प्रकार जो फ़ंक्शन के लिए दोहरे प्रतीक और उसके साथ बिंदु के माध्यम से घुमाया जाता है), शीर्षक के बाद है एक सुराग शरीरजिसके बाद एक प्रतीक रखा गया है; . प्रोग्राम मेरा(आउटपुट);

प्रक्रिया प्रिंट (var j: पूर्णांक);

फ़ंक्शन अगला (k: पूर्णांक): पूर्णांक; आगे शुरू करें: = k + 1 अंत;

राइटलन("उस्योगो: ", जे); जे:= अगला(जे)

मैं:= 1; मैं जबकि<= 10 do print(i)

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

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

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

फ़ंक्शन के रूप में प्रक्रियाओं का अर्थ है कि फ़ंक्शन मानों को घुमाते हैं, लेकिन प्रक्रियाएं ऐसा नहीं करतीं।

मॉड्यूल

मॉड्यूल के आगमन से पहले, ऐसा प्रतीत होता है कि पास्कल के कार्यान्वयन ने हेडर फ़ाइलों को शामिल करने के लिए एक तंत्र के माध्यम से मॉड्यूलरिटी पर जोर दिया, जो Movi C में #include तंत्र के समान है: एक विशेष निर्देश की मदद से जो आपके छद्म-टिप्पणी पर नज़र डालें, उदाहरण के लिए, ($INCLUDE "फ़ाइल"), इसके बजाय निर्दिष्ट फ़ाइल को सीधे आउटपुट, टेक्स्ट व्यू में प्रोग्राम के टेक्स्ट में शामिल किया गया था। इस प्रकार, संपादन में आसानी के लिए प्रोग्राम कोड को अलग-अलग टुकड़ों में विभाजित करना संभव था, और संकलन से पहले, वे स्वचालित रूप से एक प्रोग्राम फ़ाइल में संयुक्त हो जाते थे, जिसके परिणामस्वरूप, कंपाइलर द्वारा संकलित किया जाता था। मॉड्यूलरिटी का यह कार्यान्वयन आदिम है और इसमें कोई स्पष्ट कमियां नहीं हैं, इसलिए इसे तुरंत बदल दिया गया।

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

संरचना

पास्कल से जुड़ने वाले मॉड्यूल की मूल संरचना इस तरह दिखती है: इकाई UnitName1;इंटरफ़ेस

... ...

आरंभ करें (यदि आरंभीकरण कथन रखना आवश्यक हो तो इसे विकी के रूप में उपयोग किया जा सकता है)

...

अंत।एक अन्य संभावित विकल्प: इकाई UnitName2;इंटरफ़ेस

... ... ... ...

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

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

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

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

मॉड्यूल कीवर्ड END के साथ समाप्त होता है और उसके बाद एक अवधि होती है।

विकोरिस्तानन्या

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

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

ऑब्जेक्ट मॉड्यूल के इंटरफ़ेस अनुभागों में किसी भी शोर को उस प्रोग्राम में जांचा जा सकता है जहां मॉड्यूल जुड़ा हुआ है। कनेक्टेड मॉड्यूल से आयातित वस्तुओं के नाम उनके स्वयं के नाम से हटा दिए जाते हैं, और उन्हें किसी भी समय संशोधित किया जा सकता है। यदि दो या दो से अधिक कनेक्टेड मॉड्यूल में नई ऑब्जेक्ट हैं, और कंपाइलर उन्हें अलग नहीं कर सकता है, तो जब आप ऐसे ऑब्जेक्ट के विकर का प्रयास करते हैं, तो आपको एक संकलन त्रुटि दिखाई देगी - एक अस्पष्ट नाम। इस मामले में, प्रोग्रामर को नाम की योग्यता निर्धारित करनी होगी - प्रारूप में नाम निर्दिष्ट करें "<имя_модуля>.<имя_объекта>».

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

संकलन एवं व्यवस्था

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

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

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

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

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

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

टिम भी कम नहीं, पास्कल भाषा पर आधारित प्रोग्रामिंग सिस्टम विकसित करने वाले कई वाणिज्यिक और गैर-लाभकारी संगठनों द्वारा भाषा की प्रगति को बढ़ावा मिला।

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

भाषा के विकास और एक स्वतंत्र भाषा पास्कल के उद्भव में एक महत्वपूर्ण क्रोक जीएनयू पास्कल, जिसने खुद से अन्य पास्कल के चावल को हटा दिया, जिसने लोगों को प्रोग्रामिंग के "क्रूर" तरीकों से पूरी तरह से प्रेरित होने की अनुमति दी, विशेष रूप से शक्तिशाली तरीकों से, मान लीजिए, टर्बो पास्कल, और एक नए प्रोग्राम (20 से अधिक विभिन्न प्लेटफार्मों, 10 से अधिक विभिन्न ऑपरेटिंग सिस्टम के तहत) में लिखे गए कार्यक्रमों की अत्यंत व्यापक पोर्टेबिलिटी सुनिश्चित करना।

फिलहाल, फिल्म के ऐसे संस्करणों की लोकप्रियता का पता लगाया जा रहा है। टीएमटी पास्कल, मुफ़्त पास्कलі जीएनयू पास्कल. विकोरिस्ट और जारी है बोर्लैंड पास्कल. रोज़विटकोम फिल्म बोर्लैंड पास्कलє ऑब्जेक्ट पास्कल- मूवी के पास्कल संस्करण को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सुविधाओं के साथ विस्तारित किया गया है। शेष संस्करण बोर्लैंड पास्कलकोर प्रोग्रामिंग का आधार बनाएं डेल्फी.