فورتران
| نموذج | متعدد النماذج : منظم ، إلزامي ( إجرائي ، موجه للكائنات )، عام ، مصفوفة |
|---|---|
| صمم بواسطة | جون باكوس |
| المطور | جون باكوس و آي بي إم |
| ظهرت لأول مرة | 1957 |
| إصدار مستقر | فورتران 2023 (ISO/IEC 1539:2023) / 17 نوفمبر 2023 |
| الانضباط في الطباعة | قوي ، ثابت ، واضح |
| ملحقات اسم الملف | .f90, .f,.for |
| موقع إلكتروني | موقع fortran-lang.org |
| التنفيذات الرئيسية | |
| Absoft ، Cray ، GFortran ، G95 ، IBM XL Fortran، Intel ، Hitachi ، Lahey/Fujitsu، Numerical Algorithms Group ، Open Watcom ، PathScale ، PGI ، Silverfrost ، Oracle Solaris Studio ، وغيرها | |
| متأثر بـ | |
| الترميز السريع | |
| متأثر | |
| ALGOL 58 ، BASIC ، C ، Chapel ، [1] CMS-2 ، DOPE ، Fortress ، MATLAB ، PL/I ، PACT I ، MUMPS ، IDL ، Ratfor ، SAKO [2] | |
فورتران ( / ˈfɔːrtræn / ؛ كانت تُعرف سابقًا باسم فورتران ) هي لغة برمجة مجمّعة وآلية من الجيل الثالث مناسبة بشكل خاص للحوسبة الرقمية والحوسبة العلمية .
تم تطوير لغة فورتران في الأصل بواسطة شركة آي بي إم . [3] وتم تجميعها بشكل صحيح لأول مرة في عام 1958. [4] تمت كتابة برامج كمبيوتر فورتران لدعم التطبيقات العلمية والهندسية، مثل التنبؤ العددي بالطقس ، وتحليل العناصر المحدودة ، وديناميكيات السوائل الحسابية ، وفيزياء البلازما ، والجيوفيزياء ، والفيزياء الحسابية ، وعلم البلورات والكيمياء الحسابية . إنها لغة شائعة للحوسبة عالية الأداء [5] وتُستخدم في البرامج التي تقارن وتصنف أسرع أجهزة الكمبيوتر العملاقة في العالم . [6] [7]

تطورت لغة فورتران من خلال العديد من الإصدارات واللهجات. في عام 1966، طور المعهد الوطني الأمريكي للمعايير (ANSI) معيارًا للغة فورتران للحد من انتشار المترجمين الذين يستخدمون قواعد نحوية مختلفة قليلاً. [8] أضافت الإصدارات المتعاقبة دعمًا لنوع بيانات الأحرف (فورتران 77)، والبرمجة المنظمة ، وبرمجة المصفوفة ، والبرمجة المعيارية ، والبرمجة العامة (فورتران 90)، والحوسبة المتوازية ( فورتران 95 )، والبرمجة الموجهة للكائنات (فورتران 2003)، والبرمجة المتزامنة (فورتران 2008).

منذ أبريل 2024، تم تصنيف لغة فورتران ضمن أفضل عشر لغات في مؤشر TIOBE ، وهو مقياس لشعبية لغات البرمجة. [9]
تسمية
يصف الدليل الأول للغة فورتران بأنها نظام ترجمة الصيغ ، وطبع الاسم بأحرف صغيرة ، فورتران . [10] : ص 2 [11] تشير مصادر أخرى إلى أن الاسم يرمز إلى مترجم الصيغ ، [12] أو ترجمة الصيغ . [13]
لم تدعم أجهزة كمبيوتر IBM المبكرة الأحرف الصغيرة ، وكانت أسماء إصدارات اللغة حتى FORTRAN 77 تُكتب عادةً بأحرف كبيرة . [ 14] كانت FORTRAN 77 هي الإصدار الأخير الذي تضمنت فيه مجموعة أحرف Fortran أحرفًا كبيرة فقط. [15]
أشارت معايير اللغة الرسمية لفورتران إلى اللغة باسم "فورتران" مع الحدود الأولية منذ فورتران 90. [ بحاجة لمصدر ]
الأصول

في أواخر عام 1953، قدم جون دبليو باكوس اقتراحًا إلى رؤسائه في شركة آي بي إم لتطوير بديل أكثر عملية للغة التجميع لبرمجة حاسوبهم المركزي آي بي إم 704. [11] :69 تألف فريق باكوس التاريخي للغة فورتران من المبرمجين ريتشارد جولدبرج، وشيلدون إف. بيست، وهارلان هيريك، وبيتر شيريدان، وروي نوت ، وروبرت نيلسون، وإيرفينج زيلر، وهارولد ستيرن، ولويس هايبت ، وديفيد ساير . [16] وتضمنت مفاهيمه إدخال المعادلات بشكل أسهل في الحاسوب، وهي الفكرة التي طورها جيه هالكومب لانينج وتم توضيحها في نظام لانينج وزيرلر عام 1952. [17]

تم الانتهاء من مسودة المواصفات الخاصة بنظام ترجمة الصيغ الرياضية من IBM بحلول نوفمبر 1954. [11] : 71 ظهر أول دليل للغة FORTRAN في أكتوبر 1956، [10] [11] : 72 مع تسليم أول مُجمِّع للغة FORTRAN في أبريل 1957. [11] : 75 أنتجت لغة Fortran كودًا فعالًا بما يكفي لمبرمجي لغة التجميع لقبول استبدال لغة البرمجة عالية المستوى . [18]
قال جون باكوس خلال مقابلة أجريت معه عام 1979 مع مجلة Think ، وهي مجلة موظفي شركة IBM، "لقد جاء الكثير من عملي من الكسل. لم أكن أحب كتابة البرامج، لذلك، عندما كنت أعمل على جهاز IBM 701 ، وأكتب برامج لحساب مسارات الصواريخ، بدأت العمل على نظام برمجة لتسهيل كتابة البرامج." [19]
تم اعتماد اللغة على نطاق واسع من قبل العلماء لكتابة برامج مكثفة رقميًا، مما شجع كتاب المترجمين على إنتاج مترجمين يمكنهم إنشاء أكواد أسرع وأكثر كفاءة. أدى تضمين نوع بيانات الأعداد المعقدة في اللغة إلى جعل فورتران مناسبة بشكل خاص للتطبيقات التقنية مثل الهندسة الكهربائية. [20]
بحلول عام 1960، أصبحت إصدارات لغة FORTRAN متاحة لأجهزة الكمبيوتر IBM 709 و 650 و 1620 و 7090 . ومن الجدير بالذكر أن الشعبية المتزايدة للغة FORTRAN حفزت الشركات المصنعة لأجهزة الكمبيوتر المنافسة على توفير مترجمات FORTRAN لأجهزتها، بحيث أصبح هناك بحلول عام 1963 أكثر من 40 مترجمًا للغة FORTRAN.
تم توفير لغة فورتران لجهاز كمبيوتر IBM 1401 من خلال مُجمِّع مبتكر مكون من 63 مرحلة يعمل بالكامل في ذاكرته الأساسية التي تحتوي على 8000 حرف فقط (ستة بتات). يمكن تشغيل المُجمِّع من شريط، أو من مجموعة بطاقات تحتوي على 2200 بطاقة؛ ولم يستخدم أي شريط أو تخزين قرصي إضافي. احتفظ بالبرنامج في الذاكرة وحمل تراكبات حولته تدريجيًا، في مكانه، إلى شكل قابل للتنفيذ، كما وصفه هاينز. [21] أعيد طباعة هذه المقالة وتحريرها في كلا الإصدارين من Anatomy of a Compiler [22] وفي دليل IBM "مواصفات فورتران وإجراءات التشغيل، IBM 1401". [23] لم يكن الشكل القابل للتنفيذ لغة آلة بالكامل ؛ بل تم تفسير العمليات الحسابية ذات الفاصلة العائمة، والبرمجة الفرعية، والإدخال/الإخراج، ومراجع الوظائف، قبل كود UCSD Pascal P بعقدين من الزمان. كانت لغة GOTRAN ، وهي نسخة مبسطة ومفسرة من لغة FORTRAN I (تحتوي على 12 جملة فقط وليس 32) لعملية "التحميل والبدء" متاحة (على الأقل بالنسبة لجهاز الكمبيوتر IBM 1620 المبكر ). [24] لغة Fortran الحديثة، وجميع الإصدارات اللاحقة تقريبًا، مُجمَّعة بالكامل، كما هو الحال بالنسبة للغات الأداء العالي الأخرى.
كان تطوير لغة فورتران متوازيًا مع التطور المبكر لتكنولوجيا المترجم ، وكان العديد من التطورات في نظرية وتصميم المترجمات مدفوعة بشكل خاص بالحاجة إلى إنشاء كود فعال لبرامج فورتران.
فورتران
احتوى الإصدار الأولي من FORTRAN لجهاز IBM 704 [10] على 32 بيانًا ، بما في ذلك:
DIMENSIONوEQUIVALENCEالتصريحات- بيانات التعيين
- عبارة حسابية
IFثلاثية الاتجاهات ، والتي تمرر التحكم إلى أحد المواقع الثلاثة في البرنامج اعتمادًا على ما إذا كانت نتيجة التعبير الحسابي سلبية أو صفرية أو موجبة - عبارات التحكم للتحقق من الاستثناءات (
IF ACCUMULATOR OVERFLOW،،IF QUOTIENT OVERFLOWوIF DIVIDE CHECK)؛ وعبارات التحكم للتعامل مع مفاتيح الاستشعار وأضواء الاستشعار (IF (SENSE SWITCH)،،IF (SENSE LIGHT)وSENSE LIGHT) GO TO، تم حسابهاGO TO،ASSIGN، وتم تخصيصهاGO TODOحلقات- تنسيق الإدخال/الإخراج:
FORMAT،READ،READ INPUT TAPE، ،WRITE OUTPUT TAPE،PRINTوPUNCH - إدخال/إخراج غير منسق:
READ TAPE،READ DRUM،WRITE TAPE، وWRITE DRUM - إدخال/إخراج آخر:
END FILE،REWIND، وBACKSPACE PAUSE،STOP، وCONTINUEFREQUENCYعبارة (لتوفير تلميحات التحسين للمترجم).
كانت العبارة الحسابية IFتذكرنا بتعليمات المقارنة ثلاثية الاتجاهات (CAS—Compare Accumulator with Storage) المتوفرة على 704 (ولكن لم يكن من السهل تنفيذها). كانت العبارة توفر الطريقة الوحيدة لمقارنة الأرقام—عن طريق اختبار الاختلاف بينها، مع وجود خطر حدوث فيضان. وقد تم التغلب على هذا النقص لاحقًا من خلال التسهيلات "المنطقية" المقدمة في FORTRAN IV.
تم استخدام العبارة FREQUENCYفي الأصل (واختياريًا) لإعطاء احتمالات التفرع لحالات التفرع الثلاثة للعبارة الحسابية IF. يمكن أيضًا استخدامها للإشارة إلى عدد التكرارات التي DOقد يتم تشغيلها في حلقة. استخدم أول مُجمِّع FORTRAN هذا الترجيح لإجراء محاكاة مونت كارلو للكود الناتج في وقت التجميع ، والتي تم استخدام نتائجها لتحسين وضع الكتل الأساسية في الذاكرة - وهو تحسين متطور للغاية في ذلك الوقت. تم توثيق تقنية مونت كارلو في ورقة Backus et al. حول هذا التنفيذ الأصلي، نظام الترميز التلقائي FORTRAN :
الوحدة الأساسية للبرنامج هي الكتلة الأساسية ؛ الكتلة الأساسية هي جزء من البرنامج يحتوي على نقطة دخول واحدة ونقطة خروج واحدة. الغرض من القسم 4 هو إعداد جدول للكتل السابقة (جدول PRED) للقسم 5 والذي يعدد الكتل الأساسية ويسرد لكل كتلة أساسية كل كتلة أساسية يمكن أن تكون سلفها المباشر في التدفق، جنبًا إلى جنب مع التردد المطلق لكل رابط كتلة أساسية. يتم الحصول على هذا الجدول بتشغيل البرنامج مرة واحدة بطريقة مونت كارلو، حيث يتم تحديد نتيجة التحويلات الشرطية الناشئة عن عبارات من نوع IF وGO TO المحسوبة بواسطة مولد أرقام عشوائي مرجح بشكل مناسب وفقًا لأي عبارات FREQUENCY تم توفيرها. [16]
قام أول مُجمِّع للغة فورتران بإبلاغ معلومات التشخيص عن طريق إيقاف البرنامج عند العثور على خطأ وإخراج رمز خطأ على وحدة التحكم الخاصة به. يمكن للمبرمج البحث عن هذا الرمز في جدول رسائل الخطأ في دليل المشغل، مما يوفر له وصفًا موجزًا للمشكلة. [10] : ص 19-20 [25] لاحقًا، تم دمج برنامج فرعي لمعالجة الأخطاء للتعامل مع أخطاء المستخدم مثل القسمة على الصفر، طورته وكالة ناسا، [26] ، لإبلاغ المستخدمين بأي سطر من التعليمات البرمجية يحتوي على الخطأ.
تخطيط ثابت وبطاقات مثقبة


قبل تطوير ملفات الأقراص ومحررات النصوص والمحطات الطرفية، كانت البرامج تُدخَل غالبًا على لوحة مفاتيح مثقبة على بطاقات مثقبة ذات 80 عمودًا ، أي سطر واحد لكل بطاقة. كانت مجموعة البطاقات الناتجة تُدخَل إلى قارئ بطاقات ليتم تجميعها. لم تتضمن أكواد البطاقات المثقوبة أحرفًا صغيرة أو العديد من الأحرف الخاصة، وتم تقديم إصدارات خاصة من آلة ثقب المفاتيح IBM 026 التي كانت تطبع بشكل صحيح الأحرف الخاصة المعاد استخدامها في FORTRAN.
انعكاسًا لممارسة إدخال البطاقات المثقوبة، تمت كتابة برامج Fortran في الأصل بتنسيق عمود ثابت، مع قراءة أول 72 عمودًا في اثنتي عشرة كلمة مكونة من 36 بت.
تسبب الحرف "C" في العمود 1 في معاملة البطاقة بأكملها كتعليق وتجاهلها من قبل المترجم. بخلاف ذلك، تم تقسيم أعمدة البطاقة إلى أربعة حقول:
- كانت الأرقام من 1 إلى 5 هي حقل التسمية: تم أخذ تسلسل الأرقام هنا كعلامة للاستخدام في عبارات DO أو التحكم مثل GO TO وIF، أو لتحديد عبارة FORMAT المشار إليها في عبارة WRITE أو READ. يتم تجاهل الأصفار الأولية ولا يعد 0 رقم تسمية صالحًا.
- كان الرقم 6 حقل استمرارية: أي حرف بخلاف الفراغ أو الصفر هنا يتسبب في اعتبار البطاقة استمرارًا للبيان الموجود على البطاقة السابقة. كانت بطاقات الاستمرارية مرقمة عادةً بالأرقام 1، 2، إلخ ، وبالتالي قد يكون للبطاقة المبدئية صفر في عمود الاستمرارية الخاص بها - وهو ليس استمرارًا للبطاقة السابقة.
- 7 إلى 72 بمثابة حقل البيان.
- تم تجاهل 73 إلى 80 ( قارئ البطاقات في جهاز IBM 704 يستخدم 72 عمودًا فقط). [27]
يمكن استخدام الأعمدة من 73 إلى 80 لمعلومات التعريف، مثل ثقب رقم تسلسلي أو نص، والذي يمكن استخدامه لإعادة ترتيب البطاقات إذا سقطت مجموعة من البطاقات؛ على الرغم من أنه في الممارسة العملية كان هذا مخصصًا لبرامج الإنتاج المستقرة. يمكن استخدام IBM 519 لنسخ مجموعة برامج وإضافة أرقام تسلسلية. كان لدى بعض المترجمين الأوائل، مثل IBM 650، قيود إضافية بسبب القيود المفروضة على قارئي البطاقات. [28] يمكن برمجة الثقب لتنتقل إلى العمود 7 وتتخطى العمود 72. خفف المترجمون اللاحقون معظم قيود التنسيق الثابت، وتم إلغاء هذا المتطلب في معيار Fortran 90.
داخل حقل العبارة، تم تجاهل أحرف المسافات البيضاء (المسافات الفارغة) خارج حرف النص. سمح هذا بحذف المسافات بين الرموز من أجل الاختصار أو تضمين المسافات داخل المعرفات من أجل الوضوح. على سبيل المثال، AVG OF Xكان معرفًا صالحًا، مكافئًا لـ AVGOFX، وكان عبارة صالحة، مكافئة لـ لأن الصفر في العمود 6 يُعامل كما لو كان مسافة (!)، بينما كان بدلاً من ذلك ، تعيين 1.101 إلى متغير يسمى . لاحظ الاختلاف المرئي الطفيف بين الفاصلة والنقطة.
101010DO101I=1,10110101 DO 101 I = 1, 101101010DO101I=1.10110101 DO101I = 1.101DO101I
كانت سلاسل Hollerith ، والتي كانت مسموحًا بها في الأصل فقط في عبارات FORMAT وDATA، مسبوقة بعدد الأحرف والحرف H (على سبيل المثال، 26HTHIS IS ALPHANUMERIC DATA.)، مما يسمح بالاحتفاظ بالمساحات الفارغة داخل سلسلة الأحرف. كانت الأخطاء في العد مشكلة.
تطور
| سنة | اسم غير رسمي | معيار ANSI | معيار ISO/IEC |
|---|---|---|---|
| 1957 | فورتران | — | — |
| 1958 | فورتران 2 | — | — |
| 1958 | فورتران 3 | — | — |
| 1961 | فورتران الرابع | — | — |
| 1966 | فورتران 66 | X3.9-1966 | — |
| 1978 | فورتران 77 | إكس 3.9-1978 | — |
| 1991 | فورتران 90 | X3.198-1992 | 1539:1991 |
| 1997 | فورتران 95 | — | 1539-1:1997 |
| 2004 | فورتران 2003 | — | 1539-1:2004 |
| 2010 | فورتران 2008 | — | 1539-1:2010 |
| 2018 | فورتران 2018 | — | 1539-1:2018 |
| 2023 | فورتران 2023 | — | 1539-1:2023 |
فورتران 2
ظهرت لغة البرمجة FORTRAN II من إنتاج شركة IBM في عام 1958. وكان التحسين الرئيسي هو دعم البرمجة الإجرائية من خلال السماح بالبرامج الفرعية والوظائف التي يكتبها المستخدم والتي ترجع قيمًا بمعلمات يتم تمريرها عن طريق المرجع . وفرت عبارة COMMON طريقة للبرامج الفرعية للوصول إلى المتغيرات المشتركة (أو العالمية ). تم تقديم ستة عبارات جديدة: [29]
SUBROUTINE،FUNCTION، وENDCALLوRETURNCOMMON
على مدى السنوات القليلة التالية، أضافت لغة FORTRAN II الدعم لأنواع البيانات DOUBLE PRECISIONو COMPLEX.
لم تدعم مُجمِّعات فورتران المبكرة التكرار في البرامج الفرعية. ولم تدعم هياكل الكمبيوتر المبكرة مفهوم المكدس، وعندما دعمت استدعاءات البرامج الفرعية بشكل مباشر، كان موقع الإرجاع غالبًا ما يُخزَّن في موقع ثابت واحد مجاور لكود البرنامج الفرعي (على سبيل المثال IBM 1130 ) أو سجل جهاز معين ( IBM 360 وما يليه )، والذي يسمح بالتكرار فقط إذا تم صيانة المكدس بواسطة برنامج وتم تخزين عنوان الإرجاع على المكدس قبل إجراء المكالمة واستعادته بعد إرجاع المكالمة. على الرغم من عدم تحديد ذلك في فورتران 77، إلا أن العديد من مُجمِّعات فورتران 77 دعمت التكرار كخيار، وكانت أجهزة الكمبيوتر المركزية من بوروز ، المصممة مع التكرار المدمج، تفعل ذلك افتراضيًا. أصبح معيارًا في فورتران 90 عبر الكلمة الأساسية الجديدة RECURSIVE. [30]
برنامج FORTRAN II بسيط
يقوم هذا البرنامج، لصيغة هيرون ، بقراءة البيانات على بكرة شريط تحتوي على ثلاثة أعداد صحيحة مكونة من خمسة أرقام A وB وC كمدخلات. لا توجد إعلانات "نوع" متاحة: المتغيرات التي يبدأ اسمها بـ I أو J أو K أو L أو M أو N هي "أعداد ثابتة" (أي أعداد صحيحة)، وإلا فهي أعداد عائمة. نظرًا لأن الأعداد الصحيحة سيتم معالجتها في هذا المثال، فإن أسماء المتغيرات تبدأ بالحرف "I". يجب أن يبدأ اسم المتغير بحرف ويمكن أن يستمر بالأحرف والأرقام، حتى حد ستة أحرف في FORTRAN II. إذا لم تتمكن A وB وC من تمثيل أضلاع المثلث في الهندسة المستوية، فسينتهي تنفيذ البرنامج برمز خطأ "STOP 1". وإلا، فسيتم طباعة سطر إخراج يظهر قيم الإدخال لـ A وB وC، متبوعًا بالمساحة المحسوبة للمثلث كرقم فاصل عائم يشغل عشر مساحات على طول سطر الإخراج ويظهر رقمين بعد النقطة العشرية، .2 في F10.2 من بيان FORMAT مع التسمية 601.
مساحة المثلث مع دالة الجذر التربيعي القياسية
C الإدخال - وحدة قارئ الشريط 5، إدخال عدد صحيح
C الإخراج - وحدة طابعة الخط 6، الإخراج الحقيقي
C خطأ الإدخال خطأ العرض رمز الإخراج 1 في قائمة التحكم في الوظيفة قراءة
شريط الإدخال 5 ، 501 ، IA ، IB ، IC تنسيق 501 ( 3 I5 ) C قد لا تكون IA وIB وIC سالبة أو صفرية C علاوة على ذلك، يجب أن يكون مجموع ضلعين في المثلث C أكبر من الضلع الثالث، لذلك نتحقق من ذلك أيضًا إذا ( IA ) 777 ، 777 ، 701 701 إذا ( IB ) 777 , 777 , 702 702 إذا ( IC ) 777 , 777 , 703 703 إذا ( IA + IB - IC ) 777 , 777 , 704 704 إذا ( IA + IC - IB ) 777 , 777 , 705 705 إذا ( IB + IC - IA ) 777 , 777 , 799 777 توقف 1 C باستخدام صيغة هيرون نحسب مساحة المثلث C 799 S = FLOATF ( IA + IB + IC ) / 2.0 المساحة = SQRTF ( S * ( S - FLOATF ( IA )) * ( S - FLOATF ( IB )) * + ( S - FLOATF ( IC ))) كتابة شريط الإخراج 6 ، 601 ، IA ، IB ، IC ، تنسيق المنطقة 601 ( 4 H A = ، I5 ، 5 H B
= ، I5 ، 5 H C = ، I5 ، 8 H المساحة = ، F10 . 2 ، + 13 H وحدات مربعة ) توقف النهاية
فورتران 3
كما طورت شركة آي بي إم لغة فورتران 3 في عام 1958 والتي سمحت باستخدام كود التجميع المضمن بين ميزات أخرى؛ ومع ذلك، لم يتم إطلاق هذه النسخة كمنتج أبدًا. مثل فورتران 704 وفورتران 2، تضمنت فورتران 3 ميزات تعتمد على الآلة جعلت الكود المكتوب بها غير قابل للنقل من آلة إلى أخرى. [11] : 76 عانت الإصدارات المبكرة من فورتران التي قدمتها شركات أخرى من نفس العيب.
فورتران الرابع
بدأت شركة آي بي إم تطوير لغة فورتران 4 في عام 1961، نتيجة لمطالب العملاء. أزالت لغة فورتران 4 الميزات المعتمدة على الآلة من لغة فورتران 2 (مثل READ INPUT TAPE)، بينما أضافت ميزات جديدة مثل LOGICALنوع البيانات ، والتعبيرات المنطقية المنطقية وعبارة IF المنطقية كبديل لعبارة IF الحسابية. تم إصدار لغة فورتران 4 في النهاية في عام 1962، أولاً لجهاز كمبيوتر آي بي إم 7030 ("Stretch")، تلتها إصدارات لجهاز آي بي إم 7090 ، وآي بي إم 7094 ، ولاحقًا لجهاز آي بي إم 1401 في عام 1966. [31]
بحلول عام 1965، كان من المفترض أن يتوافق FORTRAN IV مع المعيار الذي طورته مجموعة عمل FORTRAN X3.4.3 التابعة للجمعية الأمريكية للمعايير . [32]
بين عامي 1966 و1968، عرضت شركة IBM العديد من مترجمي لغة FORTRAN IV لنظامها System/360 ، وقد تم تسمية كل منهم بأحرف تشير إلى الحد الأدنى من الذاكرة التي يحتاجها المترجم لتشغيلها. [33] تطابقت الأحرف (F، G، H) مع الرموز المستخدمة مع أرقام طراز System/360 للإشارة إلى حجم الذاكرة، حيث تكون كل زيادة في الأحرف أكبر بعامل اثنين: [34] : ص. 5
- 1966: FORTRAN IV F لنظام DOS/360 (64 كيلو بايت)
- 1966: FORTRAN IV G لنظام التشغيل OS/360 (128 كيلو بايت)
- 1968: FORTRAN IV H لنظام التشغيل OS/360 (256 كيلو بايت)
قامت شركة Digital Equipment Corporation بصيانة DECSYSTEM-10 Fortran IV (F40) لـ PDP-10 من عام 1967 إلى عام 1975. [35] كما كانت المترجمات متاحة أيضًا لسلسلة UNIVAC 1100 وأنظمة سلسلة Control Data 6000 وسلسلة 7000. [36]
في هذا الوقت تقريبًا، بدأ FORTRAN IV في أن يصبح أداة تعليمية مهمة وتم إنشاء تطبيقات مثل WATFOR و WATFIV بجامعة واترلو لتبسيط عمليات التجميع والربط المعقدة للمترجمين الأوائل.
في بيئة برمجة FORTRAN IV في ذلك العصر، باستثناء تلك المستخدمة في أنظمة Control Data Corporation (CDC)، كان يتم وضع تعليمة واحدة فقط لكل سطر. وكانت نسخة CDC تسمح بتعليمات متعددة لكل سطر إذا تم الفصل بينها بحرف $ (دولار). وكانت ورقة FORTRAN مقسمة إلى أربعة حقول، كما هو موضح أعلاه.
كان هناك اثنان من المترجمين في ذلك الوقت، IBM "G" وUNIVAC، يسمحان بكتابة التعليقات على نفس سطر التعليمات، مع الفصل بينها بحرف خاص: "مسافة رئيسية": V (الثقوب 7 و8) بالنسبة لـ UNIVAC والثقوب 12/11/0/7/8/9 (FF سداسي عشري) بالنسبة لـ IBM. لم يكن من المفترض إدراج هذه التعليقات في منتصف بطاقات الاستمرار. [35] [36]
فورتران 66
ربما كان التطور الأكثر أهمية في التاريخ المبكر للغة فورتران هو القرار الذي اتخذته جمعية المعايير الأمريكية (الآن المعهد الوطني الأمريكي للمعايير (ANSI)) بتشكيل لجنة برعاية جمعية مصنعي معدات الأعمال (BEMA) لتطوير لغة فورتران القياسية الأمريكية . وقد حدد المعياران الناتجان، المعتمدان في مارس 1966، لغتين، فورتران (تعتمد على فورتران الرابع، الذي كان بمثابة معيار فعلي)، وفورتران الأساسية (تعتمد على فورتران الثاني، ولكن تم تجريده من ميزاته المعتمدة على الآلة). أصبحت لغة فورتران المحددة بالمعيار الأول، والمشار إليها رسميًا باسم X3.9-1966، تُعرف باسم فورتران 66 (على الرغم من أن العديد استمروا في تسميتها فورتران الرابع، وهي اللغة التي استند إليها المعيار إلى حد كبير). أصبحت فورتران 66 فعليًا أول إصدار قياسي صناعي من فورتران. تضمنت فورتران 66:
- البرنامج الرئيسي،
SUBROUTINEوFUNCTION،BLOCK DATAووحدات البرنامج INTEGER,REAL,DOUBLE PRECISION,COMPLEX,LOGICALوأنواع البياناتCOMMON،DIMENSION،EQUIVALENCEوالعباراتDATAبيان لتحديد القيم الأولية- الوظائف الجوهرية و
EXTERNAL(على سبيل المثال، وظائف المكتبة) - بيان التكليف
GO TO، محسوبةGO TO، معينةGO TO،ASSIGNوعبارات- العبارات المنطقية
IFوالحسابية (الثلاثية)IF DOجملة حلقةREAD,WRITE,BACKSPACE,REWIND,ENDFILEوعبارات للإدخال والإخراج المتسلسلFORMATالبيان والصيغة المخصصةCALL,RETURN,PAUSE,STOPوالعبارات- ثوابت هوليريث في العبارات
DATAوFORMAT، وكحجج للإجراءات - معرفات يصل طولها إلى ستة أحرف
- خطوط التعليق
ENDخط
تحتاج نسخة Fortran II أعلاه من برنامج Heron إلى عدة تعديلات ليتم تجميعها كبرنامج Fortran 66. تتضمن التعديلات استخدام الإصدارات الأكثر استقلالية عن الآلة من عبارات READand WRITE، وإزالة وظائف تحويل النوع غير الضرورية . على الرغم من عدم الحاجة إلى ذلك، يمكن إعادة كتابة العبارات FLOATFالحسابية لاستخدام العبارات والتعابير المنطقية بطريقة أكثر هيكلة.
IFIF
مساحة المثلث مع دالة الجذر التربيعي القياسية
C الإدخال - وحدة قارئ الشريط 5، إدخال عدد صحيح
C الإخراج - وحدة طابعة الخط 6، الإخراج الحقيقي
C خطأ الإدخال عرض الخطأ رمز الإخراج 1 في قائمة التحكم في الوظيفة القراءة
( 5 ، 501 ) IA ، IB ، IC تنسيق 501 ( 3 I5 ) C C قد لا تكون IA وIB وIC سالبة أو صفرية C علاوة على ذلك، يجب أن يكون مجموع ضلعين في المثلث C أكبر من الضلع الثالث، لذلك نتحقق من ذلك أيضًا إذا ( IA . GT . 0 . و . IB . GT . 0 . و . IC . GT . 0 ) انتقل إلى 10 اكتب ( 6 ، 602 ) 602 الصيغة ( 42 H يجب أن يكون IA و IB و IC أكبر من الصفر .) توقف 1 10 تابع C إذا ( IA + IB - IC . GT . 0 + . و . IA + IC - IB . GT . 0 + . و . IB + IC - IA . GT . 0 ) انتقل إلى 20 اكتب ( 6 ، 603 ) 603 الصيغة ( 50 H يجب أن يكون مجموع ضلعين أكبر من الضلع الثالث . ) توقف 1 20 تابع C C باستخدام صيغة هيرون نحسب مساحة المثلث C S = ( IA + IB + IC ) / 2.0 المساحة = الجذر التربيعي ( S * ( S - IA ) *
( S - IB ) * ( S - IC )) اكتب ( 6 , 601 ) IA , IB , IC , AREA 601 الصيغة ( 4 H A = , I5 , 5 H B = , I5 , 5 H C = , I5 , 8 H AREA = , F10 . 2 , + 13 H وحدات مربعة ) توقف النهاية
فورتران 77


بعد إصدار معيار FORTRAN 66، قدم بائعو المترجمين العديد من الامتدادات لمعيار Fortran ، مما دفع لجنة ANSI X3J3 في عام 1969 إلى البدء في العمل على مراجعة معيار عام 1966، تحت رعاية CBEMA ، رابطة مصنعي معدات الأعمال الحاسوبية (BEMA سابقًا). تم تداول المسودات النهائية لهذا المعيار المنقح في عام 1977، مما أدى إلى الموافقة الرسمية على معيار FORTRAN الجديد في أبريل 1978. أضاف المعيار الجديد، المسمى FORTRAN 77 والمشار إليه رسميًا باسم X3.9-1978، عددًا من الميزات المهمة لمعالجة العديد من أوجه القصور في FORTRAN 66:
- كتلة
IFوعباراتEND IF، مع جمل اختياريةELSE IFوجملELSE، لتوفير دعم لغوي محسّن للبرمجة المنظمة DOامتدادات الحلقة، بما في ذلك تعبيرات المعلمات، والزيادات السلبية، وعدد الرحلات الصفريةOPEN،CLOSE،INQUIREوعبارات لتحسين قدرة الإدخال/الإخراج- إدخال وإخراج الملفات ذات الوصول المباشر
IMPLICITعبارة لتجاوز الاتفاقيات الضمنية التي تعتبر المتغيرات غير المعلنةINTEGERإذا بدأ اسمها بـI،J،K،L،M، أوN(REALوإلا)CHARACTERنوع البيانات، استبدال سلاسل هوليريث بمرافق موسعة بشكل كبير لإدخال وإخراج الأحرف ومعالجة البيانات القائمة على الأحرفPARAMETERعبارة لتحديد الثوابتSAVEبيان للمتغيرات المحلية المستمرة- أسماء عامة للوظائف الجوهرية (على سبيل المثال،
SQRTتقبل أيضًا وسيطات من أنواع أخرى، مثلCOMPLEXأوREAL*16). - مجموعة من العناصر الجوهرية (
LGE, LGT, LLE, LLT) للمقارنة المعجمية للسلاسل، استنادًا إلى تسلسل التجميع ASCII . (تم طلب هذه الوظائف ASCII من قبل وزارة الدفاع الأمريكية ، في تصويت الموافقة المشروطة. [ بحاجة لمصدر ] ) - الحد الأقصى هو سبعة أبعاد في المصفوفات، بدلاً من ثلاثة. كما تم تعميم التعبيرات المسموح بها.
في هذه المراجعة للمعيار، تمت إزالة عدد من الميزات أو تعديلها بطريقة قد تبطل البرامج التي كانت متوافقة مع المعيار سابقًا. (كانت الإزالة هي البديل الوحيد المسموح به لـ X3J3 في ذلك الوقت، نظرًا لأن مفهوم " الإلغاء " لم يكن متاحًا بعد لمعايير ANSI.) في حين أن معظم العناصر الـ 24 في قائمة الصراع (انظر الملحق A2 من X3.9-1978) تناولت الثغرات أو الحالات المرضية المسموح بها بموجب المعيار السابق ولكن نادرًا ما يتم استخدامها، فقد تمت إزالة عدد صغير من القدرات المحددة عمدًا، مثل:
- ثوابت هوليريث وبيانات هوليريث ، مثل
GREET = 12HHELLO THERE! - القراءة في وصف تحرير H (حقل هوليريث) في مواصفات FORMAT
- الإفراط في فهرسة حدود المصفوفة بواسطة الفهارس السفلية
البعد أ ( 10 ، 5 ) ص = أ ( 11 ، 1 )
- نقل التحكم من وإلى نطاق حلقة DO (المعروفة أيضًا باسم "النطاق الموسع")
لا تتطلب نسخة Fortran 77 من برنامج Heron أي تعديلات على نسخة Fortran 66. ومع ذلك، يوضح هذا المثال تنظيفًا إضافيًا لعبارات الإدخال/الإخراج، بما في ذلك استخدام الإدخال/الإخراج الموجه بالقائمة، واستبدال أوصاف تحرير Hollerith في العبارات FORMATبسلاسل مقتبسة. كما يستخدم عبارات منظمة IFو END IF، بدلاً من GOTO/ CONTINUE.
برنامج HERON
C مساحة المثلث باستخدام دالة الجذر التربيعي القياسية
C الإدخال - وحدة الإدخال القياسية الافتراضية، الإدخال الصحيح
C الإخراج - وحدة الإخراج القياسية الافتراضية، الإخراج الحقيقي
C خطأ الإدخال عرض خطأ رمز الإخراج 1 في قائمة التحكم في الوظيفة
اقرأ ( * ، * ) IA و IB و IC C C لا يمكن أن تكون IA و IB و IC سالبة أو صفرية C علاوة على ذلك، يجب أن يكون مجموع ضلعين في المثلث C أكبر من الضلع الثالث، لذلك نتحقق من ذلك أيضًا إذا كان ( IA . LE . 0 . أو . IB . LE . 0 . أو . IC . LE . 0 ) ثم اكتب ( * , * ) "يجب أن يكون IA وIB وIC أكبر من الصفر." توقف 1 انتهى إذا كان C إذا كان ( IA + IB - IC . LE . 0 + . أو . IA + IC - IB . LE . 0 + . أو . IB + IC - IA . LE . 0 ) ثم اكتب ( * , * ) "يجب أن يكون مجموع ضلعين أكبر من الضلع الثالث." توقف 1 نهاية إذا كان C C باستخدام صيغة هيرون نحسب مساحة C للمثلث S = ( IA + IB + IC ) / 2.0 المساحة = الجذر التربيعي ( S * ( S - IA ) * ( S - IB ) * ( S - IC )) اكتب ( * , 601 ) IA , IB , IC , المساحة 601 الصيغة ( 'A= ' , I5 , ' B= ' , I5 ,
' C = ' ، I5 ، ' AREA = ' ، F10 . 2 ، + 'وحدات مربعة' ) توقف النهاية
الانتقال إلى معيار ANSI Fortran
كان من المقرر أن يتأخر تطوير معيار منقح ليحل محل لغة FORTRAN 77 بشكل متكرر، حيث كانت عملية التقييس تكافح لمواكبة التغيرات السريعة في ممارسات الحوسبة والبرمجة. وفي الوقت نفسه، وباعتبارها "لغة FORTRAN القياسية" لمدة خمسة عشر عامًا تقريبًا، أصبحت لغة FORTRAN 77 هي اللهجة الأكثر أهمية تاريخيًا.
كان إصدار MIL-STD-1753 في عام 1978 بمثابة توسعة عملية مهمة للغة FORTRAN 77. [37] وقد قامت هذه المواصفات، التي طورتها وزارة الدفاع الأمريكية ، بتوحيد عدد من الميزات التي نفذتها معظم برامج تجميع لغة FORTRAN 77 ولكنها لم تكن مدرجة في معيار ANSI FORTRAN 77. وفي النهاية تم دمج هذه الميزات في معيار Fortran 90.
DO WHILEوEND DOالتصريحاتINCLUDEإفادةIMPLICIT NONEمتغير منIMPLICITالبيان- وظائف جوهرية لمعالجة البتات ، استنادًا إلى وظائف مماثلة مدرجة في لغة Fortran الصناعية في الوقت الفعلي (ANSI/ISA S61.1 (1976))
قدم معيار IEEE 1003.9 POSIX ، الذي صدر في عام 1991، وسيلة بسيطة لمبرمجي FORTRAN 77 لإصدار نداءات نظام POSIX. [38] تم تعريف أكثر من 100 نداء في الوثيقة - مما يسمح بالوصول إلى التحكم في العملية المتوافقة مع POSIX، ومعالجة الإشارات، والتحكم في نظام الملفات، والتحكم في الجهاز، وتوجيه الإجراءات، وإدخال/إخراج التدفق بطريقة محمولة.
فورتران 90
تم إصدار خليفة لغة FORTRAN 77 الذي تأخر كثيرًا، والمعروف بشكل غير رسمي باسم Fortran 90 (وقبل ذلك Fortran 8X )، أخيرًا كمعيار ISO/IEC 1539:1991 في عام 1991 ومعيار ANSI في عام 1992. بالإضافة إلى تغيير التهجئة الرسمية من FORTRAN إلى Fortran، أضافت هذه المراجعة الرئيسية العديد من الميزات الجديدة لتعكس التغييرات المهمة في ممارسات البرمجة التي تطورت منذ معيار عام 1978:
- أدى إدخال المصدر الحر إلى إزالة الحاجة إلى تخطي مواضع الأحرف الستة الأولى قبل إدخال البيانات.
- كلمات مفتاحية صغيرة الحجم في لغة فورتران
- معرفات يصل طولها إلى 31 حرفًا (في المعيار السابق، كان ستة أحرف فقط).
- تعليقات مضمنة
- القدرة على العمل على المصفوفات (أو أقسام المصفوفة) ككل، وبالتالي تبسيط العمليات الحسابية الرياضية والهندسية إلى حد كبير.
- عبارات تعيين المصفوفة الكاملة والجزئية والمقنعة وتعبيرات المصفوفة، مثل
X(1:N)=R(1:N)*COS(A(1:N)) WHEREبيان لتعيين المصفوفة الانتقائية- الثوابت والتعبيرات ذات القيمة المصفوفة،
- وظائف مصفوفة ذات قيمة محددة من قبل المستخدم ومنشئي المصفوفة.
- عبارات تعيين المصفوفة الكاملة والجزئية والمقنعة وتعبيرات المصفوفة، مثل
RECURSIVEإجراءات- الوحدات النمطية ، لتجميع الإجراءات والبيانات ذات الصلة معًا، وجعلها متاحة لوحدات البرنامج الأخرى، بما في ذلك القدرة على تقييد إمكانية الوصول إلى أجزاء محددة فقط من الوحدة النمطية.
- آلية تمرير وسيطة محسنة بشكل كبير، مما يسمح بفحص الواجهات في وقت التجميع
- واجهات مكتوبة للمستخدم للإجراءات العامة
- تحميل المشغل الزائد
- أنواع البيانات المشتقة (المنظمة)
- بناء جملة إعلان نوع البيانات الجديد، لتحديد نوع البيانات والسمات الأخرى للمتغيرات
- تخصيص الذاكرة الديناميكية عن طريق
ALLOCATABLEالسمة والعباراتALLOCATEوDEALLOCATE POINTERالسمة، وتعيين المؤشر،NULLIFYوالبيان لتسهيل إنشاء هياكل البيانات الديناميكية ومعالجتها- إنشاءات تكرارية منظمة، مع عبارة
END DOلإنهاء التكرارات التكرارية العادية بطريقة منظمةEXITCYCLEDO SELECT CASE,CASE, . . .CASE DEFAULT,END SELECTبناء للاختيار متعدد الاتجاهات- مواصفات محمولة للدقة الرقمية تحت سيطرة المستخدم
- إجراءات جوهرية جديدة ومحسنة.
التقادم والحذف
على عكس المراجعة السابقة، لم يقم Fortran 90 بإزالة أي ميزات. [39] أي برنامج FORTRAN 77 متوافق مع المعايير كان أيضًا متوافقًا مع المعايير في Fortran 90، وكان من المفترض أن يكون أي من المعيارين قابلاً للاستخدام لتحديد سلوكه.
تم تحديد مجموعة صغيرة من الميزات باعتبارها "قديمة" ومن المتوقع إزالتها في معيار مستقبلي. يمكن تنفيذ جميع وظائف ميزات الإصدار المبكر هذه بواسطة ميزات Fortran الأحدث. تم الاحتفاظ ببعضها لتبسيط نقل البرامج القديمة ولكن تم حذف العديد منها في Fortran 95.
| ميزة قديمة | الحالة الحالية |
|---|---|
| جملة IF الحسابية | أصبح قديمًا في F90، وتم حذفه في F2018 |
| معلمات DO غير الصحيحة أو متغيرات التحكم | قديم في F90، محذوف في F95 |
| إنهاء حلقة DO المشتركة أو الإنهاء ببيان آخر غير END DO أو CONTINUE | أصبح قديمًا في F90، وتم حذفه في F2018 |
| التفرع إلى END IF من خارج الكتلة | قديم في F90، محذوف في F95 |
| بيان الإيقاف المؤقت | قديم في F90، محذوف في F95 |
| عبارة ASSIGN وعبارة GO TO المعينة | قديم في F90، محذوف في F95 |
| أرقام البيان المعينة ومواصفات التنسيق | قديم في F90، محذوف في F95 |
| وصف التعديل | قديم في F90، محذوف في F95 |
| التحكم في التنسيق العمودي | تم حذفه في F2003 |
| العودة البديلة | عفا عليها الزمن في F90 |
| عبارة GO TO المحسوبة | عفا عليها الزمن في F90 |
| وظائف البيان | عفا عليها الزمن في F90 |
| عبارات DATA بين العبارات القابلة للتنفيذ | عفا عليها الزمن في F90 |
| وظائف الأحرف ذات الطول المفترض | عفا عليها الزمن في F90 |
| كود المصدر للنموذج الثابت | عفا عليها الزمن في F90 |
| نموذج CHARACTER* لإعلان CHARACTER | عفا عليها الزمن في F90 |
| بيانات الدخول | عفا عليها الزمن في F2008 |
| نموذج تسمية بيان DO | أصبح قديمًا في F2018 |
| البيانات المشتركة والمكافئة ووحدة برنامج البيانات الكتلية | أصبح قديمًا في F2018 |
| أسماء محددة للوظيفة الجوهرية | أصبح قديمًا في F2018 |
| بناء وبيان FORALL | أصبح قديمًا في F2018 |
مثال على "مرحبا بالعالم!"
برنامج helloworld
طباعة * ، "مرحبا بالعالم!" نهاية برنامج helloworld
فورتران 95
كان Fortran 95 ، المنشور رسميًا باسم ISO/IEC 1539-1:1997، عبارة عن مراجعة بسيطة، وذلك في الغالب لحل بعض المشكلات العالقة في معيار Fortran 90. ومع ذلك، أضاف Fortran 95 أيضًا عددًا من الامتدادات، ولا سيما من مواصفات Fortran عالية الأداء :
FORALLوبناءات متداخلةWHEREللمساعدة في التوجيهPUREالإجراءات المحددةELEMENTALمن قبل المستخدم- تهيئة افتراضية لمكونات النوع المشتق، بما في ذلك تهيئة المؤشر
- تم توسيع القدرة على استخدام تعبيرات التهيئة لكائنات البيانات
- تهيئة المؤشرات إلى
NULL() - من الواضح أن
ALLOCATABLEالمصفوفات يتم تحريرها تلقائيًا عندما تخرج عن النطاق.
تم توسيع عدد من الوظائف الجوهرية (على سبيل المثال، dimتمت إضافة وسيطة إلى الوظيفة maxlocالجوهرية).
تمت إزالة العديد من الميزات التي تم اعتبارها قديمة في Fortran 90 من Fortran 95:
DOعبارات باستخدام المتغيراتREALوالفهرسDOUBLE PRECISION- التفرع إلى
END IFبيان من خارج كتلته PAUSEإفادةASSIGNوالبيان المخصصGO TO، ومواصفات التنسيق المخصصةHوصف تحرير هولريث.
كان التقرير الفني ISO TR-15581: Enhanced Data Type Facilities ، والمعروف بشكل غير رسمي باسم Allocatable TR، أحد المكملات المهمة لـ Fortran 95. وقد حددت هذه المواصفات الاستخدام المعزز ALLOCATABLEللمصفوفات، قبل توافر مُجمِّعات Fortran المتوافقة تمامًا مع Fortran 2003. وتشمل هذه الاستخدامات ALLOCATABLEالمصفوفات كمكونات نوع مشتقة، وفي قوائم وسيطات وهمية للإجراءات، وكقيم إرجاع للوظيفة. ( ALLOCATABLEالمصفوفات أفضل من المصفوفات القائمة على POINTER- لأن ALLOCATABLEالمصفوفات مضمونة بواسطة Fortran 95 لإلغاء تخصيصها تلقائيًا عندما تخرج عن نطاقها، مما يزيل احتمالية تسرب الذاكرة . بالإضافة إلى ذلك، تكون عناصر المصفوفات القابلة للتخصيص متجاورة، ولا يمثل التضليل مشكلة لتحسين مراجع المصفوفات، مما يسمح للمُجمِّعين بإنشاء كود أسرع من حالة المؤشرات. [40] )
كان الملحق المهم الآخر لـ Fortran 95 هو التقرير الفني ISO TR-15580: معالجة استثناءات النقطة العائمة ، والمعروف بشكل غير رسمي باسم IEEE TR. حددت هذه المواصفات الدعم لعمليات حسابية النقطة العائمة IEEE ومعالجة استثناءات النقطة العائمة .
التجميع الشرطي وسلاسل ذات أطوال مختلفة
بالإضافة إلى "اللغة الأساسية" الإلزامية (المحددة في ISO/IEC 1539-1: 1997)، تضمنت لغة Fortran 95 أيضًا وحدتين اختياريتين:
- سلاسل أحرف ذات أطوال مختلفة (ISO/IEC 1539-2: 2000)
- التجميع المشروط (ISO/IEC 1539-3 : 1998)
والتي تشكل معًا المعيار الدولي متعدد الأجزاء (ISO/IEC 1539).
وفقًا لمطوري المعايير، "تصف الأجزاء الاختيارية ميزات مستقلة تم طلبها من قبل مجموعة كبيرة من المستخدمين و/أو المنفذين، ولكن لا يُنظر إليها على أنها ذات عمومية كافية لتكون مطلوبة في جميع مترجمي Fortran المتوافقين مع المعايير". ومع ذلك، إذا كان Fortran المتوافق مع المعايير يوفر مثل هذه الخيارات، فيجب "توفيرها وفقًا لوصف تلك المرافق في الجزء المناسب من المعيار".
فورتران الحديثة
اللغة التي تم تعريفها بمعايير القرن الحادي والعشرين، وخاصة بسبب دمجها لدعم البرمجة الموجهة للكائنات و Coarray Fortran لاحقًا ، غالبًا ما يشار إليها باسم "Fortran الحديثة"، ويُستخدم المصطلح بشكل متزايد في الأدبيات. [41]
فورتران 2003
كان Fortran 2003، المنشور رسميًا باسم ISO/IEC 1539-1:2004، بمثابة مراجعة رئيسية قدمت العديد من الميزات الجديدة. [42] يتوفر ملخص شامل للميزات الجديدة في Fortran 2003 على الموقع الرسمي لمجموعة عمل Fortran ( ISO/IEC JTC1/SC22 /WG5) على الويب. [43]
ومن تلك المقالة، تتضمن التحسينات الرئيسية لهذه المراجعة ما يلي:
- تحسينات النوع المشتق: أنواع مشتقة ذات معلمات، وتحسين التحكم في إمكانية الوصول، وتحسين منشئي الهياكل، والمحددات النهائية
- دعم البرمجة الموجهة للكائنات : تمديد النوع والوراثة ، تعدد الأشكال ، تخصيص النوع الديناميكي، والإجراءات المرتبطة بالنوع، مما يوفر دعمًا كاملاً لأنواع البيانات المجردة
- تحسينات معالجة البيانات: المكونات القابلة للتخصيص (تتضمن TR 15581)، ومعلمات النوع المؤجلة،
VOLATILEوالسمة ، ومواصفات النوع الصريحة في منشئي المصفوفات وعبارات التخصيص، وتحسينات المؤشر، وتعبيرات التهيئة الموسعة، والإجراءات الجوهرية المحسنة - تحسينات الإدخال/الإخراج: النقل غير المتزامن ، والوصول إلى التدفق، وعمليات النقل المحددة من قبل المستخدم للأنواع المشتقة، والتحكم المحدد من قبل المستخدم في التقريب أثناء تحويلات التنسيق، والثوابت المسماة للوحدات المتصلة مسبقًا، والبيان
FLUSH، وتنظيم الكلمات الأساسية، والوصول إلى رسائل الخطأ - مؤشرات الإجراء
- دعم العمليات الحسابية ذات الفاصلة العائمة IEEE ومعالجة استثناءات الفاصلة العائمة (بما في ذلك TR 15580)
- التوافق مع لغة البرمجة C
- دعم الاستخدام الدولي: الوصول إلى أحرف ISO 10646 المكونة من 4 بايتات واختيار الأرقام العشرية أو الفاصلة في الإدخال/الإخراج بتنسيق رقمي
- تحسين التكامل مع نظام التشغيل المضيف: الوصول إلى حجج سطر الأوامر ، ومتغيرات البيئة ، ورسائل خطأ المعالج
كان التقرير الفني ISO TR-19767: مرافق الوحدات المحسنة في Fortran من الإضافات المهمة لـ Fortran 2003. قدم هذا التقرير وحدات فرعية، مما يجعل وحدات Fortran أكثر تشابهًا مع وحدات Modula-2 . وهي تشبه وحدات فرعية خاصة بـ Ada . يسمح هذا بتحديد مواصفات الوحدة وتنفيذها ليتم التعبير عنها في وحدات برامج منفصلة، مما يحسن من حزم المكتبات الكبيرة، ويسمح بالحفاظ على الأسرار التجارية أثناء نشر واجهات نهائية، ويمنع تسلسلات التجميع.
فورتران 2008
تمت الموافقة على ISO/IEC 1539-1:2010، والمعروفة بشكل غير رسمي باسم Fortran 2008، في سبتمبر 2010. [44] [45] وكما هو الحال مع Fortran 95، فإن هذا يعد ترقية بسيطة، تتضمن توضيحات وتصحيحات لـ Fortran 2003، بالإضافة إلى تقديم بعض القدرات الجديدة. تتضمن القدرات الجديدة ما يلي:
- الوحدات الفرعية – مرافق هيكلية إضافية للوحدات؛ تحل محل ISO/IEC TR 19767:2005
- Coarray Fortran – نموذج التنفيذ المتوازي
- بنية DO CONCURRENT – تكرارات الحلقة بدون أي اعتماد متبادل
- السمة CONTIGUOUS – لتحديد قيود تخطيط التخزين
- بناء BLOCK – يمكن أن يحتوي على إعلانات عن كائنات ذات نطاق بناء
- المكونات القابلة للتخصيص المتكررة - كبديل للمؤشرات المتكررة في الأنواع المشتقة
تتوفر المسودة النهائية للمعيار الدولي (FDIS) في الوثيقة رقم N1830. [46]
يعد المواصفة الفنية 29113 الصادرة عن المنظمة الدولية للمعايير (ISO) بشأن التوافق الإضافي بين لغة Fortran ولغة C ، [47] [48] والتي تم تقديمها إلى ISO في مايو 2012 للموافقة عليها، أحد المكملات لـ Fortran 2008. تضيف المواصفة الدعم للوصول إلى موصوف المصفوفة من لغة C وتسمح بتجاهل نوع ورتبة الوسائط.
فورتران 2018
تمت الإشارة سابقًا إلى مراجعة لغة Fortran 2018 باسم Fortran 2015. [49] كانت مراجعة مهمة وتم إصدارها في 28 نوفمبر 2018. [50]
يتضمن Fortran 2018 اثنين من المواصفات الفنية المنشورة سابقًا:
- ISO/IEC TS 29113:2012 مزيد من التوافق مع لغة C [51]
- ISO/IEC TS 18508:2015 ميزات موازية إضافية في Fortran [52]
تتضمن التغييرات الإضافية والميزات الجديدة دعم ISO/IEC/IEEE 60559:2011 (إصدار معيار IEEE للفاصلة العائمة قبل أحدث مراجعة ثانوية IEEE 754–2019)، والإدخال/الإخراج السداسي عشر، وتحسينات IMPLICIT NONE والتغييرات الأخرى. [53] [54] [55] [56]
لقد حذفت لغة Fortran 2018 عبارة IF الحسابية. كما حذفت أيضًا بنيات DO غير الكتلية - الحلقات التي لا تنتهي بعبارة END DO أو CONTINUE. كانت هذه جزءًا عتيقًا من اللغة منذ Fortran 90.
تتضمن عمليات التقادم الجديدة ما يلي: عبارات COMMON وEQUIVALENCE ووحدة برنامج BLOCK DATA، وحلقات DO الموسومة، والأسماء المحددة للوظائف الجوهرية، وعبارات FORALL والبناء.
فورتران 2023
تم نشر Fortran 2023 (ISO/IEC 1539-1:2023) في نوفمبر 2023، ويمكن شراؤه من ISO. [57] Fortran 2023 هو امتداد ثانوي لـ Fortran 2018 يركز على تصحيح الأخطاء والإغفالات في Fortran 2018. كما يضيف بعض الميزات الصغيرة، بما في ذلك إمكانية النوع المرقم .
ميزات اللغة
تم تناول وصف كامل لخصائص لغة فورتران التي جلبها فورتران 95 في المقالة ذات الصلة، خصائص لغة فورتران 95. غالبًا ما يشار إلى إصدارات اللغة المحددة بالمعايير اللاحقة بشكل جماعي باسم "فورتران الحديثة" ويتم وصفها في الأدبيات.
العلوم والهندسة



على الرغم من أن مقالة في مجلة عام 1968 كتبها مؤلفو BASIC وصفت بالفعل لغة فورتران بأنها "قديمة الطراز"، [58] فقد كُتبت البرامج بلغة فورتران لعقود عديدة وهناك مجموعة كبيرة من برامج فورتران قيد الاستخدام اليومي في جميع المجتمعات العلمية والهندسية. [59] كتب جاي باساكوف في عام 1984 أن "طلاب الفيزياء والفلك عليهم ببساطة تعلم لغة فورتران. يوجد الكثير في فورتران لدرجة أنه يبدو من غير المحتمل أن يتحول العلماء إلى باسكال أو مودولا-2 أو أي شيء آخر". [60] في عام 1993، أطلق سيسيل إي ليث على فورتران اسم "اللغة الأم للحوسبة العلمية"، مضيفًا أن استبدالها بأي لغة أخرى ممكنة "قد يظل أملًا يائسًا". [61]
إنها اللغة الأساسية لبعض مهام الحوسبة الفائقة الأكثر كثافة ، مثل علم الفلك ، ونمذجة المناخ ، والكيمياء الحاسوبية ، والاقتصاد الحاسوبي ، وديناميكيات السوائل الحاسوبية ، والفيزياء الحاسوبية ، وتحليل البيانات، [62] والنمذجة الهيدرولوجية ، والجبر الخطي العددي والمكتبات العددية ( LAPACK و IMSL و NAG )، والتحسين ، ومحاكاة الأقمار الصناعية، والهندسة الإنشائية ، والتنبؤ بالطقس . [63] تمت كتابة العديد من معايير الفاصلة العائمة لقياس أداء معالجات الكمبيوتر الجديدة، مثل مكونات الفاصلة العائمة لمعايير SPEC (على سبيل المثال، CFP2006 وCFP2017) بلغة فورتران. تم توثيق خوارزميات الرياضيات جيدًا في الوصفات العددية .
وبصرف النظر عن هذا، تستخدم الأكواد الأكثر حداثة في العلوم الحاسوبية عمومًا مكتبات برامج كبيرة، مثل METIS لتقسيم الرسم البياني، وPETSc أو Trilinos لإمكانيات الجبر الخطي، و deal.II أو FEniCS لدعم الشبكة والعناصر المحدودة، ومكتبات عامة أخرى. منذ أوائل العقد الأول من القرن الحادي والعشرين، تم أيضًا تنفيذ العديد من مكتبات الدعم المستخدمة على نطاق واسع في لغة C ومؤخرًا في لغة C++ . من ناحية أخرى، أصبحت اللغات عالية المستوى مثل لغة Wolfram و MATLAB و Python و R شائعة في مجالات معينة من العلوم الحاسوبية. وبالتالي، تتم كتابة جزء متزايد من البرامج العلمية أيضًا بلغات برمجة نصية عالية المستوى. لهذا السبب، تمت إضافة تسهيلات التشغيل المتبادل مع لغة C إلى Fortran 2003 وتم تحسينها من خلال المواصفة الفنية ISO/IEC 29113، والتي تم دمجها في Fortran 2018 للسماح بالتشغيل المتبادل الأكثر مرونة مع لغات البرمجة الأخرى.
قابلية النقل
كانت قابلية النقل مشكلة في الأيام الأولى لأنه لم يكن هناك معيار متفق عليه - ولا حتى دليل IBM المرجعي - وتنافست شركات الكمبيوتر على التمييز بين عروضها وعروض الآخرين من خلال توفير ميزات غير متوافقة. لقد حسنت المعايير قابلية النقل. قدم معيار عام 1966 قواعد نحوية ودلالات مرجعية، لكن البائعين استمروا في توفير ملحقات غير متوافقة. على الرغم من أن المبرمجين الحذرين كانوا يدركون أن استخدام الملحقات غير المتوافقة تسبب في مشاكل باهظة الثمن في قابلية النقل، وبالتالي كانوا يستخدمون برامج مثل The PFORT Verifier، [64] [65] لم يكن الأمر كذلك حتى بعد معيار عام 1977، عندما نشر المكتب الوطني للمعايير ( NIST الآن) FIPS PUB 69 ، أن المعالجات التي تشتريها حكومة الولايات المتحدة كانت ملزمة بتشخيص ملحقات المعيار. بدلاً من تقديم معالجين، كان لدى كل مُجمِّع في النهاية خيار على الأقل لتشخيص الملحقات. [66] [67]
لم تكن الامتدادات غير المتوافقة هي مشكلة قابلية النقل الوحيدة. بالنسبة للحسابات العددية، من المهم مراعاة خصائص الحساب. وقد عالج فوكس وآخرون هذه المشكلة في سياق معيار عام 1966 بواسطة مكتبة PORT . [65] أصبحت الأفكار الواردة فيه مستخدمة على نطاق واسع، وتم دمجها في النهاية في معيار عام 1990 من خلال وظائف الاستقصاء الجوهرية. أدى التبني الواسع النطاق (الآن عالمي تقريبًا) لمعيار IEEE 754 للحساب الثنائي ذي الفاصلة العائمة إلى إزالة هذه المشكلة بشكل أساسي.
ظل الوصول إلى بيئة الحوسبة (على سبيل المثال، سطر أوامر البرنامج، ومتغيرات البيئة، والشرح النصي لظروف الخطأ) يمثل مشكلة حتى تمت معالجته بواسطة معيار عام 2003.
لقد تم كتابة مجموعات كبيرة من برامج المكتبات التي يمكن وصفها بأنها مرتبطة بشكل فضفاض بالحسابات الهندسية والعلمية، مثل مكتبات الرسومات، بلغة C، وبالتالي فإن الوصول إليها يمثل مشكلة تتعلق بالقدرة على النقل. وقد تم معالجة هذه المشكلة من خلال دمج قابلية التشغيل البيني للغة C في معيار 2003.
من الممكن الآن (ومن السهل نسبيًا) كتابة برنامج محمول بالكامل في Fortran، حتى بدون اللجوء إلى معالج مسبق .
المتغيرات القديمة
حتى تم تطوير معيار Fortran 66، كان كل مُجمِّع يدعم إصدارًا خاصًا به من Fortran. وكان بعضها أكثر انحرافًا عن التيار الرئيسي من غيرها.
لقد وضع أول مُجمِّع للغة فورتران معيارًا عاليًا للكفاءة للكود المُجمَّع. وقد جعل هذا الهدف من الصعب إنشاء مُجمِّع، لذا كان يتم ذلك عادةً بواسطة مصنعي أجهزة الكمبيوتر لدعم مبيعات الأجهزة. وقد ترك هذا مكانة مهمة: مُجمِّعات كانت سريعة ووفرت تشخيصات جيدة للمبرمج (غالبًا ما يكون طالبًا). ومن الأمثلة على ذلك Watfor وWatfiv وPUFFT وعلى نطاق أصغر FORGO وWits Fortran وKingston Fortran 2.
تم تسويق لغة Fortran 5 بواسطة شركة Data General Corp من أوائل السبعينيات إلى أوائل الثمانينيات، لأجهزة الكمبيوتر Nova و Eclipse و MV . كانت تحتوي على مُجمِّع مُحسِّن كان جيدًا جدًا لأجهزة الكمبيوتر الصغيرة في ذلك الوقت. تشبه اللغة إلى حد كبير لغة FORTRAN 66.
تم توزيع لغة FORTRAN V بواسطة شركة Control Data Corporation في عام 1968 لسلسلة CDC 6600. كانت اللغة مبنية على لغة FORTRAN IV. [68]
كما قدمت شركة Univac أيضًا مترجمًا لسلسلة 1100 يُعرف باسم FORTRAN V. وكان أحد المنتجات الفرعية لـ Univac Fortran V هو Athena FORTRAN.
أضافت المتغيرات المحددة التي أنتجها بائعو أجهزة الكمبيوتر العلمية عالية الأداء (على سبيل المثال، Burroughs ، و Control Data Corporation (CDC)، و Cray ، و Honeywell ، وIBM ، و Texas Instruments ، و UNIVAC ) امتدادات إلى Fortran للاستفادة من ميزات الأجهزة الخاصة مثل ذاكرة التخزين المؤقت للتعليمات ، وأنابيب وحدة المعالجة المركزية ، ومصفوفات المتجهات. على سبيل المثال، كان أحد مُجمِّعي FORTRAN من IBM ( H Extended IUP ) يتمتع بمستوى من التحسين يعيد ترتيب تعليمات الكود الآلي لإبقاء وحدات حسابية داخلية متعددة مشغولة في وقت واحد. مثال آخر هو CFD ، وهو متغير خاص من FORTRAN مصمم خصيصًا لجهاز الكمبيوتر العملاق ILLIAC IV ، والذي يعمل في مركز أبحاث Ames التابع لوكالة ناسا . طورت مختبرات أبحاث IBM أيضًا لغة ممتدة تعتمد على FORTRAN تسمى VECTRAN لمعالجة المتجهات والمصفوفات.
كان Object-Oriented Fortran عبارة عن امتداد موجه للكائنات من Fortran، حيث يمكن تجميع عناصر البيانات في كائنات، والتي يمكن إنشاؤها وتنفيذها بالتوازي. كان متاحًا لـ Sun وIris و iPSC وnCUBE، لكنه لم يعد مدعومًا.
لقد اختفت مثل هذه الامتدادات المخصصة للآلات بمرور الوقت أو تم دمج عناصر منها في المعايير الرئيسية. الامتداد الرئيسي المتبقي هو OpenMP ، وهو امتداد متعدد الأنظمة لبرمجة الذاكرة المشتركة. هناك امتداد جديد، Coarray Fortran، يهدف إلى دعم البرمجة المتوازية.
كان FOR TRANSIT هو اسم إصدار مخفف من لغة IBM 704 FORTRAN، والتي تم تنفيذها لجهاز IBM 650، باستخدام برنامج مترجم تم تطويره في كارنيجي في أواخر الخمسينيات. [69] يظهر التعليق التالي في دليل IBM المرجعي ( FOR TRANSIT Automatic Coding System C28-4038، حقوق الطبع والنشر 1957، 1959 بواسطة IBM):
تم تصميم نظام FORTRAN لآلة أكثر تعقيدًا من 650، وبالتالي فإن بعض العبارات الـ 32 الموجودة في دليل مرجع مبرمج FORTRAN غير مقبولة لنظام FOR TRANSIT. بالإضافة إلى ذلك، تمت إضافة بعض القيود على لغة FORTRAN. ومع ذلك، لا تجعل أي من هذه القيود برنامج المصدر المكتوب لـ FOR TRANSIT غير متوافق مع نظام FORTRAN لـ 704.
وكانت العبارات المسموح بها هي:
- عبارات التعيين الحسابية، على سبيل المثال،
a = b GO to nGO TO (n1, n2, ..., nm), iIF (a) n1, n2, n3PAUSESTOPDO n i = m1, m2CONTINUEENDREAD n, listPUNCH n, listDIMENSION V, V, V, ...EQUIVALENCE (a,b,c), (d,c), ...
يمكن استخدام ما يصل إلى عشرة برامج فرعية في برنامج واحد.
كانت عبارات FOR TRANSIT مقتصرة على الأعمدة من 7 إلى 56 فقط. وتم استخدام البطاقات المثقوبة للإدخال والإخراج على جهاز IBM 650. وكانت هناك حاجة إلى ثلاث تمريرات لترجمة الكود المصدر إلى لغة "IT"، ثم تجميع عبارات IT إلى لغة التجميع SOAP، وأخيرًا لإنتاج برنامج الكائن، والذي يمكن بعد ذلك تحميله في الجهاز لتشغيل البرنامج (باستخدام البطاقات المثقوبة لإدخال البيانات، وإخراج النتائج على البطاقات المثقوبة).
كانت هناك نسختان من 650s مع أسطوانة ذاكرة بسعة 2000 كلمة: FOR TRANSIT I (S) وFOR TRANSIT II، وكانت الأخيرة مخصصة للآلات المجهزة بسجلات فهرسة وحسابات عشرية عائمة أوتوماتيكية ( ثنائية الخماسية ). تضمن الملحق أ من الدليل مخططات الأسلاك لقارئ البطاقات/ لوحة التحكم في الثقب في IBM 533 .
اللغات المعتمدة على فورتران
قبل فورتران 77، كان يتم استخدام العديد من المعالجات المسبقة بشكل شائع لتوفير لغة أكثر ودية، مع ميزة إمكانية تجميع الكود المعالج مسبقًا على أي جهاز مزود بمترجم فورتران قياسي. [70] تدعم هذه المعالجات المسبقة عادةً البرمجة المنظمة ، وأسماء المتغيرات التي يزيد طولها عن ستة أحرف، وأنواع البيانات الإضافية، والتجميع الشرطي ، وحتى قدرات الماكرو . تضمنت المعالجات المسبقة الشائعة EFL وFLECS و iftran و MORTRAN وSFtran وS-Fortran و Ratfor و Ratfiv . على سبيل المثال، نفذت EFL وRatfor وRatfiv لغات شبيهة بلغة C ، حيث أخرجت كودًا معالجًا مسبقًا في فورتران 66 القياسية. غالبًا ما تم استخدام معالج PFORT المسبق للتحقق من أن الكود يتوافق مع مجموعة فرعية محمولة من اللغة. على الرغم من التطورات في لغة فورتران، لا تزال المعالجات المسبقة تُستخدم للتجميع الشرطي واستبدال الماكرو.
كان أحد أقدم إصدارات لغة فورتران، والذي تم تقديمه في الستينيات، مستخدمًا بشكل شائع في الكليات والجامعات. تم تطوير لغة WATFOR ودعمها وتوزيعها بواسطة جامعة واترلو ، واستندت إلى حد كبير على لغة فورتران IV. يمكن للطالب الذي يستخدم لغة WATFOR إرسال مهمة فورتران الدفعية الخاصة به، وإذا لم تكن هناك أخطاء نحوية، فسينتقل البرنامج مباشرة إلى التنفيذ. سمح هذا التبسيط للطلاب بالتركيز على بناء الجملة والدلالات الخاصة ببرنامجهم، أو تدفق منطق التنفيذ، بدلاً من التعامل مع لغة التحكم في المهمة (JCL) للإرسال، أو عملية(عمليات) التجميع/التحرير/الربط/التنفيذ المتعاقبة، أو غيرها من التعقيدات في بيئة الحاسوب المركزي/الكمبيوتر الصغير. كان الجانب السلبي لهذه البيئة المبسطة هو أن لغة WATFOR لم تكن خيارًا جيدًا للمبرمجين الذين يحتاجون إلى القدرات الموسعة لمعالج(ات) المضيف(ة)، على سبيل المثال، كانت لغة WATFOR عادةً تتمتع بإمكانية وصول محدودة للغاية إلى أجهزة الإدخال/الإخراج. خلف لغة WATFOR لغة WATFIV وإصداراتها اللاحقة.
برنامج ؛ s = 0 i = 1 ، n ؛ s = s + 1 ؛ توقف i ؛ s = 's' توقف
(برمجة خطية)
تم تطوير LRLTRAN في مختبر لورنس للإشعاع لتوفير الدعم للحسابات المتجهة والتخزين الديناميكي، من بين ملحقات أخرى لدعم برمجة الأنظمة. تضمن التوزيع نظام التشغيل Livermore Time Sharing System (LTSS).
يتضمن معيار Fortran-95 جزءًا اختياريًا رقم 3 يحدد إمكانية التجميع الشرطي الاختيارية . غالبًا ما يشار إلى هذه الإمكانية باسم "CoCo".
لقد قام العديد من مترجمي Fortran بدمج مجموعات فرعية من معالج C المسبق في أنظمتهم.
SIMSCRIPT هو معالج مسبق للغة Fortran مخصص للتطبيق لنمذجة ومحاكاة الأنظمة المنفصلة الكبيرة.
تم تصميم لغة البرمجة F لتكون مجموعة فرعية نظيفة من لغة Fortran 95 التي حاولت إزالة الميزات المكررة وغير المنظمة والمهجورة في Fortran، مثل EQUIVALENCEالعبارة. تحتفظ F بميزات المصفوفة المضافة في Fortran 90، وتزيل عبارات التحكم التي أصبحت قديمة بسبب هياكل البرمجة المنظمة المضافة إلى كل من FORTRAN 77 وFortran 90. يصف مبتكرو F لغة البرمجة F بأنها "لغة برمجة مصفوفة مُجمَّعة ومنظمة ومناسبة بشكل خاص للتعليم والحوسبة العلمية". [71] كانت لغة Fortran 90 الأساسية من Lahey (ELF90) مجموعة فرعية مماثلة.
تعاونت شركة Lahey وشركة Fujitsu لإنشاء Fortran لإطار عمل Microsoft .NET . [72] كما أن Silverfrost FTN95 قادر أيضًا على إنشاء كود .NET. [73]
أمثلة التعليمات البرمجية
يوضح البرنامج التالي تخصيص الذاكرة الديناميكي والعمليات القائمة على المصفوفات، وهما ميزتان تم تقديمهما مع Fortran 90. ومن الجدير بالملاحظة بشكل خاص غياب DOالحلقات و IF/ THENالعبارات في معالجة المصفوفة؛ حيث يتم تطبيق العمليات الحسابية على المصفوفة ككل. ومن الواضح أيضًا استخدام أسماء المتغيرات الوصفية وتنسيق الكود العام الذي يتوافق مع أسلوب البرمجة المعاصر. يحسب هذا المثال متوسط البيانات المدخلة تفاعليًا.
متوسط البرنامج
! اقرأ بعض الأرقام وخذ المتوسط
! كما هو مكتوب، إذا لم تكن هناك نقاط بيانات، فسيتم إرجاع متوسط يساوي صفرًا ! ورغم أن هذا قد لا يكون سلوكًا مرغوبًا، إلا أنه يبقي هذا المثال بسيطًا
لا يوجد ضمنيًا
حقيقي ، قابل للتخصيص :: نقاط (:) عدد صحيح :: عدد_النقاط حقيقي :: متوسط_النقاط ، متوسط_موجب ، متوسط_سالب متوسط_النقاط = 0. متوسط_موجب = 0. متوسط_سالب = 0. كتابة ( * ، * ) "إدخال عدد النقاط للمتوسط:" قراءة ( * ، * ) عدد_النقاط
تخصيص ( نقاط ( عدد_النقاط ))
اكتب ( * , * ) "أدخل النقاط للمتوسط:" اقرأ ( * , * ) نقطة
! خذ المتوسط عن طريق جمع النقاط وقسمتها على عدد النقاط
إذا كان ( عدد النقاط > 0 ) متوسط النقاط = مجموع ( النقاط ) / عدد النقاط
! الآن قم بتكوين المتوسط على النقاط الموجبة والسلبية فقط
إذا ( count ( points > 0. ) > 0 ) positive_average = sum ( points , points > 0. ) / count ( points > 0. ) if ( count ( points < 0. ) > 0 ) negative_average = sum ( points , points < 0. ) / count ( points < 0. )
! اطبع النتيجة على وحدة الإخراج القياسية الطرفية 6
write ( * , '(a,g12.4)' ) 'Average = ' , average_points write ( * , '(a,g12.4)' ) 'Average of positive points = ' , positive_average write ( * , '(a,g12.4)' ) 'Average of negative points = ' , negative_average deallocate ( points ) ! تحرير الذاكرة
متوسط نهاية البرنامج
مزاح
خلال نفس اجتماع لجنة معايير فورتران الذي تم فيه اختيار الاسم "فورتران 77"، تم دمج اقتراح فني ساخر في التوزيع الرسمي الذي يحمل عنوان "الحرف O يعتبر ضارًا ". كان هذا الاقتراح يهدف إلى معالجة الارتباك الذي ينشأ أحيانًا بين الحرف "O" والرقم صفر، من خلال إزالة الحرف من أسماء المتغيرات المسموح بها. ومع ذلك، كانت الطريقة المقترحة هي إزالة الحرف من مجموعة الأحرف بالكامل (وبالتالي الاحتفاظ بـ 48 كعدد للأحرف المعجمية، والتي زادتها النقطتان إلى 49). وقد اعتُبر هذا مفيدًا لأنه سيعزز البرمجة المنظمة، من خلال جعل استخدام GO TOالعبارة سيئة السمعة كما كان من قبل أمرًا مستحيلًا. (سيتم أيضًا إزالة العبارات المزعجة FORMAT.) وقد لوحظ أن هذا "قد يبطل بعض البرامج الموجودة" ولكن معظم هذه البرامج "ربما كانت غير مطابقة، على أي حال". [74] [ مصدر غير موثوق؟ ] [75]
عندما ناقش فريق X3J3 ما إذا كان الحد الأدنى لعدد الرحلات لحلقة DO يجب أن يكون صفرًا أو واحدًا في Fortran 77، اقترح لورين مايسنر حدًا أدنى لعدد الرحلات يبلغ اثنين - معللاً ذلك (بسخرية) بأنه إذا كان أقل من اثنين، فلن يكون هناك سبب لإنشاء حلقة.
عندما تمت إضافة المصفوفات ذات الطول المفترض، كان هناك نزاع حول الحرف المناسب لفصل الحدود العليا والسفلى. في تعليق يفحص هذه الحجج، كتب والت برينارد مقالاً بعنوان "علم الفلك مقابل طب الجهاز الهضمي" لأن بعض المؤيدين اقترحوا استخدام النجمة ("*")، بينما فضل آخرون استخدام النقطتين (":"). [ بحاجة لمصدر ]
أسماء المتغيرات التي تبدأ بالأحرف I–N لها نوع افتراضي من الأعداد الصحيحة، بينما المتغيرات التي تبدأ بأي أحرف أخرى تكون افتراضيًا حقيقية، على الرغم من أن المبرمجين يمكنهم تجاوز الإعدادات الافتراضية بإعلان صريح. [76] أدى هذا إلى النكتة: "في لغة فورتران، الله حقيقي (ما لم يتم إعلانه كـ INTEGER)."
انظر أيضا
- f2c – برنامج لتحويل لغة Fortran 77 إلى لغة C
- F2PY – مكتبة بايثون للبرمجة الرقمية
- FORMAC – نظام الجبر الحاسوبي المبني على لغة FORTRAN
- قائمة مترجمي فورتران
- قائمة المكتبات الرقمية للغة فورتران
- قائمة لغات البرمجة
- تمثيل المصفوفة – طريقة تخزين في ذاكرة الحاسوب
- كود السباغيتي – كود مصدر برمجي ذو بنية ضعيفة
مراجع
- ^ "Chapel spec (Acknowledgements)" (PDF) . Cray Inc. 1 أكتوبر 2015. مؤرشف من الأصل (PDF) في 5 فبراير 2016. تم الاسترجاع في 14 يناير 2016 .
- ^ تقرير عن زيارة لمناقشة لغات البرمجة الشائعة في تشيكوسلوفاكيا وبولندا، 1963، جون أ. جوسدن (محرر)، روجر إي. جاي، جون إل. جونز، جاك إن. ميرنر، كريستوفر جيه. شو
- ^ جون باكوس. "تاريخ فورتران I وII وIII" (PDF) . Softwarepreservation.org. مؤرشف من الأصل (PDF) في 26 يوليو 2007. تم الاسترجاع في 19 نوفمبر 2014 .
- ^ ويلسون، ليزلي ب. (2001). لغات البرمجة المقارنة، الطبعة الثالثة . أديسون ويسلي. ص. 16. ISBN 0-201-71012-9
تم إصدار دليل Fortran I في عام 1956، ولكن لم تتمكن المترجمات الناجحة من تشغيل البرامج بشكل صحيح إلا في عام 1958
. - ^ لوه، يوجين (18 يونيو 2010). "لغة برمجة الحوسبة عالية الأداء المثالية". قائمة انتظار ACM . 8 (6): 30–38. doi :10.1145/1810226.1820518.
- ^ "HPL – A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers" . تم الاسترجاع في 21 فبراير 2015 .
- ^ "س13. ما هي المعايير؟". نظرة عامة – وحدة المعالجة المركزية 2017. المواصفات . تم الاسترجاع في 13 نوفمبر 2019 .
- ^ ويلسون، ليزلي ب. (2001). لغات البرمجة المقارنة، الطبعة الثالثة . أديسون ويسلي. ص. 18. ISBN 0-201-71012-9كانت هناك مشكلة أخرى وهي
عدم وجود معيار للغة Fortran وبالتالي فإن الإصدارات المختلفة قليلاً ... من المرجح أن تفشل عند استخدامها مع مُجمِّع مختلف.
- ^ TIOBE Software BV (مايو 2024). "TIOBE Index". TIOBE.com . TIOBE . تم الاسترجاع في 6 مايو 2024 .
- ^ abcde Backus, John Warner ; Beeber, RJ; Best, Sheldon F.; Goldberg, Richard ; Herrick, Harlan L.; Hughes, RA; Mitchell, LB; Nelson, Robert A.; Nutt, Roy ; Sayre, David ; Sheridan, Peter B.; Stern, Harold; Ziller, Irving (October 15, 1956). Sayre, David (ed.). نظام الترميز التلقائي FORTRAN لجهاز IBM 704 EDPM: دليل مرجعي للمبرمج (PDF) . نيويورك، الولايات المتحدة الأمريكية: قسم العلوم التطبيقية وقسم أبحاث البرمجة، شركة آي بي إم ماشينز كوربوريشن . ص 2، 19-20. مؤرشف من الأصل (PDF) في 4 يوليو 2022. تم الاسترجاع في 4 يوليو 2022 .(2+51+1 صفحة)
- ^ abcdef Backus, John (October–December 1998). "The History of Fortran I, II, and III" (PDF) . IEEE Annals of the History of Computing . 20 (4): 68–78. doi :10.1109/85.728232. مؤرشف من الأصل (PDF) في 3 مارس 2016. تم الاسترجاع في 17 يونيو 2020 .[1][2]
- ^ "FORTRAN: The Pioneering Programming Language". IBM . 7 مارس 2012. تم الاسترجاع في 19 يوليو 2017 .
- ^ "FORTRAN". موسوعة بريتانيكا . 14 يونيو 2021. تم الاسترجاع في 19 يوليو 2021 .
- ^ تشابمان، ستيفن جيه. (2018). فورتران للعلماء والمهندسين (الطبعة الرابعة). نيويورك : ماكجرو هيل للتعليم . ص. 13. ISBN 978-0-07-338589-1.
- ^ كانت "مجموعة أحرف Fortran" التي حددها معيار FORTRAN 77 هي مجموعة الأحرف الدنيا التي كان من المطلوب من المترجمين المتوافقين مع المعيار دعمها؛ في الممارسة العملية، دعم العديد من مترجمي FORTRAN 77 مجموعة أحرف ASCII الكاملة .
- ^ ab JW Backus ؛ RJ Beeber؛ S. Best؛ R. Goldberg؛ LM Haibt ؛ HL Herrick؛ RA Nelson؛ D. Sayre ؛ PB Sheridan؛ H. Stern؛ L. Ziller؛ RA Hughes؛ R. Nutt (فبراير 1957). نظام الترميز التلقائي FORTRAN (PDF) . المؤتمر الغربي المشترك للحاسوب. ص 188-198. doi :10.1145/1455567.1455599.
- ^ ميندل ، ديفيد (2008). أبولو الرقمية . كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا. ص. 99. ردمك 978-0-262-13497-2. JSTOR j.ctt5hhn02. OCLC 228031739.
- ^ Padua, David (January–February 2000). "The Fortran I Compiler" (PDF) . Computing in Science & Engineering . 2 (1): 70–75. Bibcode :2000CSE.....2a..70P. doi :10.1109/5992.814661. مؤرشف من الأصل (PDF) في 17 يونيو 2020.
كان مُجمِّع Fortran I أول مشروع رئيسي في تحسين الكود. لقد تناول مشاكل ذات أهمية حاسمة كان حلها العام محورًا بحثيًا مهمًا في تكنولوجيا المُجمِّع لعدة عقود. يمكن للعديد من التقنيات الكلاسيكية لتحليل المُجمِّع وتحسينه أن ترجع أصولها وإلهامها إلى مُجمِّع Fortran I.
- ^ Brian Bergstein (20 مايو 2007). "وفاة مبتكر لغة فورتران جون باكوس". MSNBC . تم الاسترجاع في 29 أكتوبر 2018 .
- ^ "FORTRAN – أول لغة برمجة للحسابات العددية". مدونة SciHi . 15 أكتوبر 2019.
- ^ Haines, LH (1965). "Serial compilation and the 1401 FORTRAN compiler". IBM Systems Journal . 4 (1): 73–80. doi :10.1147/sj.41.0073.
- ^ لي، جون إيه إن (1967). تشريح المترجم . فان نوستراند راينهولد.
- ^ مواصفات فورتران وإجراءات التشغيل، IBM 1401 (PDF) . IBM. C24-1455-2. مؤرشف من الأصل (PDF) في 23 سبتمبر 2017.
- ^ "الموضوع: GOTRAN على حزمة تخزين القرص IBM 1316 (الرقم التسلسلي K7402)". مؤرشف من الأصل في 21 فبراير 2006. تم الاسترجاع في 3 مارس 2006 .
- ^ نظام الترميز التلقائي FORTRAN لجهاز IBM 704 EDPM: دليل التشغيل الأولي (PDF) . قسم أبحاث البرمجة، شركة آي بي إم للآلات التجارية. 8 أبريل 1957. ص 6-37. مؤرشف من الأصل (PDF) في 26 فبراير 2014.
- ^ أرمستيد، بيتي جو (21 يناير 2015). "سنواتي في وكالة ناسا" (PDF) . متحف دنفر للطبيعة والعلوم . مؤرشف من الأصل (PDF) في 24 ديسمبر 2019. تم الاسترجاع في 15 يونيو 2019 .
- ^ دليل مرجعي، نظام معالجة البيانات IBM 7090 (PDF) . 1961. A22-6528-3. مؤرشف من الأصل (PDF) في 1 ديسمبر 2008.
- ^ Fortran II General Information Manual (PDF) . 1963. مؤرشف من الأصل (PDF) في 26 أبريل 2005. تم الاسترجاع في 19 نوفمبر 2014 .
- ^ دليل مرجعي، FORTRAN II لنظام معالجة البيانات IBM 704 (PDF) . 1958. C28-6000-2. مؤرشف من الأصل (PDF) في 30 أكتوبر 2005.
- ^ "Ibibilio.org". Ibiblio.org . تم الاسترجاع في 15 سبتمبر 2014 .
- ^ مواصفات لغة فورتران الرابع، ومواصفات البرنامج، وإجراءات التشغيل، آي بي إم 1401، و1440، و1460 (ملف PDF) . آي بي إم. أبريل 1966. C24-3322-2. مؤرشف من الأصل (ملف PDF) في 23 سبتمبر 2017.
- ^ McCracken, Daniel D. (1965). "Preface" . دليل برمجة FORTRAN IV . نيويورك: Wiley. ص. 11. رقم ISBN 978-0-471-58281-6.
- ^ "قائمة تطبيقات فورتران 1957 – 1967". مجموعة متخصصي فورتران BCS . حوليات معهد مهندسي الكهرباء والإلكترونيات. 2017. تم الاسترجاع في 17 أكتوبر 2017 .
- ^ IBM System/360 Model 50 Functional Characteristics (PDF) . IBM. 1967. A22-6898-1. مؤرشف (PDF) من الأصل في 29 أكتوبر 2021 – عبر bitsavers.
- ^ "دليل مرجعي لمبرمجي DECSYSTEM-10 FORTRAN IV (F40)" (PDF) . Github . Digital Equipment Corporation . تم الاسترجاع في 15 أبريل 2022 .
- ^ ab "FORTRAN IV". WorldCat.org . تم الاسترجاع في 10 ديسمبر 2023 .
- ^ MIL-STD 1753 - FORTRAN، ملحق وزارة الدفاع للمعيار الوطني الأمريكي X3.9-1978. مكتب الطباعة الحكومي للولايات المتحدة . 9 نوفمبر 1978. تم الاسترجاع في 21 أبريل 2024 .
- ^ IEEE 1003.9-1992 – معيار IEEE لتكنولوجيا المعلومات – واجهات لغة POSIX(R) FORTRAN 77 – الجزء 1: الربط لواجهة برمجة تطبيقات النظام (API). IEEE . تم الاسترجاع في 24 نوفمبر 2018 .
- ^ الملحق ب.1
- ^ "مرجع فورتران 95". Gnu.Org . تم الاسترجاع في 10 مايو 2014 .
- ^ ليونيل، ستيف (30 ديسمبر 2013). "دكتور فورتران في "إنه عالم فورتران الحديث"". مجموعة مناقشة منتدى فورتران التابعة لشركة Intel (كانت DEC) . Intel . تم الاسترجاع في 11 أبريل 2022 .
- ^ "Fortran 2003– Last Working Draft". Gnu.Org . تم الاسترجاع في 10 مايو 2014 .
- ^ "WG5 تكمل معالجة Fortran 2003 وTR". nag.co.uk . 14 مايو 2004. مؤرشف من الأصل في 5 أغسطس 2004. تم الاسترجاع في 3 أبريل 2023 .. يمكن أيضًا تنزيله كملف PDF على "الميزات الجديدة لـ Fortran 2003" (PDF) . مؤرشف (PDF) من الأصل في 15 يناير 2018. تم الاسترجاع في 3 أبريل 2023 .
- ^ "N1836, ملخص التصويت/جدول الردود على ISO/IEC FDIS 1539-1, تكنولوجيا المعلومات – لغات البرمجة – فورتران – الجزء 1: لغة الأساس" (PDF) . مؤرشف من الأصل (PDF) في 15 يناير 2018.
- ^ "Fortran 2008 – Last Working Draft" (PDF) . Gnu.Org. مؤرشف من الأصل (PDF) في 12 مايو 2014 . تم الاسترجاع في 10 مايو 2014 .
- ^ N1830، تكنولوجيا المعلومات – لغات البرمجة – فورتران – الجزء الأول: اللغة الأساسية [3] [ رابط معطل ]
- ^ ISO/IEC TS 29113:2012 – تكنولوجيا المعلومات – مزيد من التوافق بين لغة Fortran ولغة C.
- ^ "مسودة المواصفة الفنية (TS) 29113" (PDF) . wg5-fortran.org . مؤرشف من الأصل (PDF) في 15 يناير 2018.
- ^ "دكتور فورتران في كتاب "ثمانية عشر هو الخمسة عشر الجديد"". Software.intel.com . تم الاسترجاع في 20 نوفمبر 2017 .
- ^ "Fortran 2018". ISO . تم الاسترجاع في 30 نوفمبر 2018 .
- ^ "مزيد من التوافق مع C" (PDF) . ISO. مؤرشف من الأصل (PDF) في 1 ديسمبر 2017. تم الاسترجاع في 20 نوفمبر 2017 .
- ^ "الميزات المتوازية الإضافية في فورتران". ISO . تم الاسترجاع في 20 نوفمبر 2017 .
- ^ "الميزات الجديدة في Fortran 2015". ISO . تم الاسترجاع في 23 يونيو 2017 .
- ^ "دكتور فورتران في ""باب واحد يغلق""". Software.intel.com . تم الاسترجاع في 21 سبتمبر 2015 .
- ^ "Doctor Fortran Goes Dutch: Fortran 2015". Software.intel.com . تم الاسترجاع في 19 نوفمبر 2014 .
- ^ وثيقة تفسير فورتران 2018 (PDF) . 9 أكتوبر 2018.
- ^ "Fortran 2023". wg5-fortran.org . تم الاسترجاع في 30 نوفمبر 2023 .
- ^ Kemeny, John G.; Kurtz, Thomas E. (11 أكتوبر 1968). "Dartmouth Time-Sharing". Science . 162 (3850): 223–228. Bibcode :1968Sci...162..223K. doi :10.1126/science.162.3850.223. PMID 5675464.
- ^ فيليبس، لي (8 مايو 2014). "مستقبل الحوسبة العلمية: هل يمكن لأي لغة برمجة أن تتفوق على وحش الخمسينيات؟". آرس تكنيكا . تم الاسترجاع في 8 مايو 2014 .
- ^ Pasachoff, Jay M. (أبريل 1984). "العلماء: FORTRAN مقابل Modula-2". BYTE (رسالة). ص. 404. تم الاسترجاع في 6 فبراير 2015 .
- ^ جالبرين، بوريس (1993). "26". محاكاة الدوامات الكبيرة للتدفقات الهندسية والجيوفيزيائية المعقدة . لندن: كامبريدج. ص 573. ISBN 978-0-521-43009-8.
- ^ براندت، سيجموند (1970). الأساليب الإحصائية والحسابية في تحليل البيانات . شركة شمال هولندا للنشر. ص. المقدمة. رقم ISBN 0-7204-2033-4.
- ^ Curcic, Milan (24 نوفمبر 2020). Modern Fortran: Building efficient parallel applications. Simon and Schuster. ISBN 978-1-61729-528-7.
- ^ Gaffney, PW; Wooten, JW (May 1, 1980). Methods to sure the standardization of FORTRAN software (Report). Oak Ridge National Laboratory. OSTI 5361454.
PFORT ... Library ...
- ^ ab PA Fox (1977). "Port — A portable mathematical subroutine library". مكتبة برامج فرعية رياضية محمولة . مذكرات محاضرات في علوم الكمبيوتر. المجلد 57. ص 165-177. doi :10.1007/3-540-08446-0_42. ISBN 978-3-540-08446-4.
PORT ... مكتوب بلغة (PFORT) .. ANS Fortran
- ^ Whitten, Douglas E.; Demaine, Paul AD (1975). "A machine and configuration independent Fortran: Portable Fortran {PFortran}". IEEE Transactions on Software Engineering . SE-1 (1). معهد مهندسي الكهرباء والإلكترونيات (IEEE): 111–124. doi :10.1109/tse.1975.6312825. ISSN 0098-5589. S2CID 16485156.
- ^ "قضايا قابلية النقل"
.. يناقش .. قابلية نقل .. فورتران
- ^ Healy, MJR (1968). "Towards FORTRAN VI". Advanced scientific Fortran by CDC . CDC. ص. 169–172. مؤرشف من الأصل في 5 يوليو 2009. تم الاسترجاع في 10 أبريل 2009 .
- ^ Perlis, AJ; Smith, JW; Van Zoeren, HR Internal Translator (IT) A Compiler for the IBM 650 (PDF) . مركز الحوسبة، معهد كارنيجي للتكنولوجيا. مؤرشف من الأصل (PDF) في 2 أكتوبر 2012.
- ^ مايسنر، لورين (1 سبتمبر 1975). "حول توسيع هياكل التحكم في فورتران لتسهيل البرمجة المنظمة". إشعارات ACM SIGPLAN . acm.org.
- ^ "الصفحة الرئيسية للغة البرمجة F". Fortran.com. مؤرشف من الأصل في 9 يناير 2015. تم الاسترجاع في 19 نوفمبر 2014 .
- ^ "Fortran for .NET Language System". مؤرشف من الأصل في 18 أكتوبر 2014.
- ^ "FTN95: Fortran 95 for Windows". Silverfrost.com . تم الاسترجاع في 19 نوفمبر 2014 .
- ^ توزيع X3J3 بعد الاجتماع الذي عقد في مختبر بروكهافن الوطني في نوفمبر 1976.
- ^ "محو O". Computer Weekly . 3 مارس 1977.
- ^ قواعد كتابة البيانات (مرجع لغة فورتران 77) . تم الاسترجاع في 29 سبتمبر 2016 .
قراءة إضافية
- معايير اللغة
- ANSI x3.9-1966. معيار فورتران الأمريكي (PDF) . المعهد الوطني الأمريكي للمعايير. مؤرشف من الأصل (PDF) في 15 مايو 2011. تم الاسترجاع في 5 مايو 2010 .ويعرف بشكل غير رسمي باسم FORTRAN 66.
- ANSI x3.9-1978. المعيار الوطني الأمريكي – لغة البرمجة FORTRAN. المعهد الوطني الأمريكي للمعايير. مؤرشف من الأصل في 29 أكتوبر 2013. تم الاسترجاع في 11 ديسمبر 2007 .وتعرف أيضًا باسم ISO 1539–1980، وتعرف بشكل غير رسمي باسم FORTRAN 77.
- ANSI X3.198-1992 (R1997) / ISO/IEC 1539:1991. المعيار الوطني الأمريكي – لغة البرمجة Fortran Extended. المعهد الوطني الأمريكي للمعايير / ISO/IEC. مؤرشف من الأصل في 1 مايو 2002.ويعرف بشكل غير رسمي باسم Fortran 90.
- ISO/IEC 1539-1:1997. تكنولوجيا المعلومات – لغات البرمجة – فورتران – الجزء 1: اللغة الأساسية (PDF) . مؤرشف من الأصل (PDF) في 18 أغسطس 2011. تم الاسترجاع في 13 ديسمبر 2007 .يُعرف بشكل غير رسمي باسم Fortran 95. ويتكون هذا المعيار من جزأين آخرين. وقد تم اعتماد الجزء الأول رسميًا من قبل ANSI.
- ISO/IEC 1539-1:2004. تكنولوجيا المعلومات – لغات البرمجة – فورتران – الجزء 1: اللغة الأساسية (PDF) . مؤرشف من الأصل (PDF) في 31 يوليو 2023.المعروف بشكل غير رسمي باسم Fortran 2003.
- ISO/IEC 1539-1:2010 (المسودة النهائية للمعيار الدولي). تكنولوجيا المعلومات – لغات البرمجة – فورتران – الجزء 1: لغة الأساس (PDF) .[ رابط دائم ميت ] يُعرف بشكل غير رسمي باسم Fortran 2008.
- المعايير ذات الصلة
- نايز، ويلفريد (أكتوبر 1981). "مسودة معيارية للغة فورتران الصناعية في الوقت الحقيقي" . إشعارات ACM SIGPLAN . 16 (7): 45-60. doi : 10.1145/947864.947868 . ISSN 0362-1340. S2CID 8662381.
- ISO 8651-1:1988 أنظمة معالجة المعلومات – الرسوميات الحاسوبية – روابط لغة نظام النواة الرسومية (GKS) – الجزء 1: لغة فورتران. جنيف، سويسرا: ISO . 1988.
- مواد مرجعية أخرى
- معيار ECMA للغة FORTRAN (PDF) . رابطة مصنعي الكمبيوتر الأوروبيين. أبريل 1965. مؤرشف (PDF) من الأصل في 10 مايو 2008. تم الاسترجاع في 17 نوفمبر 2014 .
- دليل مرجعي للغة FORTRAN 77 4.0 (PDF) . Sun Microsystems, Inc. 1995. مؤرشف من الأصل (PDF) في 5 يناير 2012 . تم الاسترجاع في 17 نوفمبر 2014 .
- "نموذج ترميز فورتران" (PDF) . آي بي إم . مؤرشف من الأصل (PDF) في 8 يونيو 2015 . تم الاسترجاع في 17 نوفمبر 2014 .
- IBM System/360 and System/370 Fortran IV Language (PDF) . IBM . مايو 1974. مؤرشف من الأصل (PDF) في 6 أبريل 2011 . تم الاسترجاع في 17 نوفمبر 2014 .
- جويرز، مايكل (2014). "بطاقة مرجعية حديثة لفورتران" (PDF) . مؤرشف من الأصل (PDF) في 14 ديسمبر 2014. تم الاسترجاع في 14 ديسمبر 2014 .
- كتب
- آدامز، جين سي ؛ برينرد، والتر إس؛ هندريكسون، ريتشارد إيه؛ ماين، ريتشارد إي؛ مارتن، جين تي؛ سميث، برايان تي (2009). دليل فورتران 2003 (الطبعة الأولى). سبرينغر . رقم ISBN 978-1-84628-378-9.
- أكين، جي إي (2003). البرمجة الموجهة للكائنات عبر فورتران 90/95 . كامبريدج، نيويورك: مطبعة جامعة كامبريدج. رقم ISBN 978-0-521-52408-7. OCLC 49906306.
- أرين، ماركوس (2012)، "فورتران الحديثة في الممارسة"، مطبعة جامعة كامبريدج، ISBN 978-1-13908479-6.
- Brainerd, WS; Goldberg, CH; Adams, JC (1996). Programmer's Guide to Fortran 90 (3rd ed.). Springer. ISBN 978-0-387-94570-5.
- براينرد، والتر (2015). دليل برمجة فورتران 2008. لندن: سبرينغر. ISBN 978-1-4471-6758-7. OCLC 920530344.
- شابمان، ستيفن جيه. (2018). فورتران للعلماء والمهندسين (الطبعة الرابعة). نيويورك : ماكجرو هيل للتعليم . ص. xxiv + 1024. ISBN 978-0-07-338589-1.
- تشيفرز، إيان؛ سلايثولم، جين (2018). مقدمة في البرمجة باستخدام فورتران (الطبعة الرابعة). سبرينغر. رقم ISBN 978-3-319-75501-4.
- كليرمان، نورمان (2012). فورتران الحديثة: الأسلوب والاستخدام . نيويورك: مطبعة جامعة كامبريدج. ISBN 978-0-521-51453-8. OCLC 776162717.
- كورسيك، ميلان (2020). فورتران الحديثة: بناء تطبيقات موازية فعالة . شيلتر آيلاند، نيويورك: شركة مانينغ للنشر. رقم ISBN 978-1-61729-528-7. OCLC 1256806439.
- إليس، تي إم آر؛ فيليبس، إيفور ر؛ لاهي، توماس م. (1994). برمجة فورتران 90 (الطبعة الأولى). أديسون ويسلي. رقم ISBN 978-0-201-54446-6.
- Etter, DM (1990). Structured FORTRAN 77 for Engineers and Scientific (الطبعة الثالثة). The Benjamin/Cummings Publishing Company, Inc. ISBN 978-0-8053-0051-2.
- Kerrigan, JF (1993). الانتقال إلى Fortran 90 (الطبعة الأولى). O'Reilly & Associates, Inc. ISBN 1-56592-049-X.
- كوبفرشميد، مايكل (2002). فورتران الكلاسيكية: البرمجة للتطبيقات الهندسية والعلمية . مارسيل ديكر (دار نشر سي آر سي). رقم ISBN 978-0-8247-0802-3.(المواد التكميلية)
- لورينزو، مارك جونز (2019). تجريد الآلة: تاريخ لغة البرمجة فورتران (ترجمة الصيغ) . نُشر بشكل مستقل. رقم ISBN 978-1082395949.
- Loukides, Mike (1990). Unix for FORTRAN Programmers . Sebastopol, CA: O'Reilly & Associates, Inc. ISBN 0-937175-51-X.
- مكراكين، دانييل د. (1961). دليل برمجة فورتران . نيويورك: وايلي. LCCN 61016618.
- نيهوف، لاري؛ سانفورد ليستما (1995). فورتران 77 للمهندسين والعلماء مع مقدمة إلى فورتران 90 (الطبعة الرابعة). برنتيس هول . ISBN 978-0-13-363003-9.
- Page, Clive G. (1988). Professional Programmer's Guide to Fortran77 (7 يونيو 2005، الطبعة). لندن: Pitman. ISBN 978-0-273-02856-7تم الاسترجاع في 4 مايو 2010 .
- بريس، ويليام هـ. (1996). وصفات رقمية في فورتران 90: فن الحوسبة العلمية المتوازية. كامبريدج، المملكة المتحدة: مطبعة جامعة كامبريدج. رقم ISBN 978-0-521-57439-6.
- Ruetsch, Gregory; Fatica, Massimiliano (2013). CUDA Fortran for scientist and Engineers (الطبعة الأولى). Elsevier . ص. 338. ISBN 9780124169708.
- سلايثوم، جين؛ تشيفرز، إيان ديفيد (1990). فورتران التفاعلية 77: نهج عملي. أجهزة الكمبيوتر وتطبيقاتها (الطبعة الثانية). تشيتشيستر: إي. هوروود. رقم ISBN 978-0-13-466764-5. مؤرشف من الأصل في 12 مارس 2014 . استرجاع 12 مارس 2014 .
- المقالات
- ألين، إف إي (سبتمبر 1981). "تاريخ تقنية معالج اللغة في آي بي إم". مجلة آي بي إم للأبحاث والتطوير . 25 (5): 535-548. doi :10.1147/rd.255.0535. S2CID 14149353.
- JW Backus ؛ RJ Beeber؛ S. Best؛ R. Goldberg؛ LM Haibt ؛ HL Herrick؛ RA Nelson؛ D. Sayre ؛ PB Sheridan؛ H. Stern؛ L. Ziller؛ RA Hughes؛ R. Nutt (فبراير 1957). نظام الترميز التلقائي FORTRAN (PDF) . المؤتمر الغربي المشترك للحاسوب. ص 188-198. doi :10.1145/1455567.1455599.
- تشيفرز، إيان د.؛ سلايثولم، جين (2022). "دعم المترجم لمعايير فورتران 2008 و2018".
- بيجوت، ديرمويد (2006). "FORTRAN – Backus et al high-level compiler (Computer Language)". موسوعة لغات الحاسوب . جامعة مردوخ . مؤرشف من الأصل في 8 أكتوبر 2009. تم الاسترجاع في 5 مايو 2010 .
- روبرتس، مارك إل.؛ جريفثس، بيتر دي. (1985). "اعتبارات التصميم لبرنامج IBM Personal Computer Professional FORTRAN، وهو برنامج تجميع محسن". مجلة أنظمة IBM . 24 (1): 49–60. doi :10.1147/sj.241.0049.
روابط خارجية
- ISO/IEC JTC1/SC22/WG5—الموطن الرسمي لمعايير Fortran
- مستندات معايير فورتران—معايير فورتران
- fortran-lang.org (2020).
- تاريخ لغة فورتران وفورتران II - متحف تاريخ الكمبيوتر
- فالمر نورود وآخرون: دورة دراسية ذاتية في برمجة فورتران - المجلد الأول - كتاب مدرسي، شركة علوم الكمبيوتر إل سيغوندو، كاليفورنيا (أبريل 1970). ناسا (N70-25287).
- فالمر نورود، وشيلدوم بليشر، ومارثا هورتون: دورة دراسية ذاتية في برمجة فورتران - المجلد الثاني - كتاب عمل، ناسا CR-1478 (أبريل 1970)، ناسا (N70-25288).
- مقدمة إلى لغة البرمجة فورتران، بقلم راينهولد بادر، نيسارج باتيل، مركز لايبنتس للحوسبة الفائقة.
- برنامج تعليمي عن الكواراي
- فيكتور إيجخوت: مقدمة إلى البرمجة العلمية بلغة C++17/Fortran2008، فن الحوسبة عالية الأداء، المجلد 3 (ملف PDF) محفوظ في 5 فبراير 2023، على موقع Wayback Machine
