فورتران
Fortran ( / ˈ f ɔːr t r æ n / ; formerly FORTRAN ) هي لغة برمجة من الجيل الثالث ، مترجمة ، وإجرائية مصممة للحساب العددي والحوسبة العلمية .
طُوِّرت لغة فورتران في الأصل من قِبَل شركة آي بي إم ، ونُشِرَ دليلها المرجعي عام ١٩٥٦؛ [ ٣ ] إلا أن أولى المترجمات لم تبدأ بإنتاج شفرة دقيقة إلا بعد عامين. [ ٤ ] كُتِبَت برامج حاسوبية بلغة فورتران لدعم التطبيقات العلمية والهندسية، مثل التنبؤ العددي بالطقس ، وتحليل العناصر المحدودة ، وديناميكيات الموائع الحسابية ، وفيزياء البلازما ، والجيوفيزياء ، والفيزياء الحاسوبية ، وعلم البلورات ، والكيمياء الحاسوبية . وهي لغة شائعة الاستخدام في الحوسبة عالية الأداء [ ٥ ] ، وتُستَخدَم في البرامج التي تُقَيِّم وتُصَفِّذ أسرع الحواسيب العملاقة في العالم . [ ٦ ] [ ٧ ]
تطورت لغة فورتران عبر العديد من الإصدارات واللهجات. وكان أهم إصدارين مبكرين هما فورتران 2 وفورتران 4. [ 8 ] في عام 1966، وضع المعهد الوطني الأمريكي للمعايير (ANSI) معيارًا لفورتران للحد من انتشار المترجمات التي تستخدم صيغًا مختلفة قليلاً. [ 9 ] أضافت الإصدارات اللاحقة دعمًا لنوع بيانات الأحرف، والبرمجة الهيكلية (فورتران 77)، وبرمجة المصفوفات ، والبرمجة المعيارية ، والبرمجة العامة (فورتران 90)، والحوسبة المتوازية ( فورتران 95 )، والبرمجة كائنية التوجه (فورتران 2003)، والبرمجة المتزامنة (فورتران 2008).

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

في أواخر عام 1953، قدم جون دبليو باكوس اقتراحًا إلى رؤسائه في شركة IBM لتطوير بديل أكثر عملية للغة التجميع لبرمجة حاسوبهم المركزي IBM 704. [ 11 ] : 69 تألف فريق باكوس التاريخي للغة فورتران من المبرمجين ريتشارد غولدبرغ، وشيلدون إف بيست، وهارلان هيريك، وبيتر شيريدان، وروي نوت ، وروبرت نيلسون ، وإيرفينغ زيلر، وهارولد ستيرن، ولويس هايبت ، وديفيد ساير . [ 19 ] تضمنت مفاهيمها تسهيل إدخال المعادلات في الحاسوب، وهي فكرة طورها ج. هالكومب لانينغ وعُرضت في نظام لانينغ وزيرلر عام 1952. [ 20 ] وكما هو الحال مع التطورات الأخرى في بدايات الحوسبة، كانت هناك عدة جهود متوازية ومستقلة في هذا الاتجاه، مع أمثلة أخرى للغات بروتو-فورتران، بما في ذلك نظام A-0 لجهاز UNIVAC I ولغته اللاحقة MATH-MATIC ، تحت إشراف غريس موراي هوبر ؛ والعمل على لغة البرمجة عالية المستوى الذي طوره هاينز روتشاوزر لحاسوب Zuse 4 ؛ وعمل Mark 1 Autocode الذي قام به آر. إيه. بروكر لجهاز Ferranti Mercury . [ 15 ]

اكتملت مسودة مواصفات نظام ترجمة الصيغ الرياضية لشركة IBM بحلول نوفمبر 1954. [ 11 ] : 71 ظهر أول دليل استخدام للغة فورتران في أكتوبر 1956، [ 10 ] [ 11 ] : 72 مع تسليم أول مترجم للغة فورتران في أبريل 1957. [ 11 ] : 75 أنتجت فورتران شفرة برمجية فعالة بما يكفي لمبرمجي لغة التجميع لقبولها كبديل للغة برمجة عالية المستوى . [ 8 ]
قال جون باكوس خلال مقابلة أجراها عام 1979 مع مجلة "ثينك " الخاصة بموظفي شركة آي بي إم: "لقد جاء جزء كبير من عملي نتيجة لكسلي. لم أكن أحب كتابة البرامج، ولذلك، عندما كنت أعمل على جهاز آي بي إم 701 ، وأكتب برامج لحساب مسارات الصواريخ، بدأت العمل على نظام برمجة لتسهيل كتابة البرامج." [ 21 ]
اعتمد العلماء لغة فورتران على نطاق واسع لكتابة البرامج التي تتطلب معالجة حسابية مكثفة، مما شجع مطوري المترجمات على إنتاج مترجمات قادرة على توليد شفرة أسرع وأكثر كفاءة. وقد جعل تضمين نوع بيانات الأعداد المركبة في اللغة لغة فورتران مناسبة بشكل خاص للتطبيقات التقنية مثل الهندسة الكهربائية. [ 22 ]
بحلول عام 1960، كانت نسخ من لغة فورتران متاحة لأجهزة الكمبيوتر IBM 709 و 650 و 1620 و 7090 . والجدير بالذكر أن ازدياد شعبية فورتران حفّز شركات تصنيع أجهزة الكمبيوتر المنافسة على توفير مترجمات فورتران لأجهزتها، حتى بلغ عدد مترجمات فورتران أكثر من 40 مترجمًا بحلول عام 1963. وقد انتشرت هذه اللغة على نطاق واسع في صناعة الحوسبة، حتى أنه بحلول ذلك الوقت، تم توزيع أكثر من 220,000 دليل استخدام لفورتران بمختلف أنواعها. [ 15 ]
تم توفير لغة فورتران لحاسوب IBM 1401 بواسطة مُترجم مبتكر ذي 63 مرحلة، يعمل بالكامل في ذاكرته الأساسية التي لا تتجاوز 8000 حرف (ستة بتات). كان بالإمكان تشغيل المُترجم من شريط أو من مجموعة بطاقات 2200، دون الحاجة إلى أي مساحة تخزين إضافية على الشريط أو القرص. كان يحتفظ بالبرنامج في الذاكرة ويُحمّل طبقات إضافية تُحوّله تدريجيًا، في مكانه، إلى صيغة تنفيذية، كما وصفها هاينز. [ 23 ] أُعيد نشر هذه المقالة، بعد تحريرها، في كلتا طبعتي كتاب "تشريح المُترجم" [ 24 ] وفي دليل IBM "مواصفات فورتران وإجراءات التشغيل، IBM 1401". [ 25 ] لم تكن الصيغة التنفيذية لغة آلة بالكامل ؛ بل كانت تُفسّر العمليات الحسابية ذات الفاصلة العائمة، والفهرسة، والإدخال/الإخراج، ومراجع الدوال، مُسبقةً بذلك لغة باسكال P-code من جامعة كاليفورنيا في سان دييغو بعقدين من الزمن. كانت لغة GOTRAN ، وهي نسخة مبسطة ومفسرة من لغة FORTRAN I (تحتوي على 12 نوعًا فقط من التعليمات بدلًا من 32)، متاحةً لعمليات "التحميل والتشغيل" (على الأقل لجهاز IBM 1620 المبكر ). [ 26 ] أما لغة Fortran الحديثة، ومعظم الإصدارات اللاحقة، فهي مترجمة بالكامل، كما هو الحال مع لغات البرمجة عالية الأداء الأخرى.
تزامن تطوير لغة فورتران مع التطور المبكر لتقنية المترجمات ، وقد حفزت الحاجة إلى توليد شفرة برمجية فعالة لبرامج فورتران العديد من التطورات في نظرية وتصميم المترجمات . [ 27 ] في الواقع، كان مترجم فورتران من أكثر البرامج تعقيدًا على الإطلاق في ذلك الوقت، وقد استخدمه فريق اختبار المنتجات في شركة IBM في بوكيبسي، نيويورك ، كجزء من اختبارات القبول لأجهزة الكمبيوتر حديثة الصنع. [ 15 ]
فورتران
احتوى الإصدار الأولي من لغة 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 - مقارنة المُجمِّع مع التخزين) المتوفرة في معالج 704 (لكنها لم تكن قابلة للتنفيذ بسهولة باستخدامها). كانت هذه العبارة الطريقة الوحيدة لمقارنة الأرقام - عن طريق اختبار الفرق بينهما، مع ما يترتب على ذلك من خطر حدوث تجاوز. وقد تم التغلب على هذا القصور لاحقًا من خلال الإمكانيات "المنطقية" التي تم تقديمها في لغة فورتران 4.
FREQUENCYاستُخدمت هذه العبارة في الأصل (واختياريًا) لتحديد احتمالات التفرع لحالات التفرع الثلاث IFللعبارة الحسابية. كما يمكن استخدامها للإشارة إلى عدد التكرارات DOالتي قد تُنفذها حلقة تكرارية. استخدم أول مُترجم للغة فورتران هذا الترجيح لإجراء محاكاة مونت كارلو للكود المُولّد أثناء الترجمة ، واستُخدمت نتائجها لتحسين موضع الكتل الأساسية في الذاكرة - وهو تحسين متطور للغاية في ذلك الوقت. تم توثيق تقنية مونت كارلو في ورقة باكوس وآخرون حول هذا التطبيق الأصلي، بعنوان " نظام الترميز التلقائي للغة فورتران" .
الوحدة الأساسية للبرنامج هي الكتلة الأساسية؛ وهي جزء من البرنامج له نقطة دخول واحدة ونقطة خروج واحدة. يهدف القسم 4 إلى إعداد جدول الكتل السابقة (جدول PRED) للقسم 5، والذي يسرد الكتل الأساسية ويُدرج لكل كتلة أساسية جميع الكتل الأساسية التي يمكن أن تكون سابقتها المباشرة في التدفق، بالإضافة إلى التكرار المطلق لكل رابط من هذه الروابط. يتم الحصول على هذا الجدول بتشغيل البرنامج مرة واحدة بطريقة مونت كارلو، حيث يتم تحديد نتيجة عمليات النقل الشرطية الناتجة عن عبارات IF وعبارات GO TO المحسوبة بواسطة مولد أرقام عشوائية مُرجّح بشكل مناسب وفقًا لعبارات FREQUENCY المُقدمة. [ 19 ]
كان أول مُترجم للغة فورتران يُبلغ عن معلومات التشخيص عن طريق إيقاف البرنامج عند اكتشاف خطأ، وعرض رمز الخطأ على شاشته. وكان بإمكان المبرمج البحث عن هذا الرمز في جدول رسائل الخطأ في دليل المستخدم، والذي يُقدم له وصفًا موجزًا للمشكلة. [ 10 ] : ص 19-20 [ 28 ] لاحقًا، تم دمج روتين فرعي لمعالجة الأخطاء، مثل القسمة على صفر، والذي طورته وكالة ناسا، [ 29 ] حيث يُعلم المستخدمين بسطر الكود الذي يحتوي على الخطأ.
تخطيط ثابت وبطاقات مثقبة



قبل تطوير ملفات الأقراص ومحررات النصوص والمحطات الطرفية، كانت البرامج تُدخل في أغلب الأحيان على لوحة مفاتيح مثقبة على بطاقات مثقبة ذات 80 عمودًا ، سطر واحد لكل بطاقة. ثم تُدخل مجموعة البطاقات الناتجة في قارئ بطاقات لتجميعها. لم تتضمن رموز البطاقات المثقبة أحرفًا صغيرة أو العديد من الأحرف الخاصة، وقد طُرحت إصدارات خاصة من لوحة المفاتيح المثقبة IBM 026 قادرة على طباعة الأحرف الخاصة المُعاد استخدامها في لغة فورتران بشكل صحيح.
تماشياً مع ممارسة إدخال البيانات عبر البطاقات المثقبة، كُتبت برامج فورتران في الأصل بتنسيق ذي أعمدة ثابتة. كان وجود الحرف "C" في العمود الأول يؤدي إلى اعتبار البطاقة بأكملها تعليقاً وتجاهلها من قِبل المُترجم. بخلاف ذلك، كانت أعمدة البطاقة تُقسّم إلى أربعة حقول:
- كانت الأرقام من 1 إلى 5 تُستخدم كعلامات في حقل التسمية: حيث تُعتبر سلسلة الأرقام هنا علامةً تُستخدم في عبارات DO أو عبارات التحكم مثل GO TO و IF، أو لتحديد عبارة FORMAT المشار إليها في عبارة WRITE أو READ. يتم تجاهل الأصفار البادئة، والرقم 0 ليس رقم تسمية صالحًا.
- كان الرقم 6 حقلًا للاستكمال: أي حرف غير الفراغ أو الصفر فيه يجعل البطاقة تُعتبر استكمالًا للعبارة الموجودة على البطاقة السابقة. عادةً ما كانت بطاقات الاستكمال مرقمة من 1 إلى 2، وهكذا، وبالتالي قد تحتوي البطاقة الأولى على الصفر في عمود الاستكمال الخاص بها، وهو ما لا يُعد استكمالًا للبطاقة السابقة.
- تضمنت الأرقام من 7 إلى 72 حقل البيان.
- تم تجاهل الأرقام من 73 إلى 80 (كان قارئ البطاقات الخاص بجهاز IBM 704، وهو الكمبيوتر الذي طُوِّرت عليه لغة فورتران، لا يستطيع قراءة سوى 72 عمودًا، ووضعها في 24 كلمة من 36 بت). [ 30 ]
لذا، يمكن استخدام الأعمدة من 73 إلى 80 لمعلومات التعريف، مثل تثقيب رقم تسلسلي أو نص، ما يسمح بإعادة ترتيب البطاقات في حال سقوط مجموعة منها؛ مع أن هذا الاستخدام كان مقتصراً عملياً على برامج الإنتاج المستقرة. ويمكن استخدام جهاز IBM 519 لنسخ مجموعة برامج وإضافة أرقام تسلسلية. وقد فرضت بعض المترجمات المبكرة، مثل IBM 650، قيوداً إضافية بسبب محدودية قارئات البطاقات. [ 31 ] ويمكن برمجة مثاقب المفاتيح للانتقال إلى العمود 7 ثم تخطي العمود 72. وقد خففت المترجمات اللاحقة معظم قيود التنسيق الثابت، وتم إلغاء هذا الشرط في معيار Fortran 90.
في حقل العبارة، تم تجاهل المسافات البيضاء (الفراغات) خارج النص الحرفي. سمح هذا بحذف المسافات بين الرموز للاختصار أو تضمين المسافات داخل المعرفات للوضوح. على سبيل المثال، AVG OF Xكان معرفًا صالحًا، مكافئًا لـ AVGOFX، وكانت عبارة صالحة، مكافئة لـ لأن الصفر في العمود 6 يُعامل كما لو كان مسافة، بينما كان بدلاً من ذلك ، وهو إسناد القيمة 1.101 إلى متغير يُسمى . لاحظ الفرق البصري الطفيف بين الفاصلة والنقطة.101010DO101I=1,10110101DO 101I=1,101101010DO101I=1.10110101DO101I=1.101DO101I
كانت سلاسل هوليريث ، التي كانت مسموحة في الأصل فقط في عبارات FORMAT وDATA، تُسبق بعدد الأحرف والحرف H (على سبيل المثال، 26HTHIS IS ALPHANUMERIC DATA.)، مما يسمح بالاحتفاظ بالفراغات داخل سلسلة الأحرف. وكانت الأخطاء في العد مشكلة.
تطور
| سنة | اسم غير رسمي | المعيار الرسمي |
|---|---|---|
| 1957 | فورتران | غير متوفر |
| 1958 | فورتران 2 | غير متوفر |
| 1958 | فورتران 3 | غير متوفر |
| 1961 | فورتران 4 | غير متوفر |
| 1966 | فورتران 66 | ANSI X3.9-1966 |
| 1978 | فورتران 77 | ANSI X3.9-1978 ISO 1539:1980 |
| 1991 | فورتران 90 | ANSI X3.198-1992 ISO/IEC 1539:1991 |
| 1997 | فورتران 95 | ISO/IEC 1539-1:1997 |
| 2004 | فورتران 2003 | ISO/IEC 1539-1:2004 |
| 2010 | فورتران 2008 | ISO/IEC 1539-1:2010 |
| 2018 | فورتران 2018 | ISO/IEC 1539-1:2018 |
| 2023 | فورتران 2023 | ISO/IEC 1539-1:2023 |
فورتران 2
ظهرت لغة فورتران 2 من شركة آي بي إم عام 1958. وكان التحسين الرئيسي فيها هو دعم البرمجة الإجرائية من خلال السماح للمستخدمين بكتابة إجراءات فرعية ووظائف تُرجع قيمًا مع تمرير المعاملات بالمرجع . وقد وفرت عبارة COMMON طريقة للإجراءات الفرعية للوصول إلى المتغيرات المشتركة (أو العامة ). كما تم تقديم ست عبارات جديدة: [ 32 ]
SUBROUTINE،FUNCTION، وENDCALLوRETURNCOMMON
من وجهة نظر رائد الحوسبة روبرت بيمر ، فإن إضافة الروتينات الفرعية المترجمة بشكل منفصل إلى اللغة كانت "تطورًا يعادل في أهميته لغة FORTRAN الأصلية". [ 15 ]
على مدى السنوات القليلة التالية، أضافت لغة FORTRAN II دعمًا لأنواع البيانات DOUBLE PRECISIONو COMPLEX.
لم تدعم مُجمّعات لغة فورتران المبكرة الاستدعاء الذاتي في الإجراءات الفرعية. لم تدعم بنى الحواسيب المبكرة مفهوم المكدس، وعندما دعمت استدعاءات الإجراءات الفرعية بشكل مباشر، كان موقع العودة يُخزّن غالبًا في موقع ثابت مجاور لرمز الإجراء الفرعي (مثل IBM 1130 ) أو في سجل آلة مُحدد ( مثل IBM 360 وما يليه )، مما يسمح بالاستدعاء الذاتي فقط إذا كان المكدس مُدارًا بواسطة برنامج، وكان عنوان العودة مُخزّنًا في المكدس قبل إجراء الاستدعاء، ويُستعاد بعد عودته. كان غياب الاستدعاء الذاتي عائقًا كبيرًا أمام استخدام اللغة مع بعض الخوارزميات والتطبيقات، [ 33 ] بل إنه حدّ من قدرة المبرمجين على التفكير في مثل هذه الأمور. [ 34 ] على الرغم من عدم تحديده في فورتران 77، إلا أن العديد من مُجمّعات F77 دعمت الاستدعاء الذاتي كخيار، [ 35 ] وكانت حواسيب Burroughs المركزية ، المصممة مع تضمين الاستدعاء الذاتي، تدعمه افتراضيًا. أصبح الاستدعاء الذاتي معيارًا في فورتران 90 عبر الكلمة المفتاحية الجديدة RECURSIVE. [ 36 ]
برنامج بسيط بلغة فورتران 2
يقرأ هذا البرنامج، الخاص بصيغة هيرون ، البيانات من شريط يحتوي على ثلاثة أعداد صحيحة مكونة من خمسة أرقام، A وB وC، كمدخلات. لا توجد تعريفات لأنواع البيانات: المتغيرات التي تبدأ أسماؤها بالحروف I أو J أو K أو L أو M أو N هي أعداد صحيحة (ذات فاصلة ثابتة)، وإلا فهي أعداد عشرية. بما أن المعالجة في هذا المثال ستكون لأعداد صحيحة، فإن أسماء المتغيرات تبدأ بالحرف "I". يجب أن يبدأ اسم المتغير بحرف، ويمكن أن يتكون من حروف وأرقام، بحد أقصى ستة أحرف في لغة فورتران 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 سالبة أو صفرية.ج- علاوة على ذلك، مجموع ضلعين من أضلاع المثلثيجب أن يكون ج أكبر من الضلع الثالث، لذلك نتحقق من ذلك أيضًا.IF ( IA ) 777 , 777 , 701 701 IF ( IB ) 777 ، 777 ، 702 702 IF ( IC ) 777 ، 777 ، 703 703 IF ( IA + IB - IC ) 777 , 777 , 704 704 IF ( IA + IC - IB ) 777 ، 777 ، 705 705 IF ( IB + IC - IA ) 777 , 777 , 799 777 توقف 1باستخدام صيغة هيرون، نحسبج مساحة المثلث 799 S = FLOATF ( IA + IB + IC ) / 2.0المساحة = SQRTF ( S * ( S - FLOATF ( IA )) * ( S - FLOATF ( IB )) *+ ( S - FLOATF ( IC )))كتابة شريط الإخراج 6 ، 601 ، IA ، IB ، IC ، AREA 601 FORMAT ( 4 H A = , I5 , 5 H B = , I5 , 5 H C = , I5 , 8 H AREA = , F10 . 2 ,+ 13 وحدة مربعة ( H )قفنهايةفورتران 3
طوّرت شركة IBM أيضًا لغة FORTRAN III عام 1958، والتي سمحت بكتابة كود التجميع المضمن، من بين ميزات أخرى؛ إلا أن هذه النسخة لم تُطرح كمنتج تجاري. ومثل لغتي FORTRAN 704 وFORTRAN II، تضمنت FORTRAN III ميزات تعتمد على الجهاز، مما جعل الكود المكتوب بها غير قابل للنقل بين الأجهزة، بالإضافة إلى دعم التعبيرات المنطقية. [ 11 ] : 76 وقد عانت الإصدارات المبكرة من FORTRAN التي قدمتها شركات أخرى من نفس العيب.
فورتران 4
بدأت شركة IBM تطوير لغة FORTRAN IV في عام 1961 استجابةً لطلبات العملاء. وقد أزالت FORTRAN IV الميزات التي تعتمد على الجهاز في FORTRAN II (مثل READ INPUT TAPE)، مع إضافة ميزات جديدة مثل LOGICALنوع البيانات ، والتعبيرات المنطقية ، وعبارة IF المنطقية كبديل لعبارة IF الحسابية. كما أُضيفت تعريفات الأنواع، بالإضافة إلى IMPLICITعبارة لتجاوز الاصطلاحات السابقة التي تنص على أن المتغيرات تكون فارغة INTEGERإذا بدأ اسمها بـ I، J، ، K، L، M، أو N؛ وإلا REALفهي فارغة. [ 37 ] : ص 70، 71 [ 38 ] : ص 6-9
تم إصدار FORTRAN IV في النهاية في عام 1962، أولاً لجهاز الكمبيوتر IBM 7030 ("Stretch")، تلتها إصدارات لجهاز IBM 7090/7094 في عام 1963 [ 39 ] ولاحقًا لجهاز IBM 1401 في عام 1966. [ 40 ]
بحلول عام 1965، كان من المفترض أن يكون FORTRAN IV متوافقًا مع المعيار الذي كانت تقوم بتطويره مجموعة عمل FORTRAN X3.4.3 التابعة لجمعية المعايير الأمريكية . [ 14 ]
بين عامي 1966 و1968، قدمت شركة IBM عدة مُجمِّعات للغة FORTRAN IV لنظام التشغيل System/360 ، وكان لكل منها اسمٌ يُشير إلى الحد الأدنى من الذاكرة اللازمة لتشغيل المُجمِّع. [ 41 ] وتطابقت الأحرف (F، G، H) مع الرموز المستخدمة مع أرقام طرازات System/360 للدلالة على حجم الذاكرة، حيث يُمثل كل حرف زيادةً بمقدار الضعف: [ 42 ] : ص. 5
- 1966 : FORTRAN IV F لنظام التشغيل DOS/360 (64 كيلوبايت)
- 1966 : FORTRAN IV G لنظام التشغيل OS/360 (128 كيلوبايت)
- 1968 : FORTRAN IV H لنظام التشغيل OS/360 (256 كيلوبايت)
على وجه الخصوص، لعب مُصرّف FORTRAN H دورًا هامًا في تطوير أنواع معينة من أساليب التحسين، مثل تخصيص مجموعة محددة من السجلات لحفظ قيم المتغيرات أثناء التكرار. [ 43 ] إجمالًا، احتوى المُصرّف على ثلاثة مستويات من التحسين الممكن، [ 43 ] حيث أدرك مطورو مُصرّفات Fortran مبكرًا أن القدرة على تعطيل التحسين ضرورية، لأنها تُطيل أوقات التجميع بشكل ملحوظ لتشغيل برامج غالبًا ما تكون غير قابلة للتنفيذ. [ 15 ] حتى مع توفر سعة أكبر للذاكرة الرئيسية، ظل مُصرّف FORTRAN H مُنظمًا عبر عدد من الطبقات. [ 43 ] إجمالًا، مثّلت مُصرّفات Fortran مصدرًا هامًا لإيرادات شركة IBM، حيث بلغت مبيعاتها حوالي 300 مليون دولار في عام 1966 (ما يعادل 2,977 مليون دولار في عام 2025 ). [ 15 ]
قامت شركة Digital Equipment Corporation بصيانة برنامج DECSYSTEM-10 Fortran IV (F40) لجهاز PDP-10 من عام 1967 إلى عام 1975. [ 38 ] كما توفرت برامج الترجمة لسلسلة UNIVAC 1100 وأنظمة Control Data من سلسلتي 6000 و 7000 . [ 44 ]
في بيئة برمجة FORTRAN IV في ذلك الوقت، باستثناء تلك المستخدمة في أنظمة شركة Control Data Corporation (CDC)، كان يُكتب سطر واحد فقط من التعليمات. أما إصدار CDC فكان يسمح بكتابة عدة تعليمات في السطر الواحد إذا تم الفصل بينها بعلامة الدولار ($). وكانت ورقة FORTRAN مقسمة إلى أربعة حقول، كما هو موضح أعلاه.
سمح مُجمّعان برمجيان في ذلك الوقت، وهما IBM "G" وUNIVAC، بكتابة التعليقات على نفس سطر التعليمات، مفصولة بحرف خاص: "مسافة رئيسية": V (الثقوب 7 و8) لـ UNIVAC والثقوب 12/11/0/7/8/9 (الرمز السداسي العشري FF) لـ IBM. وكان يُمنع إدراج هذه التعليقات في منتصف بطاقات المتابعة. [ 38 ] [ 44 ]
فورتران 66
لعلّ أهمّ تطوّر في تاريخ لغة فورتران المبكر كان قرار جمعية المعايير الأمريكية (التي تُعرف الآن باسم المعهد الوطني الأمريكي للمعايير (ANSI)) بتشكيل لجنة برعاية جمعية مصنّعي معدات الأعمال (BEMA) لتطوير معيار أمريكي للغة فورتران . وقد حدّد المعياران الناتجين، واللذان تمت الموافقة عليهما في مارس 1966، لغتين: فورتران (المبنية على فورتران 4، التي كانت بمثابة معيار فعلي)، وفورتران الأساسية (المبنية على فورتران 2، ولكن بدون خصائصها المرتبطة بالآلة). عُرفت لغة فورتران المحدّدة بالمعيار الأول، والمُشار إليها رسميًا بالرمز X3.9-1966، باسم فورتران 66 (مع أن الكثيرين استمروا في تسميتها فورتران 4، وهي اللغة التي استند إليها المعيار بشكل كبير). أصبحت فورتران 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خط
يحتاج برنامج هيرون المكتوب بلغة فورتران 2 أعلاه إلى عدة تعديلات ليتم تجميعه كبرنامج فورتران 66. تشمل هذه التعديلات استخدام نسخ أكثر استقلالية عن الآلة من عبارات READ`and` WRITE، وإزالة دوال تحويل الأنواع غير الضرورية . مع أن ذلك ليس إلزاميًا، يمكن إعادة كتابة العبارات FLOATFالحسابية لاستخدام العبارات والتعبيرات المنطقية بطريقة أكثر تنظيمًا.IFIF
جـ مساحة مثلث باستخدام دالة الجذر التربيعي القياسيةمدخل C - وحدة قارئ الشريط 5، مدخل عدد صحيحمخرج C - وحدة طابعة الخطوط 6، مخرج حقيقيخطأ في الإدخال C، عرض خطأ الإخراج، رمز الخطأ 1 في قائمة التحكم في المهمةاقرأ ( 5501 ) IA ، IB ، ICتنسيق 501 ( 3 I5 )جلا يجوز أن تكون قيم C IA و IB و IC سالبة أو صفرية.ج- علاوة على ذلك، مجموع ضلعين من أضلاع المثلثيجب أن يكون ج أكبر من الضلع الثالث، لذلك نتحقق من ذلك أيضًا.إذا كان ( IA.GT.0.AND.IB.GT.0.AND.IC.GT.0 ) انتقل إلى 10اكتب ( 6602 )تنسيق 602 ( يجب أن تكون قيم 42 H IA و IB و IC أكبر من الصفر .)المحطة 1 ١٠- تابعجإذا ( IA + IB - IC . GT . 0+ . AND . IA + IC - IB . GT . 0+ . AND . IB + IC - IA . GT . 0 ) GOTO 20اكتب ( 6603 ) 603 FORMAT ( 50 H مجموع جانبين يجب أن يكون أكبر من الجانب الثالث . )المحطة 1 ٢٠ تابعجباستخدام صيغة هيرون، نحسبج مساحة المثلثS = ( IA + IB + IC ) / 2.0المساحة = الجذر التربيعي ( S * ( S - IA ) * ( S - IB ) * ( S - IC ))اكتب ( 6601 ) IA ، IB ، IC ، AREA 601 FORMAT ( 4 H A = , I5 , 5 H B = , I5 , 5 H C = , I5 , 8 H AREA = , F10 . 2 ,+ 13 وحدة مربعة ( H )قفنهايةعلى الرغم من عدم ملاءمتها لمعظم التطبيقات العسكرية، كانت لغة فورتران واحدة من اللغات البرمجية عالية المستوى القليلة التي اعتمدتها وزارة الدفاع الأمريكية في سبعينيات القرن الماضي. [ 34 ] كان الهدف هو استبدالها جميعًا بلغة البرمجة آدا التي ترعاها وزارة الدفاع ، [ 34 ] لكن ذلك لم يحدث، وكان مبرر إصدار آدا 9X يشير إلى أنه نظرًا لوجود العديد من البرامج الرياضية التي لا تزال تُكتب بلغة فورتران، كان من الضروري توفير دعم في آدا للتفاعل المباشر مع إجراءات فورتران. [ 45 ]
فورتران 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لتحسين قدرة الإدخال/الإخراج- إدخال/إخراج الملفات بالوصول المباشر
CHARACTERنوع البيانات، الذي يحل محل سلاسل هوليريث مع إمكانيات موسعة للغاية لإدخال وإخراج ومعالجة البيانات القائمة على الأحرفPARAMETERبيان لتحديد الثوابتSAVEبيان للمتغيرات المحلية الثابتة- أسماء عامة للوظائف الجوهرية (على سبيل المثال،
SQRTتقبل أيضًا وسائط من أنواع أخرى، مثلCOMPLEXأوREAL*16). - مجموعة من الدوال الداخلية (
LGE,LGT,LLE,LLT) للمقارنة المعجمية للسلاسل النصية، استنادًا إلى تسلسل الترتيب ASCII . (طلبت وزارة الدفاع الأمريكية هذه الدوال ASCII في تصويتها المشروط بالموافقة ) . - تم السماح بحد أقصى سبعة أبعاد في المصفوفات، بدلاً من ثلاثة. كما تم تعميم تعابير الفهرسة المسموح بها.
في هذه المراجعة للمعيار، أُزيلت أو عُدّلت بعض الميزات بطريقة قد تُبطل برامج كانت متوافقة مع المعيار سابقًا. (كانت الإزالة هي البديل الوحيد المسموح به لمعيار X3J3 في ذلك الوقت، نظرًا لأن مفهوم " الإهمال " لم يكن مُتاحًا بعد لمعايير ANSI). في حين أن معظم البنود الـ 24 في قائمة التعارض (انظر الملحق أ2 من X3.9-1978) عالجت ثغرات أو حالات شاذة كان يسمح بها المعيار السابق ولكن نادرًا ما تُستخدم، فقد أُزيل عدد قليل من القدرات المحددة عمدًا، مثل:
- ثوابت هوليريث وبيانات هوليريث ، مثل
GREET=12HHELLOTHERE! - قراءة وصف حقل هوليريث (H edit) في مواصفات التنسيق
- فهرسة حدود المصفوفة بشكل زائد باستخدام الفهارس السفلية
البعد أ ( 10 ، 5 ) ص = أ ( 11 ، 1 )
- نقل التحكم من وإلى نطاق حلقة DO (المعروف أيضًا باسم "النطاق الممتد")
لا يتطلب إصدار برنامج هيرون المكتوب بلغة فورتران 77 أي تعديلات على إصدار فورتران 66. ومع ذلك، يُظهر هذا المثال تحسينًا إضافيًا لعبارات الإدخال/الإخراج، بما في ذلك استخدام الإدخال/الإخراج الموجه بالقوائم، واستبدال مُعرّفات تحرير هوليريث في العبارات FORMATبسلاسل نصية مُقتبسة. كما يستخدم عبارات مُهيكلة IF، END IFبدلًا من استخدام GOTO/ CONTINUE.
برنامج هيرونجـ مساحة مثلث باستخدام دالة الجذر التربيعي القياسيةمدخل C - وحدة الإدخال القياسية الافتراضية، مدخل عدد صحيحمخرج C - وحدة الإخراج القياسية الافتراضية، الإخراج الحقيقيخطأ في الإدخال C، عرض خطأ الإخراج، رمز الخطأ 1 في قائمة التحكم في المهمةاقرأ ( * ، * ) IA ، IB ، ICجلا يجوز أن تكون قيم C IA و IB و IC سالبة أو صفرية.ج- علاوة على ذلك، مجموع ضلعين من أضلاع المثلثيجب أن يكون ج أكبر من الضلع الثالث، لذلك نتحقق من ذلك أيضًا.إذا كان ( IA.LE.0.OR.IB.LE.0.OR.IC.LE.0 )اكتب ( * , * ) 'يجب أن تكون قيم IA و IB و IC أكبر من الصفر.'المحطة 1نهاية الشرطجإذا كان ( IA + IB - IC . LE . 0+ . أو . IA + IC - IB . LE . 0+ . أو . IB + IC - IA . LE . 0 ) ثماكتب ( * , * ) 'يجب أن يكون مجموع ضلعين أكبر من الضلع الثالث.'المحطة 1نهاية الشرطجباستخدام صيغة هيرون، نحسبج مساحة المثلثS = ( IA + IB + IC ) / 2.0المساحة = الجذر التربيعي ( S * ( S - IA ) * ( S - IB ) * ( S - IC ))اكتب ( * , 601 ) IA ، IB ، IC ، AREA 601 FORMAT ( 'A= ' , I5 , ' B= ' , I5 , ' C= ' , I5 , ' AREA= ' , F10 . 2 ,+ 'وحدات مربعة' )قفنهايةالانتقال إلى معيار ANSI Fortran
تأخر تطوير معيار مُنقّح ليحل محل FORTRAN 77 مرارًا وتكرارًا، نظرًا لصعوبة مواكبة عملية التقييس للتغيرات السريعة في مجال الحوسبة وممارسات البرمجة. وفي غضون ذلك، وباعتبارها "لغة FORTRAN القياسية" لما يقرب من خمسة عشر عامًا، أصبحت FORTRAN 77 اللهجة الأكثر أهمية تاريخيًا.
كان إصدار معيار MIL-STD-1753 عام 1978 إضافة عملية هامة للغة FORTRAN 77. [ 46 ] وقد وضعت وزارة الدفاع الأمريكية هذا المعيار، الذي وحّد عدداً من الميزات التي نفّذتها معظم مُجمّعات FORTRAN 77 ولكنها لم تكن مُدرجة في معيار ANSI FORTRAN 77. وقد أُدمجت هذه الميزات لاحقاً في معيار Fortran 90.
DO WHILEوالبياناتEND DOINCLUDEإفادةIMPLICIT NONEصيغة مختلفة منIMPLICITالعبارة- وظائف معالجة البتات الجوهرية، استنادًا إلى وظائف مماثلة مضمنة في لغة فورتران الصناعية في الوقت الحقيقي (ANSI/ISA S61.1 (1976))
قدّم معيار IEEE 1003.9 POSIX ، الذي صدر عام 1991، وسيلةً بسيطةً لمبرمجي FORTRAN 77 لإصدار استدعاءات نظام POSIX. [ 47 ] وقد حدّد هذا المعيار أكثر من 100 استدعاء ، مما أتاح الوصول إلى التحكم في العمليات، ومعالجة الإشارات، والتحكم في نظام الملفات، والتحكم في الأجهزة، وتحديد الإجراءات، وإدخال/إخراج البيانات المتدفقة، بطريقة قابلة للنقل، بما يتوافق مع معيار POSIX.
فورتران 90
تم إصدار النسخة المتأخرة من FORTRAN 77، والمعروفة بشكل غير رسمي باسم Fortran 90 (وقبل ذلك، Fortran 8X )، أخيرًا كمعيار ISO/IEC 1539:1991 في عام 1991 ومعيار ANSI في عام 1992. بالإضافة إلى تغيير التهجئة الرسمية من FORTRAN إلى Fortran، أضاف هذا التعديل الرئيسي العديد من الميزات الجديدة ليعكس التغييرات الكبيرة في ممارسات البرمجة التي تطورت منذ معيار 1978:
- يُغني إدخال المصدر الحر عن الحاجة إلى تخطي أول ستة مواضع من الأحرف قبل إدخال التعليمات. ويتم تحديد استمرارية الأسطر بالحرف الموجود
&في نهاية السطر، بدلاً من العمود السادس من السطر التالي. كما تُصبح المسافات مهمة. عادةً ما تُشير الملفات التي تنتهي أسماؤها بـ إلى.f90شفرة مصدر ذات تنسيق حر. لا يزال تنسيق المصدر الثابت القديم مُعرّفًا، ولكنه يُعتبر مُتقادمًا. - كلمات مفتاحية بلغة فورتران بأحرف صغيرة
- المعرفات التي يصل طولها إلى 31 حرفًا (في المعيار السابق، كانت ستة أحرف فقط).
- التعليقات المضمنة
- القدرة على العمل على المصفوفات (أو أقسام المصفوفة) ككل، مما يؤدي إلى تبسيط العمليات الحسابية والهندسية بشكل كبير.
- عبارات إسناد المصفوفات الكاملة والجزئية والمقنعة، وتعبيرات المصفوفات، مثل
X(1:N)=R(1:N)*COS(A(1:N)) WHEREبيان لتعيين المصفوفة الانتقائي- الثوابت والتعبيرات ذات القيم المصفوفية،
- الدوال التي يُعرّفها المستخدم والتي تُرجع قيمًا من المصفوفات، بالإضافة إلى مُنشئات المصفوفات.
- عبارات إسناد المصفوفات الكاملة والجزئية والمقنعة، وتعبيرات المصفوفات، مثل
RECURSIVEإجراءات- الوحدات النمطية ، لتجميع الإجراءات والبيانات ذات الصلة معًا، وجعلها متاحة لوحدات البرنامج الأخرى، بما في ذلك القدرة على تقييد إمكانية الوصول إلى أجزاء محددة فقط من الوحدة النمطية.
- آلية تمرير وسيطات محسّنة بشكل كبير، تسمح بفحص الواجهات في وقت الترجمة
- واجهات يكتبها المستخدمون للإجراءات العامة
- إرهاق المشغل
- أنواع البيانات المشتقة (المهيكلة)
- صيغة جديدة لإعلان أنواع البيانات، لتحديد نوع البيانات وخصائص المتغيرات الأخرى.
- تخصيص الذاكرة الديناميكي عن طريق
ALLOCATABLEالسمة وعبارات "ALLOCATEو"DEALLOCATE POINTERسمة، وتعيين مؤشر،NULLIFYوعبارة لتسهيل إنشاء ومعالجة هياكل البيانات الديناميكية- بنى التكرار المنظمة، مع
END DOعبارة لإنهاء الحلقة،EXITوعباراتCYCLEلإنهاءDOتكرارات الحلقة العادية بطريقة منظمة. SELECT CASE...CASE، ...،CASE DEFAULTبنيةEND SELECTللاختيار متعدد الاتجاهات- مواصفات محمولة للدقة العددية تحت سيطرة المستخدم
- إجراءات داخلية جديدة ومحسّنة.
التقادم والحذف
على عكس النسخة السابقة، لم يحذف Fortran 90 أي ميزات. [ 48 ] أي برنامج FORTRAN 77 متوافق مع المعايير كان متوافقًا أيضًا مع المعايير في Fortran 90، وكان من المفترض أن يكون أي من المعيارين قابلاً للاستخدام لتحديد سلوكه.
تم تحديد مجموعة صغيرة من الميزات على أنها "قديمة" وكان من المتوقع إزالتها في معيار مستقبلي. يمكن تنفيذ جميع وظائف هذه الميزات القديمة بواسطة ميزات فورتران الأحدث. تم الاحتفاظ ببعضها لتسهيل نقل البرامج القديمة، ولكن تم حذف العديد منها في فورتران 95.
| ميزة قديمة | الحالة الحالية |
|---|---|
| عبارة IF الحسابية | أصبح قديماً في الإصدار F90، وتم حذفه في الإصدار F2018 |
| معلمات DO غير الصحيحة أو متغيرات التحكم | أصبح قديماً في الإصدار F90، وتم حذفه في الإصدار F95 |
| إنهاء حلقة DO المشتركة أو الإنهاء بعبارة أخرى غير END DO أو CONTINUE | أصبح قديماً في الإصدار F90، وتم حذفه في الإصدار F2018 |
| الانتقال إلى نهاية الشرط من خارج الكتلة | أصبح قديماً في الإصدار F90، وتم حذفه في الإصدار F95 |
| بيان التوقف المؤقت | أصبح قديماً في الإصدار F90، وتم حذفه في الإصدار F95 |
| عبارة ASSIGN وعبارة GO TO المعينة | أصبح قديماً في الإصدار F90، وتم حذفه في الإصدار F95 |
| أرقام البيانات المخصصة ومحددات التنسيق | أصبح قديماً في الإصدار F90، وتم حذفه في الإصدار F95 |
| وصف التحرير H | أصبح قديماً في الإصدار F90، وتم حذفه في الإصدار F95 |
| التحكم في التنسيق الرأسي | تم حذفه في إصدار F2003 |
| العودة البديلة | عفا عليه الزمن في F90 |
| عبارة GO TO المحسوبة | عفا عليه الزمن في F90 |
| دوال العبارات | عفا عليه الزمن في F90 |
| عبارات البيانات ضمن العبارات القابلة للتنفيذ | عفا عليه الزمن في F90 |
| دوال الأحرف ذات الطول المفترض | عفا عليه الزمن في F90 |
| شفرة مصدرية ثابتة الشكل | عفا عليه الزمن في F90 |
| صيغة تعريف الشخصية* | عفا عليه الزمن في F90 |
| بيانات الدخول | أصبح قديماً في خريف 2008 |
| صيغة التسمية لعبارة DO | أصبح قديماً في خريف 2018 |
| عبارات COMMON و EQUIVALENCE، ووحدة برنامج BLOCK DATA | أصبح قديماً في خريف 2018 |
| أسماء محددة للوظيفة الجوهرية | أصبح قديماً في خريف 2018 |
| بناء وبيان FORall | أصبح قديماً في خريف 2018 |
مثال على عبارة "مرحباً بالعالم!"
برنامج helloworld اطبع * ، "مرحباً بالعالم!" نهاية برنامج helloworldفورتران 95
كانت لغة فورتران 95 ، التي نُشرت رسميًا تحت مسمى ISO/IEC 1539-1:1997، نسخةً مُعدّلةً بشكلٍ طفيف، هدفت في الغالب إلى حلّ بعض المشكلات العالقة من معيار فورتران 90. ومع ذلك، أضافت فورتران 95 أيضًا عددًا من الامتدادات، لا سيما من مواصفات فورتران عالية الأداء .
FORALLوبنى متداخلةWHEREللمساعدة في تحويل البيانات إلى متجهات- مُعرّف من قِبل المستخدم
PUREوالإجراءاتELEMENTAL - التهيئة الافتراضية لمكونات النوع المشتق، بما في ذلك تهيئة المؤشر
- تم توسيع إمكانية استخدام تعابير التهيئة لكائنات البيانات
- تهيئة المؤشرات إلى
NULL() - تم تحديد بوضوح أن
ALLOCATABLEالمصفوفات يتم تحريرها تلقائيًا عند خروجها من نطاق التعريف.
تم توسيع عدد من الوظائف الجوهرية (على سبيل المثال، dimتمت إضافة وسيط إلى الوظيفة maxlocالجوهرية).
تمت إزالة العديد من الميزات التي وُصفت في لغة فورتران 90 بأنها "قديمة" من لغة فورتران 95:
DOعبارات تستخدم متغيراتREALالفهرسةDOUBLE PRECISION- الانتقال إلى
END IFبيان من خارج كتلتها PAUSEإفادةASSIGNوتم تعيينGO TOالبيان، وتم تعيين محددات التنسيقHوصف تعديل هوليريث.
كان التقرير الفني ISO TR-15581: إمكانيات محسّنة لأنواع البيانات ، والمعروف اختصارًا باسم Allocatable TR، إضافةً مهمةً للغة Fortran 95. حدّد هذا التقرير استخدامًا مُحسّنًا ALLOCATABLEللمصفوفات، قبل توفّر مُجمّعات Fortran المتوافقة تمامًا مع Fortran 2003. تشمل هذه الاستخدامات ALLOCATABLEالمصفوفات كمكوّنات أنواع مُشتقّة، وفي قوائم وسائط الإجراءات الوهمية، وكقيم إرجاع للدوال. ( ALLOCATABLEتُفضّل المصفوفات على POINTERالمصفوفات القائمة على المؤشرات لأنّ ALLOCATABLEFortran 95 تضمن تحرير المصفوفات تلقائيًا عند خروجها من نطاق التعريف، ممّا يُلغي احتمالية تسرّب الذاكرة . إضافةً إلى ذلك، فإنّ عناصر المصفوفات القابلة للتخصيص مُتجاورة، ولا يُمثّل التداخل مشكلةً لتحسين مراجع المصفوفات، ممّا يسمح للمُجمّعات بتوليد شيفرة أسرع من حالة المؤشرات. [ 49 ] )
كان التقرير الفني ISO TR-15580: معالجة استثناءات الفاصلة العائمة ، والمعروف بشكل غير رسمي باسم IEEE TR، إضافة مهمة أخرى إلى Fortran 95. وقد حددت هذه المواصفة دعم حسابات الفاصلة العائمة IEEE ومعالجة استثناءات الفاصلة العائمة .
التجميع المشروط وسلاسل ذات أطوال متفاوتة
بالإضافة إلى "اللغة الأساسية" الإلزامية (المحددة في ISO/IEC 1539-1 : 1997)، تضمنت لغة Fortran 95 أيضًا وحدتين اختياريتين:
- سلاسل الأحرف ذات الأطوال المتغيرة (ISO/IEC 1539-2 : 2000)
- التجميع المشروط (ISO/IEC 1539-3 : 1998)
والتي تشكل مجتمعة المعيار الدولي متعدد الأجزاء (ISO/IEC 1539).
بحسب واضعي المعايير، "تصف الأجزاء الاختيارية ميزات مستقلة طلبها عدد كبير من المستخدمين و/أو المطورين، ولكنها لا تُعتبر عامة بما يكفي لتكون مطلوبة في جميع مترجمات فورتران المتوافقة مع المعايير". ومع ذلك، إذا وفرت لغة فورتران متوافقة مع المعايير مثل هذه الخيارات، فيجب توفيرها وفقًا لوصف تلك الميزات في الجزء المناسب من المعيار.
لغة فورتران الحديثة
تُعرف اللغة التي حددتها معايير القرن الحادي والعشرين، ولا سيما بسبب دمجها لدعم البرمجة الكائنية التوجه ، ولاحقًا لغة فورتران المصفوفة ، باسم "فورتران الحديثة"، ويُستخدم هذا المصطلح بشكل متزايد في الأدبيات. [ 50 ]
فورتران 2003
كانت لغة فورتران 2003، المنشورة رسميًا تحت مسمى ISO/IEC 1539-1:2004، بمثابة مراجعة شاملة أدخلت العديد من الميزات الجديدة. [ 51 ] يتوفر ملخص وافٍ للميزات الجديدة في فورتران 2003 على الموقع الإلكتروني الرسمي لمجموعة عمل فورتران ( ISO/IEC JTC1/SC22 /WG5). [ 52 ]
من تلك المقالة، تشمل التحسينات الرئيسية لهذه المراجعة ما يلي:
- تحسينات على الأنواع المشتقة: أنواع مشتقة ذات معلمات، تحكم مُحسَّن في إمكانية الوصول، مُنشئات هيكلية مُحسَّنة، ومُنهيات نهائية.
- دعم البرمجة كائنية التوجه : توسيع الأنواع والوراثة ، وتعدد الأشكال ، وتخصيص الأنواع الديناميكي، والإجراءات المرتبطة بالأنواع، مما يوفر دعمًا كاملاً لأنواع البيانات المجردة.
- تحسينات معالجة البيانات: المكونات القابلة للتخصيص (بما في ذلك TR 15581)، ومعاملات النوع المؤجلة،
VOLATILEوالسمة ، وتحديد النوع الصريح في مُنشئات المصفوفات وعبارات التخصيص، وتحسينات المؤشرات، وتعبيرات التهيئة الموسعة، والإجراءات الداخلية المحسّنة - تحسينات الإدخال/الإخراج: النقل غير المتزامن ، الوصول إلى التدفق، عمليات نقل يحددها المستخدم للأنواع المشتقة، تحكم المستخدم في التقريب أثناء تحويلات التنسيق، ثوابت مُسماة للوحدات المتصلة مسبقًا، العبارة
FLUSH، تنظيم الكلمات الرئيسية، والوصول إلى رسائل الخطأ - إرشادات الإجراءات
- دعم العمليات الحسابية ذات الفاصلة العائمة وفقًا لمعايير IEEE ومعالجة استثناءات الفاصلة العائمة (بما في ذلك TR 15580)
- التوافق مع لغة البرمجة C
- دعم الاستخدام الدولي: الوصول إلى أحرف ISO 10646 ذات 4 بايتات وخيار الفاصلة العشرية أو الفاصلة في الإدخال/الإخراج الرقمي
- تحسين التكامل مع نظام التشغيل المضيف: الوصول إلى وسائط سطر الأوامر ، ومتغيرات البيئة ، ورسائل خطأ المعالج
كان التقرير الفني الصادر عن المنظمة الدولية للمقاييس (ISO) رقم TR-19767 بعنوان "تحسين إمكانيات الوحدات النمطية في فورتران" إضافةً مهمةً إلى لغة فورتران 2003. قدّم هذا التقرير وحدات فرعية، مما جعل وحدات فورتران النمطية أقرب إلى وحدات Modula-2 النمطية . وهي تُشبه الوحدات الفرعية الخاصة في لغة آدا . يُتيح هذا إمكانية تحديد مواصفات الوحدة النمطية وتنفيذها في وحدات برمجية منفصلة، مما يُحسّن من تغليف المكتبات الكبيرة، ويحافظ على الأسرار التجارية مع نشر واجهات نهائية، ويمنع حدوث تسلسلات في عملية الترجمة.
فورتران 2008
تمت الموافقة على معيار ISO/IEC 1539-1:2010، المعروف اختصارًا باسم Fortran 2008، في سبتمبر 2010. [ 53 ] [ 54 ] وكما هو الحال مع Fortran 95، يُعد هذا تحديثًا طفيفًا، يتضمن توضيحات وتصحيحات لـ Fortran 2003، بالإضافة إلى بعض الإمكانيات الجديدة. تشمل هذه الإمكانيات الجديدة ما يلي:
- الوحدات الفرعية – مرافق هيكلية إضافية للوحدات؛ تحل محل ISO/IEC TR 19767:2005
- فورتران المصفوفة – نموذج التنفيذ المتوازي
- بنية DO CONCURRENT – لتكرارات الحلقة بدون ترابطات متبادلة
- السمة CONTIGUOUS - لتحديد قيود تخطيط التخزين
- يمكن أن يحتوي بناء BLOCK على تعريفات للكائنات ذات نطاق البناء
- المكونات القابلة للتخصيص بشكل متكرر - كبديل للمؤشرات المتكررة في الأنواع المشتقة
تتوفر مسودة المعيار الدولي النهائي (FDIS) كوثيقة رقم N1830. [ 55 ]
يُعدّ المعيار الفني رقم 29113 الصادر عن المنظمة الدولية للتوحيد القياسي (ISO) بشأن تعزيز التوافق بين لغة فورتران ولغة سي ، [ 56 ] [ 57 ] ، مكملاً للغة فورتران 2008، وقد قُدّم إلى المنظمة الدولية للتوحيد القياسي في مايو 2012 للموافقة عليه. يُضيف هذا المعيار دعمًا للوصول إلى مُعرّف المصفوفة من لغة سي، ويسمح بتجاهل نوع ورتبة الوسائط.
فورتران 2018
كانت نسخة Fortran 2018 من اللغة تُعرف سابقًا باسم Fortran 2015. [ 58 ] لقد كانت مراجعة مهمة وتم إصدارها في 28 نوفمبر 2018. [ 59 ]
يتضمن برنامج Fortran 2018 مواصفتين فنيتين نُشرتا سابقًا:
- ISO/IEC TS 29113:2012 المزيد من قابلية التشغيل البيني مع C [ 60 ]
- ISO/IEC TS 18508:2015 ميزات متوازية إضافية في لغة فورتران [ 61 ]
تشمل التغييرات الإضافية والميزات الجديدة دعم معيار ISO/IEC/IEEE 60559:2011 (إصدار معيار IEEE للفاصلة العائمة قبل آخر مراجعة ثانوية IEEE 754–2019 )، والإدخال/الإخراج الست عشري، وتحسينات IMPLICIT NONE، وتغييرات أخرى. [ 62 ] [ 63 ] [ 64 ] [ 65 ]
حذفت لغة فورتران 2018 عبارة IF الحسابية. كما حذفت أيضًا بنيات DO غير الكتلية - الحلقات التي لا تنتهي بعبارة END DO أو CONTINUE. كانت هذه البنيات جزءًا قديمًا من اللغة منذ فورتران 90.
تشمل العناصر الجديدة التي تم إلغاؤها ما يلي: عبارات COMMON و EQUIVALENCE ووحدة برنامج BLOCK DATA، وحلقات DO المسماة، والأسماء المحددة للوظائف الجوهرية، وعبارة FORALL وبنيتها.
فورتران 2023
تم نشر لغة فورتران 2023 (ISO/IEC 1539-1:2023) في نوفمبر 2023، ويمكن شراؤها من منظمة المعايير الدولية (ISO). [ 66 ] تُعد فورتران 2023 امتدادًا بسيطًا للغة فورتران 2018، وتركز على تصحيح الأخطاء والنواقص فيها. كما تُضيف العديد من الميزات الصغيرة، بما في ذلك التعبيرات والوسائط الشرطية ، والإجراءات البسيطة، وإمكانية استخدام أنواع البيانات المُعدّدة . كما أُضيفت أيضًا دوال حساب المثلثات القائمة على الدرجات وأنصاف الدورات. وكانت دوال حساب المثلثات القائمة على الدرجات سابقًا امتدادًا شائعًا جدًا لدى مُوردي البرامج.
خصائص اللغة
يُغطّي المقال ذو الصلة، "ميزات لغة فورتران 95"، وصفًا كاملاً لميزات لغة فورتران التي أُضيفت في الإصدار 95. أما إصدارات اللغة التي حددتها المعايير اللاحقة، فيُشار إليها غالبًا باسم "فورتران الحديثة"، وهي موصوفة في المراجع العلمية.
العلوم والهندسة



على الرغم من أن مقالًا نُشر عام ١٩٦٨ في إحدى المجلات العلمية من قِبل مؤلفي لغة BASIC وصف لغة FORTRAN بأنها "قديمة الطراز"، [ ٦٧ ] فقد كُتبت برامج بلغة FORTRAN لعقود طويلة، وهناك كم هائل من برامج FORTRAN قيد الاستخدام اليومي في الأوساط العلمية والهندسية. [ ٦٨ ] كتب جاي باشوف عام ١٩٨٤ أن "طلاب الفيزياء وعلم الفلك مُلزمون بتعلم FORTRAN. فكمية البرامج الموجودة في FORTRAN هائلة لدرجة أنه من غير المرجح أن يتحول العلماء إلى لغة Pascal أو Modula-2 أو غيرها." [ ٦٩ ] وفي عام ١٩٩٣، وصف سيسيل إي. ليث لغة FORTRAN بأنها "اللغة الأم للحوسبة العلمية"، مضيفًا أن استبدالها بأي لغة أخرى "قد يبقى أملًا بعيد المنال". [ ٧٠ ]
تُعدّ لغة فورتران اللغة الأساسية لبعض مهام الحوسبة الفائقة الأكثر تعقيدًا ، مثل علم الفلك ، ونمذجة المناخ ، والكيمياء الحاسوبية ، والاقتصاد الحاسوبي، وديناميكا الموائع الحاسوبية ، والفيزياء الحاسوبية ، وتحليل البيانات، [ 71 ] والنمذجة الهيدرولوجية ، والجبر الخطي العددي والمكتبات العددية ( LAPACK و IMSL و NAG )، والتحسين ، ومحاكاة الأقمار الصناعية، والهندسة الإنشائية ، والتنبؤ بالطقس . [ 72 ] وقد كُتبت العديد من معايير الأداء الخاصة بالفاصلة العائمة، والتي تُستخدم لتقييم أداء معالجات الحاسوب الجديدة، مثل مكونات الفاصلة العائمة في معايير SPEC (مثل CFP2006 و CFP2017 )، بلغة فورتران. وتُوثّق الخوارزميات الرياضية بشكلٍ وافٍ في كتاب "الوصفات العددية" .
إلى جانب ذلك، تستخدم البرامج الحديثة في علوم الحوسبة عمومًا مكتبات برمجية ضخمة، مثل METIS لتقسيم الرسوم البيانية، وPETSc أو Trilinos لإمكانيات الجبر الخطي، وdeal.II أو FEniCS لدعم الشبكات والعناصر المحدودة، بالإضافة إلى مكتبات عامة أخرى. منذ أوائل العقد الأول من الألفية الثانية، تم تنفيذ العديد من مكتبات الدعم واسعة الاستخدام بلغة C ، ومؤخرًا بلغة C++ . من جهة أخرى، اكتسبت لغات البرمجة عالية المستوى، مثل Wolfram Language و MATLAB و Python و R، شعبيةً في مجالات محددة من علوم الحوسبة. ونتيجةً لذلك، تُكتب نسبة متزايدة من البرامج العلمية بلغات برمجة نصية عالية المستوى. لهذا السبب، أُضيفت إمكانيات التشغيل البيني مع لغة C إلى Fortran 2003، وجرى تعزيزها بالمواصفة الفنية ISO/IEC 29113، التي أُدمجت في Fortran 2018 للسماح بتشغيل بيني أكثر مرونة مع لغات برمجة أخرى.
سهولة الحمل
كانت قابلية النقل مشكلة في بداياتها لعدم وجود معيار متفق عليه، حتى أن دليل IBM المرجعي لم يكن موجودًا، وتنافست شركات الحواسيب على تمييز منتجاتها عن غيرها بتوفير ميزات غير متوافقة. وقد حسّنت المعايير من قابلية النقل. وفّر معيار عام 1966 بنيةً ودلالات مرجعية، لكن استمرّ المورّدون في توفير امتدادات غير متوافقة. ورغم أن المبرمجين المتمرّسين بدأوا يدركون أن استخدام الامتدادات غير المتوافقة يُسبّب مشاكل مكلفة في قابلية النقل، ولذلك كانوا يستخدمون برامج مثل PFORT Verifier، [ 73 ] [ 74 ] إلا أنه لم يُصبح مطلوبًا من المعالجات التي تشتريها الحكومة الأمريكية تشخيص امتدادات المعيار إلا بعد معيار عام 1977، عندما نشر المكتب الوطني للمعايير ( المعهد الوطني للمعايير والتكنولوجيا حاليًا ) FIPS PUB 69. وبدلًا من توفير معالجين، أصبح لدى كل مُترجم تقريبًا خيار واحد على الأقل لتشخيص الامتدادات. [ 75 ] [ 76 ]
لم تكن الامتدادات غير المتوافقة هي المشكلة الوحيدة المتعلقة بقابلية النقل. ففي الحسابات العددية، من المهم مراعاة خصائص العمليات الحسابية. وقد تناول فوكس وزملاؤه هذه المسألة في سياق معيار عام 1966 من خلال مكتبة PORT . [ 74 ] انتشرت الأفكار الواردة في ذلك البحث على نطاق واسع، وتم دمجها لاحقًا في معيار عام 1990 عبر دوال استعلام مضمنة. وقد أدى اعتماد معيار IEEE 754 على نطاق واسع (يكاد يكون عالميًا الآن) للحسابات الثنائية ذات الفاصلة العائمة إلى إزالة هذه المشكلة بشكل أساسي.
ظل الوصول إلى بيئة الحوسبة (مثل سطر أوامر البرنامج، ومتغيرات البيئة، والشرح النصي لحالات الخطأ) يمثل مشكلة حتى تم معالجتها بواسطة معيار 2003.
تم تطوير مجموعات كبيرة من برامج المكتبات، التي يمكن وصفها بأنها ذات صلة غير مباشرة بالحسابات الهندسية والعلمية، مثل مكتبات الرسومات، باستخدام لغة C، مما أدى إلى مشكلة في قابلية نقلها. وقد تم حل هذه المشكلة من خلال دمج قابلية التشغيل البيني للغة C في معيار 2003.
أصبح من الممكن الآن (وبسهولة نسبية) كتابة برنامج قابل للنقل بالكامل بلغة فورتران، حتى بدون اللجوء إلى معالج مسبق .
المتغيرات التاريخية
إصدارات الشركة المصنعة
قبل تطوير معيار فورتران 66، كان كل مترجم يدعم نسخته الخاصة من فورتران. بعضها كان أكثر اختلافًا عن النسخة السائدة من غيرها. أحد أبرز الكتب الدراسية في ذلك الوقت، كتاب " دليل برمجة فورتران 4" (1965) لدانيال د. مكراكين ، خصص صفحتين كاملتين لمصفوفة تضم 24 اختلافًا في الميزات مقابل 29 إصدارًا من إصدارات الشركات المصنعة والحواسيب. [ 14 ] مؤلف كتاب دراسي آخر من تلك الحقبة، جون م. بلات ، أعرب عن أسفه لفعل الشيء نفسه، فكتب أن "الشركات المصنعة تميل إلى اعتبار فورتران 'الخاصة بها' نقطة بيع، وبمجرد أن تكتسب إحدى لهجات فورتران ميزة ما، تحاول اللهجات الأخرى التفوق عليها." [ 77 ] ومع ذلك، كانت برامج فورتران أكثر قابلية للنقل من برامج لغات التجميع، وفي الواقع، كان بإمكان من يتقنون فورتران شركة مصنعة معينة تكييف برامجهم بسهولة مع فورتران شركة مصنعة أخرى. [ 78 ]
سوّقت شركة داتا جنرال لغة فورتران 5 من أوائل السبعينيات إلى أوائل الثمانينيات، لأجهزة الكمبيوتر من طرازات نوفا وإكليبس وإم في . وكانت تحتوي على مُصرّف مُحسِّن كان جيدًا جدًا بالنسبة لأجهزة الكمبيوتر الصغيرة في ذلك الوقت. وتشبه هذه اللغة إلى حد كبير لغة فورتران 66.
تم توزيع لغة FORTRAN V بواسطة شركة Control Data Corporation في عام 1968 لسلسلة CDC 6600. وقد استندت هذه اللغة إلى FORTRAN IV. [ 79 ]
كما قدمت شركة Univac برنامجًا مترجمًا لسلسلة 1100 يُعرف باسم FORTRAN V. وكان برنامج Athena FORTRAN مشتقًا من Univac Fortran V.
أضافت نسخٌ خاصةٌ من لغة فورتران، أنتجتها شركات تصنيع الحواسيب العلمية عالية الأداء (مثل بوروز ، وشركة كونترول داتا (CDC)، وكراي ، وهانيويل ، وآي بي إم ، وتكساس إنسترومنتس ، ويونيفاك )، امتداداتٍ إلى هذه اللغة للاستفادة من ميزاتٍ خاصةٍ في الأجهزة، مثل ذاكرة التخزين المؤقت للتعليمات ، وخطوط معالجة البيانات ، ومصفوفات المتجهات. فعلى سبيل المثال، احتوى أحد مُجمِّعات فورتران من آي بي إم ( H Extended IUP ) على مستوىً من التحسين يُعيد ترتيب تعليمات لغة الآلة لإبقاء وحدات الحساب الداخلية المتعددة مشغولةً في آنٍ واحد. ومن الأمثلة الأخرى لغة CFD ، وهي نسخةٌ خاصةٌ من فورتران صُمِّمت خصيصًا للحاسوب العملاق ILLIAC IV ، الذي يعمل في مركز أبحاث أميس التابع لناسا . كما طوّرت مختبرات أبحاث آي بي إم لغةً مُوسَّعةً مبنيةً على فورتران تُسمى فيكتران لمعالجة المتجهات والمصفوفات.
كانت لغة فورتران الموجهة للكائنات امتدادًا للغة فورتران، حيث يمكن تجميع عناصر البيانات في كائنات، يمكن إنشاء مثيلات منها وتنفيذها بالتوازي. كانت هذه اللغة متاحة لأنظمة سولاريس ، وإيريكس ، ونيكست ستيب ، وآي بي إس سي، وإن كيوب، ولكنها لم تعد مدعومة. [ 80 ] [ 81 ]
اختفت هذه الإضافات الخاصة بالأجهزة بمرور الوقت، أو أُدمجت عناصر منها في المعايير الرئيسية. الإضافة الرئيسية المتبقية هي OpenMP ، وهي إضافة متعددة المنصات لبرمجة الذاكرة المشتركة. أما الإضافة الجديدة، Coarray Fortran، فهي مصممة لدعم البرمجة المتوازية.
كان FOR TRANSIT اسمًا لنسخة مُصغّرة من لغة IBM 704 FORTRAN، والتي طُبّقت على جهاز IBM 650، باستخدام برنامج ترجمة طُوّر في كارنيجي في أواخر الخمسينيات. [ 82 ] يظهر التعليق التالي في دليل IBM المرجعي ( FOR TRANSIT Automatic Coding System C28-4038، حقوق الطبع والنشر محفوظة لشركة IBM لعامي 1957 و1959):
صُمم نظام 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، وأخيرًا إنتاج برنامج الكائن، الذي يمكن تحميله بعد ذلك في الجهاز لتشغيل البرنامج (باستخدام البطاقات المثقبة لإدخال البيانات، وإخراج النتائج على البطاقات المثقبة).
كان هناك إصداران لأجهزة 650 المزودة بأسطوانة ذاكرة سعة 2000 كلمة: FOR TRANSIT I (S) و FOR TRANSIT II، والأخير مخصص للأجهزة المجهزة بسجلات فهرسة وحسابات عشرية تلقائية بنظام الفاصلة العائمة ( ثنائي خماسي ). يتضمن الملحق (أ) من الدليل مخططات توصيل لوحة التحكم الخاصة بقارئ/مثقب بطاقات IBM 533 .
تجميعات الطلاب

وضع أول مُترجم للغة فورتران معيارًا عاليًا لكفاءة الشيفرة المُترجمة. وقد صعّب هذا الهدف عملية إنشاء المُترجم، فكانت شركات تصنيع الحواسيب هي من تتولى هذه المهمة عادةً لدعم مبيعات الأجهزة. وظلّ شرط كفاءة التنفيذ المعيار الأساسي لتصميم اللغة خلال مراحل تطورها الأولى. [ 8 ] وقد أدى ذلك إلى ظهور حاجة ماسة إلى مُترجمات سريعة في مرحلتي الترجمة والتحميل، وتُوفّر أدوات تشخيص جيدة للمبرمج، الذي كان غالبًا طالبًا، إذ بدأت فورتران 4 في ذلك الوقت تُصبح أداة تعليمية مهمة.
كان برنامج WATFOR ، الذي طُرح في ستينيات القرن الماضي، شائع الاستخدام في الكليات والجامعات. وقد طُوّر هذا البرنامج، الذي تولّت جامعة واترلو تطويره ودعمه وتوزيعه، وكان يعتمد بشكل كبير على لغة FORTRAN IV. [ 77 ] كان بإمكان الطالب الذي يستخدم WATFOR إرسال مهمة FORTRAN الخاصة به، وإذا لم تكن هناك أخطاء في بناء الجملة، ينتقل البرنامج مباشرةً إلى مرحلة التنفيذ. وقد مكّن هذا التبسيط الطلاب من التركيز على بناء جملة البرنامج ودلالاته، أو منطق تنفيذه، بدلاً من التعامل مع لغة التحكم في المهام (JCL) الخاصة بالإرسال، أو عمليات التجميع/الربط/التحرير/التنفيذ المتتالية، أو غيرها من تعقيدات بيئة الحواسيب المركزية.
علاوة على ذلك، قدمت لغة WATFOR مجموعةً فرعيةً من لغة Fortran، حيث وفرت على وجه الخصوص ما يُسمى بالأوامر "الحرة" READكبديلٍ PRINTعن READعبارات WRITE>Fortran المنسقة. [ 77 ] سمحت عبارات FORMATFortran بمرونةٍ كبيرة، ولكنها قد تكون معقدةً للغاية، [ 8 ] وكانت أحيانًا تخضع لاختلافاتٍ بين الشركات المصنعة أو إرشاداتٍ خاصةٍ بالموقع. [ 78 ] نظرًا لأن النهج المنسق سبب صعوباتٍ حتى للمبرمجين ذوي الخبرة، فقد كان توفير بديلٍ في مُترجمٍ برمجيٍّ للطلاب ميزةً واضحة. [ 77 ] من سلبيات هذه البيئة المُبسطة أن WATFOR لم تكن خيارًا جيدًا للمبرمجين الذين يحتاجون إلى القدرات الموسعة لمعالجاتهم، على سبيل المثال، كان وصول WATFOR إلى أجهزة الإدخال/الإخراج محدودًا للغاية. وقد خلفت WATFOR لغة WATFIV [ 77 ] والإصدارات اللاحقة.
ومن بين برامج الترجمة الطلابية الأخرى PUFFT، وعلى نطاق أصغر FORGO وWits Fortran وKingston Fortran 2.
اللغات المبنية على لغة فورتران
قبل ظهور لغة فورتران 77، شاع استخدام العديد من المعالجات المسبقة لتوفير لغة أكثر سهولة، مع ميزة إمكانية تجميع الكود المُعالَج مسبقًا على أي جهاز مزود بمُجمِّع فورتران قياسي. [ 83 ] تدعم هذه المعالجات المسبقة عادةً البرمجة الهيكلية ، وأسماء المتغيرات التي يزيد طولها عن ستة أحرف، وأنواع بيانات إضافية، والتجميع الشرطي ، وحتى إمكانيات الماكرو . من بين المعالجات المسبقة الشائعة: EFL و FLECS و iftran و MORTRAN و SFtran و S-Fortran و Ratfor و Ratfiv . على سبيل المثال، نفّذت EFL وRatfor وRatfiv لغات شبيهة بلغة C ، وأخرجت كودًا مُعالَجًا مسبقًا بلغة فورتران 66 القياسية. غالبًا ما استُخدم المعالج المسبق PFORT للتحقق من توافق الكود مع مجموعة فرعية قابلة للنقل من اللغة. على الرغم من التطورات التي شهدتها لغة فورتران، لا تزال المعالجات المسبقة تُستخدم للتجميع الشرطي واستبدال الماكرو.
البرنامج ؛ s = 0 i = 1 ، n ؛ s = s + 1 ؛ إيقاف i ؛ s = 's' إيقاف(برمجة الخط)
طُوِّرت لغة LRLTRAN في مختبر لورانس للإشعاع لتوفير الدعم للحسابات المتجهة والتخزين الديناميكي، بالإضافة إلى امتدادات أخرى لدعم برمجة الأنظمة. وتضمنت هذه النسخة نظام التشغيل ليفرمور لتقاسم الوقت (LTSS).
يتضمن معيار Fortran-95 جزءًا اختياريًا 3 يحدد إمكانية تجميع شرطي اختياري . غالبًا ما يشار إلى هذه الإمكانية باسم "CoCo".
قامت العديد من برامج ترجمة لغة فورتران بدمج مجموعات فرعية من معالج C المسبق في أنظمتها.
SIMSCRIPT هو معالج مسبق للغة فورتران خاص بالتطبيقات لنمذجة ومحاكاة الأنظمة المنفصلة الكبيرة.
صُممت لغة البرمجة F لتكون مجموعة فرعية مُنقّحة من لغة Fortran 95، سعت إلى إزالة الميزات الزائدة وغير المنظمة والمُهملة في Fortran، مثل EQUIVALENCEعبارة `. تحتفظ F بميزات المصفوفات المُضافة في Fortran 90، وتُزيل عبارات التحكم التي أصبحت قديمة بفعل بنيات البرمجة المنظمة المُضافة إلى كلٍ من FORTRAN 77 وFortran 90. يصف مُبتكرو F لغة البرمجة F بأنها "لغة برمجة مُجمّعة ومنظمة ومُخصصة للمصفوفات، ومناسبة بشكل خاص للتعليم والحوسبة العلمية". [ 84 ] وكانت Essential Lahey Fortran 90 (ELF90) مجموعة فرعية مُشابهة.
تعاون لاهي وفوجيتسو لإنشاء لغة فورتران لإطار عمل مايكروسوفت دوت نت . [ 85 ] كما أن برنامج سيلفر فروست FTN95 قادر على إنشاء كود دوت نت. [ 86 ]
أمثلة على التعليمات البرمجية
يُوضح البرنامج التالي تخصيص الذاكرة الديناميكي والعمليات القائمة على المصفوفات، وهما ميزتان أُضيفتا مع لغة فورتران 90. ومن الجدير بالذكر غياب DOالحلقات IFوالعبارات THENالشرطية في معالجة المصفوفة؛ حيث تُطبق العمليات الحسابية على المصفوفة ككل. كما يتضح استخدام أسماء متغيرات وصفية وتنسيق عام للكود يتوافق مع أساليب البرمجة الحديثة. يحسب هذا المثال متوسط البيانات المُدخلة تفاعليًا.
متوسط البرنامجأدخل بعض الأرقام واحسب المتوسط.كما هو مكتوب، إذا لم تكن هناك نقاط بيانات، فسيتم إرجاع متوسط يساوي صفرًا.! مع أن هذا قد لا يكون السلوك المرغوب فيه، إلا أنه يبقي هذا المثال بسيطًا.لا شيء ضمنيحقيقي ، قابل للتخصيص :: نقاط (:)عدد صحيح :: عدد_النقاطحقيقي :: متوسط النقاط ، المتوسط الموجب ، المتوسط السالبaverage_points = 0.المعدل_الإيجابي = 0.negative_average = 0.اكتب ( * ، * ) "أدخل عدد النقاط المراد حساب متوسطها:"اقرأ ( * ، * ) عدد_النقاطتخصيص ( نقاط ( عدد_النقاط ))اكتب ( * ، * ) "أدخل النقاط المراد حساب متوسطها:"اقرأ ( * ، * ) نقطة! احسب المتوسط بجمع النقاط وقسمتها على عدد النقاطإذا كان عدد النقاط أكبر من صفر ، فإن متوسط النقاط يساوي مجموع النقاط مقسومًا على عدد النقاط .الآن، قم بحساب المتوسط على النقاط الموجبة والسالبة فقط!إذا كان عدد النقاط أكبر من صفر ، فإن المتوسط الإيجابي يساوي مجموع النقاط ، والنقاط التي تزيد عن صفر ، مقسومًا على عدد النقاط التي تزيد عن صفر .إذا كان عدد النقاط الأقل من الصفر أكبر من الصفر ، فإن المتوسط السلبي يساوي مجموع النقاط ، والنقاط الأقل من الصفر ، مقسومًا على عدد النقاط الأقل من الصفر .! اطبع النتيجة إلى وحدة الإخراج القياسية (stdout) 6اكتب ( * , '(a,g12.4)' ) 'المتوسط = ' , average_pointsاكتب ( * , '(a,g12.4)' ) 'متوسط النقاط الموجبة = ' , positive_averageاكتب ( * , '(a,g12.4)' ) 'متوسط النقاط السالبة = ' , negative_averageإلغاء تخصيص ( نقاط ) ! تحرير الذاكرةمتوسط البرنامج النهائيمزاح
خلال اجتماع لجنة معايير لغة فورتران نفسه الذي اختير فيه اسم "فورتران 77"، أُدرج اقتراح تقني ساخر في التوزيعة الرسمية بعنوان "الحرف O يُعتبر ضارًا ". زعم هذا الاقتراح معالجة الالتباس الذي ينشأ أحيانًا بين الحرف "O" والرقم صفر، وذلك بحذف الحرف من أسماء المتغيرات المسموح بها. مع ذلك، تمثلت الطريقة المقترحة في حذف الحرف من مجموعة الأحرف بالكامل (وبالتالي الإبقاء على 48 كعدد الأحرف المعجمية، والذي زاد مع النقطتين الرأسيتين إلى 49). اعتُبر هذا مفيدًا لأنه سيعزز البرمجة الهيكلية، بجعل استخدام GO TOالعبارة سيئة السمعة كما كان سابقًا أمرًا مستحيلًا. ( FORMATسيتم أيضًا حذف العبارات الإشكالية). لوحظ أن هذا "قد يُبطل بعض البرامج الحالية" ولكن معظمها "ربما كان غير متوافق على أي حال". [ 87 ] [ 88 ]
عندما ناقش X3J3 ما إذا كان الحد الأدنى لعدد الرحلات لحلقة DO يجب أن يكون صفرًا أو واحدًا في Fortran 77، اقترح لورين ميسنر حدًا أدنى لعدد الرحلات يبلغ اثنين - مبررًا (على سبيل المزاح) أنه إذا كان أقل من اثنين، فلن يكون هناك سبب للحلقة.
عند إضافة المصفوفات ذات الأطوال المفترضة، نشأ خلاف حول الرمز المناسب للفصل بين الحدين الأعلى والأدنى. وفي تعليقٍ تناول هذه الحجج، كتب والت برينرد مقالًا بعنوان "علم الفلك مقابل أمراض الجهاز الهضمي"، لأن بعض المؤيدين اقترحوا استخدام النجمة (*)، بينما فضّل آخرون النقطتين الرأسيتين (":").
تكون المتغيرات التي تبدأ أسماؤها بالأحرف من I إلى N من النوع الافتراضي integer، بينما تكون المتغيرات التي تبدأ بأي أحرف أخرى من النوع real، مع إمكانية تغيير المبرمجين للنوع الافتراضي بتصريح صريح. [ 89 ] وقد أدى هذا إلى النكتة: "في لغة فورتران، الله حقيقي (إلا إذا تم التصريح عنه كـ INTEGER)."
نشرت مجلة الرياضيات الأمريكية الشهرية (نوفمبر 1978) مراجعة من سطر واحد في شكل شعر: "نهج حيوي للإغواء،/بأسلوب مشابه تمامًا لأسلوب سوس./مكتوب بخط اليد، مع رسومات والكثير من الضحكات/مستعد لجعل لغة فورتران شفافة."
انظر أيضاً
- f2c
- F2PY – مكتبة بايثون للبرمجة العددية
- فورماك – نظام جبر حاسوبي قائم على لغة فورتران
- لغة برمجة فورتران على ويكي بوكس
- قائمة كتب برمجة فورتران
- قائمة مترجمات لغة فورتران
- قائمة المكتبات العددية للغة فورتران
- قائمة برامج وأدوات فورتران
- قائمة لغات البرمجة
- تمثيل المصفوفة – طريقة تخزين في ذاكرة الحاسوب
- كود السباغيتي – كود مصدر برمجي ذو بنية رديئة
مراجع
- ↑ "مواصفات الكنيسة (شكر وتقدير)" (ملف PDF) . شركة كراي. 1 أكتوبر 2015. مؤرشف (ملف PDF) من الأصل في 5 فبراير 2016. تم الاطلاع عليه في 14 يناير 2016 .
- ↑ تقرير زيارة لمناقشة لغات البرمجة المشتركة في تشيكوسلوفاكيا وبولندا، 1963، جون أ. جوسدن (محرر)، روجر إي. جاي، جون ل. جونز، جاك ن. ميرنر، كريستوفر ج. شو
- ↑ جون باكوس. "تاريخ لغة فورتران 1 و2 و3" (ملف PDF) . softwarepreservation.computerhistory.org. مؤرشف (ملف PDF) من الأصل بتاريخ 26 يوليو 2007. تم الاطلاع عليه بتاريخ 8 فبراير 2026 .
- ↑ ويلسون، ليزلي ب. (2001). لغات البرمجة المقارنة، الطبعة الثالثة . أديسون-ويسلي. ص 16. ISBN 0-201-71012-9
تم إصدار دليل Fortran I في عام 1956، ولكن لم يتم تشغيل البرامج بشكل صحيح إلا في عام 1958
. - ↑ لوه، يوجين (18 يونيو 2010). "لغة البرمجة المثالية للحوسبة عالية الأداء" . مجلة ACM Queue . 8 (6): 30-38 . doi : 10.1145/1810226.1820518 .
- ↑ "HPL - تطبيق محمول لمعيار Linpack عالي الأداء لأجهزة الكمبيوتر ذات الذاكرة الموزعة" . تم الاطلاع عليه بتاريخ 21 فبراير 2015 .
- ↑ "س13. ما هي المعايير؟" . نظرة عامة – وحدة المعالجة المركزية 2017. SPEC . تم الاسترجاع في 13 نوفمبر 2019 .
- 1 2 3 4 برات، تيرينس و. (1975). لغات البرمجة: التصميم والتنفيذ . إنجلوود كليفس، نيو جيرسي: برنتيس هول. الصفحات 314-315 ، 325-326 . ISBN 0-13-730432-3.
- ↑ ويلسون، ليزلي ب. (2001). لغات البرمجة المقارنة، الطبعة الثالثة . أديسون-ويسلي. ص 18. ISBN 0-201-71012-9.
مشكلة أخرى كانت عدم وجود معيار للغة فورتران، وبالتالي فإن الإصدارات المختلفة قليلاً ... من المحتمل أن تفشل عند استخدامها مع مترجم مختلف.
- 1 2 3 4 5 باكوس، جون وارنر ؛ بيبر، آر جيه؛ بيست، شيلدون إف ؛ غولدبيرغ، ريتشارد ؛ هيريك، هارلان إل؛ هيوز، آر إيه؛ ميتشل، إل بي؛ نيلسون، روبرت إيه؛ نوت ، روي ؛ ساير، ديفيد ؛ شيريدان، بيتر بي؛ ستيرن، هارولد؛ زيلر، إيرفينغ (15 أكتوبر 1956). ساير، ديفيد (محرر). نظام ترميز FORTRAN التلقائي لجهاز IBM 704 EDPM: دليل مرجعي للمبرمج (PDF) . نيويورك، الولايات المتحدة الأمريكية: قسم العلوم التطبيقية وقسم أبحاث البرمجة، شركة آي بي إم . الصفحات 2، 19-20 . مؤرشف (PDF) من الأصل في 4 يوليو 2022. تم الاسترجاع في 4 يوليو 2022 . (صفحتان + 51 صفحة + صفحة واحدة)
- 1 2 3 4 5 6 باكوس، جون (أكتوبر - ديسمبر 1998). "تاريخ فورتران 1 و2 و3" (ملف PDF) . حوليات IEEE لتاريخ الحوسبة . 20 (4): 68-78 . رمز Bibcode : 1998IAHC...20d..68B . doi : 10.1109/85.728232 . مؤرشف (ملف PDF) من الأصل في 3 مارس 2016. تم الاطلاع عليه في 17 يونيو 2020 .
- ↑ "فورتران: لغة البرمجة الرائدة" . آي بي إم . 7 مارس 2012. تم الاطلاع عليه في 19 يوليو 2017 .
- ↑ "FORTRAN" . موسوعة بريتانيكا . 14 يونيو 2021. تم الاطلاع عليه في 19 يوليو 2021 .
- 1 2 3 ماكراكين، دانيال د. (1965). دليل برمجة فورتران 4. نيويورك: وايلي. الصفحات 5، 3، 132-133 . LCCN 65-26848 .
- 1 2 3 4 5 6 7 بيمر، روبرت (1966). مقدمة. فورتران 2 و4 للمبرمج: مرجع كامل . بقلم تشارلز ب. ليشت. نيويورك: شركة ماكجرو هيل للنشر. الصفحات من 7 إلى 11.
- ↑ تشابمان، ستيفن ج. (2018). فورتران للعلماء والمهندسين ( الطبعة الرابعة). نيويورك : ماكجرو هيل للتعليم . ص 13. ISBN 978-0-07-338589-1.
- ↑ كانت "مجموعة أحرف فورتران" المحددة بواسطة معيار FORTRAN 77 هي الحد الأدنى من مجموعة الأحرف التي كان مطلوبًا من المترجمات المتوافقة مع المعيار دعمها؛ من الناحية العملية، دعمت العديد من مترجمات FORTRAN 77 مجموعة أحرف ASCII الكاملة.
- ↑ فورتران 90 (ملف PDF) (تقرير). المنظمة الدولية للمقاييس/اللجنة الكهروتقنية الدولية. 1991. مقدمة، ص 14. ISO/IEC 1539:1991(E) . تم الاطلاع عليه في 31 مايو 2026 .
- 1 2 ج. و. باكوس ؛ ر. ج. بيبر؛ س. بيست؛ ر. غولدبيرغ ؛ ل. م. هايبت؛ هـ. ل. هيريك؛ ر . أ. نيلسون؛ د. ساير ؛ ب. ب. شيريدان؛ هـ. ستيرن؛ ل. زيلر؛ ر. أ. هيوز؛ ر. نوت (فبراير 1957). نظام الترميز التلقائي للغة فورتران (ملف PDF) . المؤتمر المشترك الغربي للحاسوب. الصفحات 188-198 . doi : 10.1145/1455567.1455599 .
- ^ ميندل ، ديفيد (2008). أبولو الرقمية . كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا. ص. 99. ردمك 978-0-262-13497-2JSTOR j.ctt5hhn02 . OCLC 228031739 .
- ↑ برايان بيرغستين (20 مايو 2007). "وفاة جون باكوس، مبتكر لغة فورتران" . إم إس إن بي سي . تم الاطلاع عليه بتاريخ 29 أكتوبر 2018 .
- ↑ "فورتران - أول لغة برمجة للحسابات العددية" . مدونة SciHi . ١٥ أكتوبر ٢٠١٩. مؤرشف من الأصل في ٤ يناير ٢٠٢١. تم الاطلاع عليه في ٢٣ نوفمبر ٢٠٢٠ .
- ↑ هاينز، إل إتش (1965). "التجميع التسلسلي ومترجم فورتران 1401". مجلة أنظمة آي بي إم . 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 .
- ↑ بادوا، ديفيد (يناير-فبراير 2000). "مترجم فورتران 1" (ملف PDF) . الحوسبة في العلوم والهندسة . 2 (1): 70-75 . رمز Bibcode : 2000CSE.....2a..70P . doi : 10.1109/5992.814661 . مؤرشف من النسخة الأصلية (ملف PDF) في 17 يونيو 2020.
كان مترجم فورتران 1 أول مشروع رئيسي في تحسين الشيفرة البرمجية. وقد عالج مشاكل بالغة الأهمية، شكل حلها العام محورًا بحثيًا هامًا في تكنولوجيا المترجمات لعدة عقود. ويمكن تتبع أصول العديد من التقنيات الكلاسيكية لتحليل المترجمات وتحسينها وإلهامها إلى مترجم فورتران 1.
- ↑ نظام الترميز الآلي بلغة فورتران لجهاز 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.
- ↑ دليل المعلومات العامة للغة فورتران 2 (ملف PDF) . 1963. مؤرشف (ملف PDF) من الأصل في 26 أبريل 2005. تم الاطلاع عليه في 19 نوفمبر 2014 .
- ↑ دليل مرجعي، FORTRAN II لنظام معالجة البيانات IBM 704 (PDF) . 1958. C28-6000-2. مؤرشف (PDF) من الأصل في 30 أكتوبر 2005.
- ↑ هورويتز، إليس؛ ساهني، سرتاج (1978). أساسيات خوارزميات الحاسوب . روكفيل، ماريلاند: مطبعة علوم الحاسوب. ص 17. ISBN 0-914894-22-6.
- 1 2 3 بوش، جرادي (1983). هندسة البرمجيات باستخدام لغة آدا . مينلو بارك، كاليفورنيا: شركة بنجامين/كومينغز للنشر. الصفحات 3، 15، 44. ISBN 0-8053-0600-5.
- ↑ فيلدمان، إس آي ؛ واينبرغر، بي جيه (1 أغسطس 1978). "مترجم فورتران 77 محمول" (ملف PDF) . 2.4. الاستدعاء الذاتي و2.5. التخزين التلقائي.
- ↑ "الاستدعاء الذاتي" . ملاحظات المستخدم حول برمجة فورتران (UNFP) . تم الاطلاع عليه في 15 سبتمبر 2014 .
- ↑ لغة فورتران 4 لنظام IBM System/360، النموذج C28-6515-6 (ملف PDF) . شركة IBM. أبريل 1966.
- 1 2 3 "دليل مرجعي لمبرمجي DECSYSTEM-10 FORTRAN IV (F40)" (ملف PDF) . جيت هاب . شركة ديجيتال إكويبمنت . تم الاطلاع عليه بتاريخ 15 أبريل 2022 .
- ↑ أنظمة برمجة IBM 7090/7094، لغة FORTRAN IV (ملف PDF) . IBM . مايو 1963. C28-6274-1.
- ↑ مواصفات لغة فورتران 4، ومواصفات البرنامج، وإجراءات التشغيل، IBM 1401 و1440 و1460 (ملف PDF) . IBM. أبريل 1966. C24-3322-2. مؤرشف (ملف PDF) من الأصل في 23 سبتمبر 2017.
- ↑ "قائمة تطبيقات لغة فورتران 1957-1967" . مجموعة متخصصي فورتران التابعة لجمعية الحاسبات البريطانية . حوليات معهد مهندسي الكهرباء والإلكترونيات. 2017. تم الاطلاع عليه بتاريخ 17 أكتوبر 2017 .
- ↑ الخصائص الوظيفية لنظام IBM System/360 موديل 50 (ملف PDF) . شركة IBM. 1967. A22-6898-1. مؤرشف (ملف PDF) من الأصل في 29 أكتوبر 2021 – عبر bitsavers.
- 1 2 3 أهو، ألفريد ف.؛ أولمان، جيفري د. (1977). مبادئ تصميم المترجمات . ريدينغ، ماساتشوستس: أديسون-ويسلي. الصفحات 555، 557، 558-560 . ISBN 0-201-00022-9.
- 1 2 FORTRAN IV . OCLC 20673993 .
- ↑ الأساس المنطقي للغة البرمجة Ada . كامبريدج، ماساتشوستس: Intermetrics, Inc. 1994. ص 6-16. فريق تخطيط/مراجعة Ada 9X، الإصدار المسودة 5.0
- ↑ MIL-STD 1753 - FORTRAN، ملحق وزارة الدفاع الأمريكية للمعيار الوطني الأمريكي X3.9-1978 . مكتب الطباعة الحكومي الأمريكي . 9 نوفمبر 1978. تم الاطلاع عليه في 21 أبريل 2024 .
- ↑ IEEE 1003.9-1992 – معيار IEEE لتكنولوجيا المعلومات – واجهات لغة POSIX® FORTRAN 77 – الجزء 1: الربط لواجهة برمجة تطبيقات النظام (API) . IEEE . تم الاطلاع عليه بتاريخ 24 نوفمبر 2018 .
- ↑ ANSI X3.198-1992 (R2002) (Fortran 90), الملحق ب.1.
- ↑ "مرجع فورتران 95" . Gnu.Org . تم الاطلاع عليه في 10 مايو 2014 .
- ↑ ليونيل، ستيف (30 ديسمبر 2013). "دكتور فورتران في "إنه عالم فورتران الحديث"" مجموعة نقاش منتدى فورتران لشركة إنتل (كانت سابقًا شركة دي إي سي) . إنتل . تم الاطلاع عليه في 11 أبريل 2022. "
- ↑ "Fortran 2003– Last Working Draft" . Gnu.Org . تم الاطلاع عليه في 10 مايو 2014 .
- ↑ "مجموعة العمل الخامسة تُنهي معالجة فورتران 2003 وTR" . nag.co.uk. 14 مايو 2004. مؤرشف من الأصل في 5 أغسطس 2004. تم الاطلاع عليه في 3 أبريل 2023 .يمكن أيضًا تنزيله كملف PDF من الرابط التالي: "الميزات الجديدة في فورتران 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، تكنولوجيا المعلومات – لغات البرمجة – فورتران – الجزء 1: اللغة الأساسية
- ↑ ISO/IEC TS 29113:2012 – تكنولوجيا المعلومات – المزيد من قابلية التشغيل البيني للغة فورتران مع لغة سي . ISO .
- ↑ "مسودة المواصفات الفنية (TS) 29113" (ملف PDF) . wg5-fortran.org . مؤرشفة (ملف PDF) من الأصل بتاريخ 15 يناير 2018.
- ↑ "دكتور فورتران في "الثامن عشر هو الخامس عشر الجديد"" . Software.intel.com . تم الاطلاع عليه بتاريخ 20 نوفمبر 2017 .
- ↑ "Fortran 2018" . ISO . تم الاطلاع عليه في 30 نوفمبر 2018 .
- ↑ "مزيد من التوافق مع لغة C" (ملف PDF) . المنظمة الدولية للمقاييس. مؤرشف (ملف PDF) من الأصل في 1 ديسمبر 2017. تم الاطلاع عليه في 20 نوفمبر 2017 .
- ↑ "ميزات متوازية إضافية في لغة فورتران" . ISO . تم الاطلاع عليه بتاريخ 20 نوفمبر 2017 .
- ↑ "الميزات الجديدة في لغة فورتران 2015" . المنظمة الدولية للمعايير . تم الاطلاع عليه بتاريخ 23 يونيو 2017 .
- ↑ "دكتور فورتران في "إغلاق باب واحد"" . Software.intel.com . تم الاطلاع عليه في 21 سبتمبر 2015 .
- ↑ " دكتور فورتران يتجه نحو الهولندية: فورتران 2015" . Software.intel.com. مؤرشف من الأصل في 1 أبريل 2017. تم الاطلاع عليه في 19 نوفمبر 2014.
عقدت لجنة معايير فورتران التابعة لمنظمة ISO اجتماعها السنوي في دلفت، [...]
- ↑ وثيقة تفسير لغة فورتران 2018 (ملف PDF) . 9 أكتوبر 2018.
- ↑ "Fortran 2023" . wg5-fortran.org . تم الاطلاع عليه بتاريخ 30 نوفمبر 2023 .
- ↑ كيميني، جون ج.؛ كورتز، توماس إي. (11 أكتوبر 1968). "مشاركة الوقت في دارتموث" . مجلة ساينس . 162 (3850): 223-228 . Bibcode : 1968Sci...162..223K . doi : 10.1126/science.162.3850.223 . PMID 5675464 .
- ↑ فيليبس، لي (8 مايو 2014). "مستقبل الحوسبة العلمية: هل تستطيع أي لغة برمجة أن تتفوق على عملاق من خمسينيات القرن الماضي؟" . آرس تكنيكا . تم الاطلاع عليه في 8 مايو 2014 .
- ↑ باشوف، جاي م. (أبريل 1984). "العلماء: فورتران مقابل مودولا-2" . بايت (رسالة). ص 404. تم الاطلاع عليه في 6 فبراير 2015 .
- ↑ غالبرين، بوريس (1993). "26". محاكاة الدوامات الكبيرة للتدفقات الهندسية والجيوفيزيائية المعقدة . لندن: كامبريدج. ص 573. ISBN 978-0-521-43009-8.
- ↑ براندت، سيغموند (1970). الأساليب الإحصائية والحسابية في تحليل البيانات . شركة نورث هولاند للنشر. الصفحات: مقدمة. رقم ISBN 0-7204-2033-4.
- ↑ كورتشيتش، ميلانو (24 نوفمبر 2020). فورتران الحديثة: بناء تطبيقات متوازية فعالة . سايمون وشوستر. ISBN 978-1-61729-528-7.
- ↑ غافني، ب. و.؛ ووتن، ج. و. (1 مايو 1980). طرق لضمان توحيد برمجيات فورتران (تقرير). مختبر أوك ريدج الوطني. OSTI 5361454. مكتبة PFORT
...
- 1 2 ب. أ. فوكس (1977). "بورت - مكتبة برامج فرعية رياضية محمولة". مكتبة برامج فرعية رياضية محمولة . سلسلة محاضرات في علوم الحاسوب. المجلد 57. الصفحات 165-177 . doi : 10.1007/3-540-08446-0_42 . ISBN 978-3-540-08446-4.
PORT ... مكتوب بلغة (PFORT) .. ANS Fortran
- ↑ ويتن، دوغلاس إي.؛ ديمين، بول أ.د. (1975). "فورتران مستقلة عن الآلة والتكوين: فورتران المحمولة {PFortran}". معاملات IEEE في هندسة البرمجيات . SE-1 (1). معهد مهندسي الكهرباء والإلكترونيات (IEEE): 111-124 . doi : 10.1109/tse.1975.6312825 . ISSN 0098-5589 . S2CID 16485156 .
- ↑ "مشكلات قابلية النقل" . مؤرشف من الأصل في 8 مارس 2021. تم الاطلاع عليه في 12 نوفمبر 2018. ..
يناقش .. قابلية نقل .. فورتران
- 1 2 3 4 5 بلات، جون م. (1971). مقدمة في برمجة فورتران 4: استخدام مترجمات واتفور/واتفيف . باسيفيك باليساديس، كاليفورنيا: شركة جوديير للنشر. الصفحات 312، iii. ISBN 0-87620-440-X.
- 1 2 بوبكين، غاري س.؛ بايك، آرثر هـ. (1977). مقدمة في معالجة البيانات . بوسطن: شركة هوتون ميفلين. الصفحات 304-305 ، 309-310 . ISBN 0-395-20628-6.
- ↑ هيلي، إم جيه آر (1968). "نحو فورتران 6" . فورتران العلمية المتقدمة من مركز السيطرة على الأمراض والوقاية منها . مركز السيطرة على الأمراض والوقاية منها. الصفحات 169-172 . مؤرشف من الأصل في 5 يوليو 2009. تم الاسترجاع في 10 أبريل 2009 .
- ↑ "The NeXT Fortran" . مجلة البرمجة الكائنية التوجه . 2 (4). منشورات SIGS: 88. أبريل 1989 – عبر كتب جوجل.
- ↑ "التحديثات" . إنفوورلد . 13 (25). منشورات IDG: 19. 24 يونيو 1991 – عبر كتب جوجل.
- ↑ بيرليس، أ. ج.؛ سميث، ج. و.؛ فان زويرين، مترجم داخلي (IT) HR. مُجمِّع برمجي لجهاز IBM 650 (ملف PDF) . مركز الحوسبة، معهد كارنيجي للتكنولوجيا. مؤرشف (ملف PDF) من النسخة الأصلية في 2 أكتوبر 2012.
- ↑ ميسنر، لورين (1 سبتمبر 1975). "حول توسيع هياكل التحكم في لغة فورتران لتسهيل البرمجة الهيكلية" . إشعارات ACM SIGPLAN . 10 (9). acm.org: 19–30 . doi : 10.1145/987316.987320 .
- ↑ "الصفحة الرئيسية للغة البرمجة F" . Fortran.com. مؤرشف من الأصل في 9 يناير 2015. تم الاطلاع عليه في 19 نوفمبر 2014 .
- ↑ "نظام لغة فورتران لـ .NET" . مؤرشف من الأصل في 18 أكتوبر 2014.
- ↑ "FTN95: Fortran 95 for Windows" . Silverfrost.com . تم الاطلاع عليه بتاريخ 19 نوفمبر 2014 .
- ↑ توزيع ما بعد الاجتماع X3J3 للاجتماع الذي عُقد في مختبر بروكهافن الوطني في نوفمبر 1976.
- ↑ "محو حرف O". مجلة الكمبيوتر الأسبوعية . 3 مارس 1977.
- ↑ قواعد كتابة البيانات (مرجع لغة FORTRAN 77) . تم الاطلاع عليه بتاريخ 29 سبتمبر 2016 .
للمزيد من القراءة
- معايير اللغة
- معيار ANSI x3.9-1966. معيار الولايات المتحدة الأمريكية للغة فورتران (ملف PDF) . المعهد الوطني الأمريكي للمعايير. مؤرشف من الأصل (ملف PDF) بتاريخ 15 مايو 2011. تم الاطلاع عليه بتاريخ 5 مايو 2010 .يُعرف بشكل غير رسمي باسم FORTRAN 66.
- ANSI x3.9-1978. المعيار الوطني الأمريكي - لغة البرمجة فورتران . المعهد الوطني الأمريكي للمعايير. مؤرشف من الأصل في 29 أكتوبر 2013. تم الاطلاع عليه في 11 ديسمبر 2007 .يُعرف أيضًا باسم ISO 1539–1980، ويُعرف بشكل غير رسمي باسم FORTRAN 77.
- ANSI X3.198-1992 (R2002) / ISO/IEC 1539:1991. المعيار الوطني الأمريكي – لغة البرمجة فورتران الموسعة . المعهد الوطني الأمريكي للمعايير / ISO/IEC.يُعرف بشكل غير رسمي باسم فورتران 90.
- ISO/IEC 1539-1:1997. تكنولوجيا المعلومات - لغات البرمجة - فورتران - الجزء 1: اللغة الأساسية (ملف PDF) . مؤرشف من الأصل (ملف PDF) بتاريخ 18 أغسطس 2011. تم الاطلاع عليه بتاريخ 13 ديسمبر 2007 .يُعرف هذا المعيار بشكل غير رسمي باسم فورتران 95. ويتكون من جزأين آخرين. وقد اعتمدت المنظمة الوطنية الأمريكية للمعايير (ANSI) الجزء الأول منه رسميًا.
- ISO/IEC 1539-1:2004. تكنولوجيا المعلومات - لغات البرمجة - فورتران - الجزء 1: اللغة الأساسية (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 31 يوليو 2023.يُعرف بشكل غير رسمي باسم فورتران 2003.
- ISO/IEC 1539-1:2010 (المسودة النهائية للمعيار الدولي). تكنولوجيا المعلومات - لغات البرمجة - فورتران - الجزء 1: اللغة الأساسية (ملف PDF) .يُعرف بشكل غير رسمي باسم فورتران 2008.
- المعايير ذات الصلة
- كنيس، ويلفريد (أكتوبر 1981). "مسودة معيار لغة فورتران الصناعية للوقت الحقيقي" . إشعارات ACM SIGPLAN . 16 (7): 45-60 . doi : 10.1145/947864.947868 . ISSN 0362-1340 . S2CID 8662381 .
- ISO 8651-1:1988 أنظمة معالجة المعلومات – رسومات الحاسوب – روابط لغة نظام النواة الرسومية (GKS) – الجزء 1: FORTRAN . جنيف، سويسرا: ISO . 1988.
- مواد مرجعية أخرى
- معيار ECMA للغة فورتران (ملف PDF) . رابطة مصنعي الحواسيب الأوروبية. أبريل 1965. مؤرشف (ملف PDF) من الأصل في 10 مايو 2008. تم الاطلاع عليه في 17 نوفمبر 2014 .
- دليل مرجعي للغة فورتران 77 الإصدار 4.0 (ملف PDF) . شركة صن مايكروسيستمز، 1995. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 5 يناير 2012. تم الاطلاع عليه بتاريخ 17 نوفمبر 2014 .
- "نموذج ترميز فورتران" (ملف PDF) . شركة IBM . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 8 يونيو 2015. تم الاطلاع عليه بتاريخ 17 نوفمبر 2014 .
- لغة فورتران 4 لنظامي التشغيل IBM System/360 و System/370 (ملف 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)، "Fortran الحديثة في الممارسة العملية"، مطبعة جامعة كامبريدج، ISBN 978-1-13908479-6.
- براينرد، دبليو إس؛ غولدبيرغ، سي إتش؛ آدامز، جيه سي (1996). دليل المبرمج إلى فورتران 90 ( الطبعة الثالثة). سبرينغر. ISBN 978-0-387-94570-5.
- برينرد، والتر (2015). دليل برمجة فورتران 2008. لندن: سبرينغر. ISBN 978-1-4471-6758-7. OCLC 920530344 .
- تشابمان، ستيفن ج. (2018). فورتران للعلماء والمهندسين ( الطبعة الرابعة). نيويورك : ماكجرو هيل للتعليم . الصفحات: 24 + 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.
- إيتر، د.م. (1990). لغة فورتران 77 المهيكلة للمهندسين والعلماء ( الطبعة الثالثة). شركة بنجامين/كومينغز للنشر. رقم ISBN 978-0-8053-0051-2.
- كوفمان، ر. إي. (1978). كتاب تلوين فورتران (ملف PDF) ( الطبعة الأولى). مطبعة معهد ماساتشوستس للتكنولوجيا. رقم ISBN 0-262-61026-4.
- كيريجان، جيه إف (1993). الانتقال إلى فورتران 90 ( الطبعة الأولى). أورايلي وشركاه، المحدودة. رقم ISBN 1-56592-049-X.
- كوبرشميد، مايكل (2002). فورتران الكلاسيكية: البرمجة للتطبيقات الهندسية والعلمية . مارسيل ديكر (دار نشر سي آر سي). رقم ISBN 978-0-8247-0802-3.( مواد تكميلية )
- لورينزو، مارك جونز (2019). تجريد الآلة: تاريخ لغة برمجة فورتران (ترجمة الصيغ) . منشور ذاتيًا. رقم ISBN 978-1082395949.
- لوكيدس، مايك (1990). يونكس لمبرمجي فورتران . سيباستوبول، كاليفورنيا: أورايلي وشركاه، المحدودة. ISBN 0-937175-51-X.
- مكراكين، دانيال د. (1961). دليل برمجة فورتران . نيويورك: وايلي. LCCN 61016618 .
- ميتكالف، مايكل؛ ريد، جون؛ كوهين، مالكولم؛ بادر، راينهولد (2024). شرح لغة فورتران الحديثة: دمج فورتران 2023 (الطبعة السادسة ). مطبعة جامعة أكسفورد. ISBN 9780198876595.
- نيهوف، لاري؛ سانفورد ليستما (1995). فورتران 77 للمهندسين والعلماء مع مقدمة إلى فورتران 90 ( الطبعة الرابعة). برنتيس هول . ISBN 978-0-13-363003-9.
- بيج، كلايف ج. (1988). دليل المبرمج المحترف للغة فورتران 77 (طبعة 7 يونيو 2005 ). لندن: بيتمان. ISBN 978-0-273-02856-7تم الاطلاع عليه بتاريخ 4 مايو 2010 .
- بريس، ويليام هـ. (1996). الوصفات العددية في فورتران 90: فن الحوسبة العلمية المتوازية . كامبريدج، المملكة المتحدة: مطبعة جامعة كامبريدج. ISBN 978-0-521-57439-6.
- رويتش، غريغوري؛ فاتيكا، ماسيميليانو (2013). كودا فورتران للعلماء والمهندسين ( الطبعة الأولى). إلسيفير . ص 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 .
- جيه دبليو باكوس ؛ آر جيه بيبر؛ إس. بيست؛ آر. غولدبيرغ ؛ إل إم هايبت ؛ إتش إل هيريك؛ آر إيه نيلسون؛ دي. ساير ؛ بي بي شيريدان؛ إتش. ستيرن؛ إل. زيلر؛ آر إيه هيوز؛ آر. نوت (فبراير 1957). نظام الترميز التلقائي للغة فورتران (ملف PDF) . المؤتمر المشترك الغربي للحاسوب. الصفحات 188-198 . doi : 10.1145/1455567.1455599 .
- شيفرز، إيان د.؛ سليثهولم، جين (2022). "دعم المترجم لمعايير فورتران 2008 و2018" .
- بيغوت، ديارميد (2006). "فورتران - مترجم باكوس وآخرون عالي المستوى (لغة حاسوب)" . موسوعة لغات الحاسوب . جامعة مردوخ . مؤرشف من الأصل في 8 أكتوبر 2009. تم الاطلاع عليه في 5 مايو 2010 .
- روبرتس، مارك ل.؛ غريفيث، بيتر د. (1985). "اعتبارات تصميمية لمترجم لغة فورتران الاحترافي من آي بي إم، وهو مترجم مُحسِّن". مجلة أنظمة آي بي إم . 24 (1): 49-60 . doi : 10.1147/sj.241.0049 .
روابط خارجية
- ISO/IEC JTC1/SC22/WG5 — الموطن الرسمي لمعايير فورتران
- وثائق معايير فورتران — معايير فورتران
- fortran-lang.org (2020).
- تاريخ لغتي فورتران وفورتران 2 - متحف تاريخ الحاسوب
- فالمر نورود وآخرون: دورة دراسية ذاتية في برمجة فورتران - المجلد الأول - كتاب مدرسي ، شركة علوم الحاسوب، إل سيغوندو، كاليفورنيا (أبريل 1970). ناسا (N70-25287).
- فالمر نورود، شيلدوم بليشر، ومارثا هورتون: دورة دراسية ذاتية في برمجة FORTRAN - المجلد الثاني - كتاب التمارين ، NASA CR-1478 (أبريل 1970)، NASA (N70-25288).
- مقدمة إلى لغة برمجة فورتران ، بقلم راينهولد بادر، نيسارج باتيل، مركز لايبنيز للحوسبة الفائقة .
- برنامج تعليمي حول المصفوفات
- فيكتور إيخوت : مقدمة في البرمجة العلمية بلغة C++17/Fortran2008، فن الحوسبة عالية الأداء، المجلد 3 (ملف PDF). مؤرشف في 5 فبراير 2023 على موقع Wayback Machine .
- مجموعة أوراق جون دبليو باكوس ، قسم المخطوطات، مكتبة الكونغرس ، واشنطن العاصمة
- فورتران
- عائلة لغات البرمجة فورتران
- الاختراعات الأمريكية
- لغات برمجة المصفوفات
- لغات البرمجة المترجمة
- معايير الحاسوب
- لغات البرمجة العددية
- لغات البرمجة الكائنية التوجه
- لغات البرمجة الإجرائية
- لغات البرمجة عالية المستوى
- برنامج IBM
- لغات البرمجة التي تم إنشاؤها عام 1957
- لغات البرمجة ذات معيار ISO
- لغات البرمجة ذات الكتابة الثابتة
- أدوات برمجة يونكس
- برنامج عام 1957
