फॉर्ट्रान, जिसका संक्षिप्त रूप "फॉर्मूला ट्रांसलेशन" है, एक उच्च-स्तरीय प्रोग्रामिंग भाषा है जो विशेष रूप से वैज्ञानिक और इंजीनियरिंग अनुप्रयोगों के लिए उपयुक्त है। यह इलेक्ट्रॉनिक कंप्यूटरों के लिए विकसित की गई पहली प्रोग्रामिंग भाषाओं में से एक थी और इसके निर्माण के बाद से काफी विकसित हुई है। फॉर्ट्रान डेटा के एरे को कुशलता से संभालने की अनुमति देता है और जटिल गणितीय गणनाओं का समर्थन करता है, जिससे यह संख्यात्मक मौसम पूर्वानुमान, गणनात्मक भौतिकी, और जैव सूचना विज्ञान जैसे क्षेत्रों के लिए पसंदीदा भाषा बन गई है।
फॉर्ट्रान का विकास 1950 के दशक में आईबीएम द्वारा एक ऐसी भाषा के रूप में किया गया था जो संख्यात्मक गणना और वैज्ञानिक कंप्यूटिंग के लिए डिज़ाइन की गई थी। इसका पहला संस्करण, फॉर्ट्रान I, 1957 में जारी किया गया। इसका मुख्य विचार एक ऐसी भाषा बनाना था जो वैज्ञानिकों और इंजीनियरों को बिना हार्डवेयर की जटिलताओं को जाने प्रोग्राम लिखने की अनुमति दे।
फॉर्ट्रान के बाद के संस्करण पेश किए गए, प्रत्येक ने नई सुविधाएँ जोड़ीं और उपयोगिता में सुधार किया। फॉर्ट्रान II जल्द ही आया, जिसने संरचित प्रोग्रामिंग सुविधाएँ जोड़ीं। 1966 में, फॉर्ट्रान IV पेश किया गया, जो एक उद्योग मानक बन गया। फॉर्ट्रान 77 (1978 में जारी) ने वर्ण डेटा प्रकार और बेहतर I/O क्षमताओं जैसी सुविधाएँ जोड़ीं।
1991 के बाद, फॉर्ट्रान 90 ने एरे प्रोग्रामिंग, मॉड्यूलर प्रोग्रामिंग, पुनरावृत्ति, और गतिशील मेमोरी आवंटन को पेश किया। फॉर्ट्रान 2003 और फॉर्ट्रान 2008 ने भाषा को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और C प्रोग्रामिंग भाषा के साथ बेहतर इंटरऑपरेबिलिटी जैसी सुविधाओं के साथ और भी बेहतर बनाया। सबसे हालिया मानक, फॉर्ट्रान 2018, ने समानांतर प्रसंस्करण के लिए बेहतर संगतता और कार्यक्षमता सहित और सुधार लाए।
फॉर्ट्रान कई वैज्ञानिक और इंजीनियरिंग क्षेत्रों में सक्रिय रूप से उपयोग किया जाता है, जिसे आधुनिक कंपाइलरों जैसे GNU फॉर्ट्रान (gfortran) और इंटेल फॉर्ट्रान कंपाइलर द्वारा समर्थित किया जाता है। इसका एक बड़ा विरासती कोडबेस है, और कई वैज्ञानिक पुस्तकालय फॉर्ट्रान में लिखे गए हैं, जिससे यह कुछ क्षेत्रों में एक महत्वपूर्ण भाषा बन गई है।
फॉर्ट्रान एक मजबूत प्रकार की भाषा है जो चर प्रकारों की स्पष्ट घोषणा की आवश्यकता होती है। उदाहरण के लिए:
INTEGER :: i
REAL :: x
CHARACTER(len=10) :: name
फॉर्ट्रान एरे को संभालने में उत्कृष्ट है, जो सरल सिंटैक्स के साथ पूरे एरे पर संचालन की अनुमति देता है।
REAL, DIMENSION(10) :: A
A = 2.0 * A ! एरे A के प्रत्येक तत्व को 2 से गुणा करता है
फॉर्ट्रान पारंपरिक नियंत्रण संरचनाएँ जैसे लूप और शर्तीय कथन प्रदान करता है।
DO i = 1, 10
IF (A(i) > 0) THEN
PRINT *, 'सकारात्मक'
END IF
END DO
फॉर्ट्रान मॉड्यूलर प्रोग्रामिंग के लिए फ़ंक्शन और उपप्रक्रियाओं की परिभाषा की अनुमति देता है।
FUNCTION square(x)
REAL :: square
REAL, INTENT(IN) :: x
square = x * x
END FUNCTION square
डिफ़ॉल्ट रूप से, फॉर्ट्रान में एक नियम है जहाँ "I", "J", "K", "L", "M", या "N" से शुरू होने वाले नाम वाले चर निहित INTEGER होते हैं। इसे स्पष्टता के लिए ओवरराइड किया जा सकता है।
IMPLICIT NONE ! निहित प्रकार को अक्षम करता है
INTEGER :: I
REAL :: R
फॉर्ट्रान शर्त के आधार पर पुनरावृत्त निष्पादन के लिए डू-व्हाइल लूप का समर्थन करता है।
i = 1
DO WHILE (i <= 10)
PRINT *, i
i = i + 1
END DO
फॉर्ट्रान में शक्तिशाली उपयोगकर्ता-परिभाषित प्रकार होते हैं जिन्हें व्युत्पन्न प्रकार कहा जाता है, जो संरचना जैसी डेटा परिभाषाओं की अनुमति देते हैं।
TYPE :: Person
CHARACTER(len=20) :: name
INTEGER :: age
END TYPE Person
TYPE(Person) :: p1
फॉर्ट्रान डेटा और प्रक्रियाओं को संलग्न करने के लिए मॉड्यूल का समर्थन करता है, जो कोड पुन: उपयोग और संगठन को बढ़ावा देता है।
MODULE myModule
CONTAINS
SUBROUTINE mySubroutine()
! कार्यान्वयन
END SUBROUTINE
END MODULE
फॉर्ट्रान पॉइंटर्स का समर्थन करता है जो गतिशील मेमोरी प्रबंधन को सुविधाजनक बनाते हैं, जो C जैसी भाषाओं के समान है।
REAL, POINTER :: pA
ALLOCATE(pA(10)) ! गतिशील रूप से एक एरे आवंटित करता है
फॉर्ट्रान में C के साथ इंटरऑपरेबिलिटी बनाने की सुविधाएँ हैं, जो मिश्रित-भाषा प्रोग्रामिंग की अनुमति देती हैं।
INTERFACE
FUNCTION c_function(x) BIND(C, NAME="c_function")
INTEGER(C_INT) :: c_function(INTEGER)
END FUNCTION c_function
END INTERFACE
सबसे लोकप्रिय फॉर्ट्रान कंपाइलरों में शामिल हैं:
हालांकि फॉर्ट्रान आधुनिक IDEs के साथ उतना सामान्य नहीं है जितना कि कुछ अन्य भाषाएँ, कई IDEs इसका समर्थन करते हैं:
फॉर्ट्रान परियोजना बनाने में आमतौर पर .f, .f90, या .f95 एक्सटेंशन के साथ स्रोत फ़ाइलें बनाना और उन्हें फॉर्ट्रान कंपाइलर का उपयोग करके संकलित करना शामिल होता है। एक सामान्य कमांड इस प्रकार हो सकता है:
gfortran -o my_program my_source.f90
फॉर्ट्रान का व्यापक रूप से वैज्ञानिक कंप्यूटिंग, संख्यात्मक मौसम पूर्वानुमान, जलवायु मॉडलिंग, गणनात्मक भौतिकी, गणनात्मक रसायन विज्ञान, और जैव सूचना विज्ञान में उपयोग किया जाता है। यह भारी संख्यात्मक गणनाओं और सिमुलेशन में अपने प्रदर्शन के लिए विशेष रूप से जाना जाता है।
फॉर्ट्रान के मुख्य प्रतिस्पर्धी वैज्ञानिक और इंजीनियरिंग प्रोग्रामिंग के क्षेत्र में शामिल हैं:
फॉर्ट्रान के पास कई स्रोत-से-स्रोत अनुवाद उपकरण हैं जो डेवलपर्स को विरासती कोड को अधिक समकालीन भाषाओं में परिवर्तित करने या मौजूदा कोड को अनुकूलित करने में मदद कर सकते हैं। कुछ उपकरणों में शामिल हैं:
ये उपकरण पुराने फॉर्ट्रान संस्करणों या पूरी तरह से अलग प्रोग्रामिंग पैराजाइम से संक्रमण को आसान बनाते हैं जबकि प्रदर्शन और कार्यक्षमता बनाए रखने में मदद करते हैं।