बेचारा फोरट्रान, एक शब्द कहो

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

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

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


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

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

फोरट्रान इतना अद्भुत क्यों है?


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

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

खैर, रचनाकारों की सादगी सफल रही। क्लासिक पहला कार्यक्रम इस प्रकार है:

program hw write(*,*) 'Hello, World!' end 

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

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

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

 program chisla implicit none ! Variables integer n,i,s ! Body of chisla s=0 write (*,*) ' n' read (*,*) n if (n.le.0) then write (*,*) '  ' else do i=1,n s=s+i end do write (*,*) '=', s end if end 

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

सॉफ्टवेयर पर्यावरण के बारे में क्या?


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

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

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



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

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

आधुनिक दुनिया में फोरट्रान का स्थान



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

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

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

एक आफ्टरवर्ड के बजाय


और अब मैं शिक्षण प्रोग्रामिंग के मूल रूप से चर्चित विषय पर लौटना चाहता हूं, और इसे पहली भाषा के रूप में चुनते समय औपचारिक रूप से फोरट्रान के मुख्य लाभों को तैयार करने की कोशिश करता हूं।


तो फोरट्रान क्यों नहीं?

Source: https://habr.com/ru/post/In202680/


All Articles