फोरट्रान का कौन सा संस्करण मुझे सीखना चाहिए?


18

मैं एक मैकेनिकल इंजीनियरिंग छात्र हूँ, जहाँ एयरोस्पेस इंजीनियरिंग के क्षेत्र में दिलचस्पी है, जहाँ मुझे बताया गया है, फोरट्रान अभी भी आमतौर पर उपयोग किया जाता है।

फोरट्रान के किस संस्करण को सीखने के लिए मुझे अपना समय निवेश करना चाहिए?


एक पूर्ण उत्तर के लायक नहीं है, लेकिन यह ध्यान देने योग्य है कि सबसे हालिया फोरट्रान सुविधाओं के लिए संकलक समर्थन की गंभीर कमी है। देखें fortranwiki.org/fortran/show/Fortran+2003+status और fortranwiki.org/fortran/show/Fortran+2008+status मैं 90/95 के साथ शुरू और आवश्यकतानुसार आगे अपने तरीके से काम होगा।
डग लिपिंस्की

विषय पर कुछ विचार लिखने के बाद, कृपया देखें stackoverflow.com/questions/953869/… stackoverflow.com/questions/3549702/… यदि यह किसी काम का हो सकता है। उपरोक्त के अलावा, मैं F90 की सिफारिश करूंगा, तब सीखने की विशेषताओं के रूप में आपको उनकी आवश्यकता होगी।
रुके

1
ध्यान दें कि मैटलैब की उत्पत्ति फोरट्रान से हुई है। आपकी टिप्पणियों के आधार पर मैं आपको इस विकल्प का मूल्यांकन करने की सलाह दूंगा।
डेनिस जहरुद्दीन

2
क्या आपको फोरट्रान फुल स्टॉप भी सीखना चाहिए ? यह आपके द्वारा उपयोग की जाने वाली विरासत कोड की मात्रा द्वारा निर्धारित किया जा सकता है - जो आपको सीखना चाहिए फोरट्रान के संस्करण को भी निर्देशित करेगा।
डेमियन

जवाबों:


27

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

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

व्यावहारिक रूप से, यदि आप विरासत कोड पर काम करने जा रहे हैं (F77 या पहले कहें), तो कुछ बिंदु पर आपको F90 + सुविधाओं की कमी के कारण कुछ चीजें सीखनी होंगी। उदाहरण के लिए, यदि आप किसी चीज़ के लिए फोरट्रान कोड लिख रहे हैं, तो आपको कभी भी उस चीज़ का उपयोग नहीं करना चाहिए जिसे "COMMON ब्लॉक" कहा जाता है, लेकिन आप हमेशा उन्हें F77 कोड में आते देखेंगे जो आपको उपयोग करना पड़ सकता है।

मैं कभी भी किसी को फोरट्रान में बहुत कम F90 / 95 फीचर सेट के बिना काम शुरू करने की सलाह नहीं दूंगा।

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


2
+1 "मैं कभी भी किसी को फोरट्रान में बहुत कम F90 / 95 फीचर सेट के बिना काम शुरू करने की सलाह नहीं दूंगा।" । मुझे भी वह पता हैं। F90 से शुरू करें, सभी बुनियादी विशेषताओं को जानें, कुछ कार्यक्रमों का अभ्यास करें, फिर हाल की रिलीज के लिए आगे
बढ़ें

यदि फोरट्रान नहीं है तो कौन सी भाषा सीखने लायक है और इंजीनियरिंग में उपयोग करना व्यावहारिक होगा? मतलबी कैसे? मुझे इसकी ज़रूरत है कि मैं अगले सेमेस्टर में हूँ।
user26358

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

@ ऑरलीस, मैं आपके अंतिम पैराग्राफ से सहमत हूं। मेरा मानना ​​है कि वैज्ञानिक प्रोग्रामिंग सीखने का सही तरीका इसके विपरीत है जो मैंने अनुभव किया है: अजगर-> सी ++ और मामले में आपको फोरट्रान की आवश्यकता है।
निकोला कैवलिनी

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

1

मैं आप दोनों से असहमत हूं। C ++ और Python अभी भी FORTRAN के रूप में अनुकूलित नहीं हैं। मैं निश्चित रूप से सहमत हूं कि फोरट्रान 90/95 न्यूनतम है। हालांकि, अन्य आधुनिक संस्करणों का उपयोग करना हमेशा उपयोगी होता है। फोरट्रान के साथ चुनौती यह है कि यदि आप ऑब्जेक्ट ओरिएंटेड भाषा सीखने से पहले इसे सीखते हैं, तो समझना आसान है। यदि आप वस्तुओं के साथ सोचने के अभ्यस्त हैं, तो सीखना बहुत कठिन है। मैं यहां सुपरकंप्यूटिंग क्लास पढ़ाता हूं और मैं अपने छात्रों को फोरट्रान का इस्तेमाल करने के लिए मजबूर करता हूं। यह उन्हें प्रोग्रामिंग में एक अलग प्रकार के तर्क का उपयोग करने के लिए मजबूर करता है। उन्हें यह पसंद नहीं है क्योंकि यह पायथन या सी ++ की तरह "नहीं" लगता है। यह सब वास्तव में नीचे आता है कि आप क्या करने का इरादा रखते हैं और कितना लंबन और प्रदर्शन मायने रखते हैं।


SciComp.SE में आपका स्वागत है। यह साइट के लिए एक प्रश्न की तुलना में एक राय के रूप में अधिक दिखता है। यदि आप समझते हैं कि फोरट्रान "[...] उन्हें प्रोग्रामिंग में एक अलग प्रकार के तर्क का उपयोग करने के लिए मजबूर करता है" तो आपको तर्क को विस्तृत करना चाहिए, और हमें बताएं कि यह क्यों है। और यह भी, कि यह "किस प्रकार का तर्क" है जिसका आप उल्लेख करते हैं।
nicoguaro

2
@tmwitten: क्या इस उत्तर को टिप्पणी माना जाना चाहिए? यह शायद एक टिप्पणी के रूप में बहुत लंबा है, और संदर्भ से बाहर, एक गैर सीक्वेटुर की तरह दिखता है (उदाहरण के लिए, सी ++ और पायथन का उल्लेख प्रश्न में नहीं किया गया है, "आप दोनों" निकोला और ऑरेलियस को संदर्भित करते हैं)।
ज्योफ ऑक्सीबेरी जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.