ALGOL 60

لغة ALGOL 60 ( اختصارًا لـ Algorithmic Language 1960 ) هي إحدى لغات برمجة الحاسوب من عائلة ALGOL . وقد جاءت بعد ALGOL 58 التي قدمت كتل التعليمات البرمجية وأزواج ` <code> < ...beginend

استند نيكلاوس ويرث في تطوير لغة البرمجة ALGOL W الخاصة به إلى لغة ALGOL 60 قبل أن ينتقل إلى تطوير لغة باسكال . كان من المفترض أن تكون ALGOL W الجيل التالي من ALGOL، لكن لجنة ALGOL 68 فضّلت تصميمًا أكثر تعقيدًا وتطورًا بدلًا من نسخة مبسطة من ALGOL 60. تُسمى إصدارات ALGOL الرسمية نسبةً إلى سنة نشرها الأولى. تختلف ALGOL 68 اختلافًا جوهريًا عن ALGOL 60، وقد وُجهت إليها بعض الانتقادات لهذا الاختلاف، ولذلك يُشير مصطلح "ALGOL" عمومًا إلى لهجات ALGOL 60.

التقييس

كانت لغة ALGOL 60 - إلى جانب لغة COBOL - أول اللغات التي سعت إلى التوحيد القياسي.

  • ISO 1538:1984 لغات البرمجة - ALGOL 60 (مستقرة)
  • ISO/TR 1672:1977 تمثيل الأجهزة للرموز الأساسية في لغة ALGOL ... (تم سحبها الآن)

تاريخ

استُخدمت لغة ALGOL 60 بشكل رئيسي من قِبل علماء الحاسوب الباحثين في الولايات المتحدة وأوروبا. إلا أن استخدامها في التطبيقات التجارية واجه صعوباتٍ بسبب غياب معايير الإدخال والإخراج في وصفها، وقلة اهتمام كبرى شركات تصنيع الحواسيب بها. ومع ذلك، أصبحت ALGOL 60 معيارًا لنشر الخوارزميات، وكان لها أثرٌ بالغٌ على تطوير لغات البرمجة لاحقًا.

قام جون باكوس بتطوير طريقة باكوس للشكل الطبيعي لوصف لغات البرمجة خصيصًا للغة ALGOL 58. وقد تم تنقيحها وتوسيعها بواسطة بيتر نور للغة ALGOL 60، وبناءً على اقتراح دونالد كنوث ، أعيد تسميتها إلى شكل باكوس-نور . [ 1 ]

بيتر نور: "بصفتي محررًا لنشرة ALGOL، انخرطت في المناقشات الدولية حول اللغة، وتم اختياري لأكون عضوًا في المجموعة الأوروبية لتصميم اللغة في نوفمبر 1959. وبهذه الصفة، كنت محررًا لتقرير ALGOL 60، الذي صدر نتيجة لاجتماع ALGOL 60 في باريس في يناير 1960." [ 2 ]

حضر الأشخاص التالي ذكرهم الاجتماع في باريس (من 11 إلى 16 يناير):

قدّم آلان بيرليس وصفًا حيًا للاجتماع: "كانت الاجتماعات مُرهِقة، لا تنتهي، ومُبهجة. كان المرء يشعر بالضيق عندما تُرفض أفكاره الجيدة مع الأفكار السيئة للآخرين. ومع ذلك، استمرّ الاجتهاد طوال الفترة. كان التناغم بين الثلاثة عشر شخصًا ممتازًا."

لم تكن اللغة في الأصل تتضمن خاصية الاستدعاء الذاتي . وقد أُضيفت إلى المواصفات في اللحظة الأخيرة، رغماً عن رغبة بعض أعضاء اللجنة. [ 3 ]

اجتمع العديد من مؤلفي التقرير الأصلي في أبريل 1962 لحل المشكلات التي نشأت. وأسفر عملهم عن نشر "التقرير المنقح حول لغة الخوارزميات ALGOL 60". [ 4 ]

وقد تم تقديم المزيد من التوضيحات وإدراج إجراءات الإدخال/الإخراج من قبل المجموعة العاملة 2.1 التابعة للجنة الفنية 2 في الاتحاد الدولي لمعالجة المعلومات. وقد نُشرت هذه الجهود تحت عنوان "التقرير المعدل عن لغة الخوارزميات ALGOL 60" في عام 1975. [ 5 ]

ألهمت لغة ALGOL 60 العديد من اللغات التي تلتها. وقد علّق توني هوار قائلاً: "هذه لغة متقدمة جدًا على عصرها، لدرجة أنها لم تكن مجرد تحسين للغات السابقة فحسب، بل كانت أيضًا أفضل من جميع اللغات التي تلتها تقريبًا." [ 6 ] [ 7 ]

الجدول الزمني لتطبيقات ALGOL 60

حتى الآن، كان هناك ما لا يقل عن 70 إضافة وتوسيع واشتقاق ولغات فرعية من ALGOL 60. [ 8 ]

اسمسنةمؤلفولايةوصفوحدة المعالجة المركزية المستهدفة
X1 ALGOL 60أغسطس 1960 [ 9 ]إدسجر دبليو ديكسترا وجاب أ. زونفيلدهولنداأول تطبيق للغة ALGOL 60 [ 10 ]إلكترولوجيكا إكس 1
الغول1960 [ 11 ]إدغار تي. آيرونزالولايات المتحدة الأمريكيةALGOL 60مركز السيطرة على الأمراض 1604
بوروز ألغول (عدة أنواع)1961شركة بوروز (بمشاركة هوار ، وديجكسترا ، وآخرين)الولايات المتحدة الأمريكيةأساس أجهزة الكمبيوتر من نوع Burroughs (والآن أجهزة الكمبيوتر القائمة على Unisys MCP )أنظمة بوروز الكبيرة وأنظمة متوسطة المدى
قضية ALGOL1961الولايات المتحدة الأمريكيةتم التعاقد على Simula في الأصل كامتداد للمحاكاة لبرنامج Case ALGOLيونيفاك 1107
غوغول1961ويليام م. ماكيمانالولايات المتحدة الأمريكيةلنظام المشاركة الزمنية ODINPDP-1
DASK ALGOL1961بيتر ناور ، يورن ينسنالدنماركALGOL 60DASK في Regnecentralen
فطر سميل1962تورجيل إيكمان ، كارل إريك فروبيرجالسويدALGOL 60معهد سميل للتعلم الآلي في جامعة لوند
جير ألغول1962بيتر ناور ، يورن ينسنالدنماركALGOL 60GIER at Regnecentralen
دارتموث ALGOL 30 [ 12 ]1962توماس يوجين كورتز ، ستيفن جيه جارلاند ، روبرت إف هارجريفز، أنتوني دبليو كناب ، خورخي لاسيرالولايات المتحدة الأمريكيةALGOL 60LGP-30
ألكور ماينز 20021962أورسولا هيل-ساميلسون، هانز لانغماكألمانياسيمنز 2002
ألكور-إلينوي 70901962 [ 13 ] [ 14 ]مانفريد بول ، وهانز روديجر ويهل، وديفيد جريس ، ورودولف بايرالولايات المتحدة الأمريكية ، ألمانيا الغربيةتم تطبيق برنامج ALGOL 60 في جامعة إلينوي وجامعة ميونخ التقنية ، 1962-1964آي بي إم 7090
يو إس إس 90 ألغول1962ل. بيترونإيطاليا
إليوت ألغول1962كار هوارالمملكة المتحدةتمت مناقشة ذلك في محاضرته التي ألقاها بمناسبة حصوله على جائزة تورينج عام 1980إليوت 803 وإليوت 503
ALGOL 601962رولاند ستروبل [ 15 ]ألمانيا الشرقيةتم تنفيذه بواسطة معهد الرياضيات التطبيقية التابع للأكاديمية الألمانية للعلوم في برلينزايس-ريشين أوتومات ZRA 1
ALGOL 601962برنارد فوكوا , لويس بوليت [ 16 ]فرنسامعهد المعلوماتية والرياضيات التطبيقية في غرونوبل (IMAG) وشركة الآلات الثوربول جاما 60
مترجم ألغول1962جي فان دير ماي و دبليو إل فان دير بويلهولنداStaatsbedrijf der Posterijen، Telegrafie و Telefonieحمار وحشي
كيدزغروف ألغول1963إف جي دنكانالمملكة المتحدةشركة إنجلش إلكتريك KDF9
فروة الرأس [ 17 ]1963ستيفن ج. جارلاند ، أنتوني و. كناب ، توماس يوجين كورتزالولايات المتحدة الأمريكيةمعالج ALgol مستقل لمجموعة فرعية من ALGOL 60LGP-30
فالغول1963فال شورالولايات المتحدة الأمريكيةاختبار لمترجم META II
FP6000 Algol1963روجر موركنداكُتب لصالح شركة ساسكاتشوان للطاقةFP6000
حجر الشحذ1964برايان راندل ولوفورد جون راسلالمملكة المتحدةقسم الطاقة الذرية في شركة إنجلش إلكتريك. مقدمة لمشاريع فيرانتي بيغاسوس ، ومختبرات الفيزياء الوطنية ACE ، وإنجلش إلكتريك DEUCEشركة إنجلش إلكتريك KDF9
ALGOL 601964جان كلود بوسارد [ 18 ]فرنسامعهد المعلوماتية والرياضيات التطبيقية في غرونوبلآي بي إم 7090
عبقري الخوارزميات1964بوريه لانجفورسالسويدتمت إضافة سجلات البيانات ووحدات الإدخال/الإخراج المستوحاة من لغة كوبولداتاساب دي-21
ALGOL 601965كلود بير [ 19 ]فرنسامركز الحساب لكلية العلوم بنانسيآي بي إم 1620
دارتموث ALGOL1965ستيفن ج. جارلاند ، سار بلومسون، رون مارتنالولايات المتحدة الأمريكيةALGOL 60نظام دارتموث لتقاسم الوقت لمحرك GE 235
نو ألغول1965النرويجيونيفاك
ALGOL 601965 [ 20 ]إف إي جيه كروسمان أريتزهولندامُجمِّع MC لجهاز EL-X8إلكترولوجيكا X8
ALGEK1965الاتحاد السوفياتيمينسك-22ALGЭК، المبني على دعم ALGOL 60 و COBOL ، للمهام الاقتصادية
مالغول1966عام. أ. فييل، م. كوتلي، م. راخندي،جمهورية إستونيا الاشتراكية السوفيتيةمينسك-22
الطحالب1967مجموعة GAMS (GAMS، مجموعة أتمتة البرمجة للآلات ذات الفئة المتوسطة)، بالتعاون مع أكاديميات كوميكون للعلومكوميكونمينسك-22 ، لاحقاً ES EVM ، BESM
ALGOL/ZAM1967بولنداحاسوب ZAM البولندي
ألغول الصيني1972الصينالأحرف الصينية، معبر عنها عبر نظام الرموز
DG/L1972الولايات المتحدة الأمريكيةعائلة حواسيب DG Eclipse
NASE1990إريك شونفيلدرألمانيامترجملينكس وويندوز
مارست2000أندرو ماخورينروسيامترجم ALGOL 60 إلى Cجميع وحدات المعالجة المركزية التي تدعمها مجموعة مترجمات GNU؛ MARST جزء من مشروع GNU

تضمنت لهجات بوروز لهجات برمجة أنظمة خاصة مثل ESPOL و NEWP .

ملكيات

لم تكن لغة ALGOL 60، وفقًا لتعريفها الرسمي، تحتوي على أي وظائف إدخال/إخراج؛ إذ كانت التطبيقات تُعرّف وظائفها الخاصة بطرقٍ نادراً ما كانت متوافقة مع بعضها البعض. في المقابل، قدّمت لغة ALGOL 68 مكتبةً واسعةً من وظائف النقل (مصطلح ALGOL 68 للإدخال/الإخراج).

وفرت لغة ALGOL 60 استراتيجيتين لتقييم تمرير المعاملات : الاستدعاء بالقيمة ، والاستدعاء بالاسم . يحدد تعريف الإجراء، لكل معامل رسمي، القيمة المراد استخدامها: القيمة المحددة للاستدعاء بالقيمة، والقيمة المحذوفة للاستدعاء بالاسم. يعيد الاستدعاء بالاسم حساب كل معامل عند استخدامه في تعبير، مما يؤثر على بعض جوانبه مقارنةً بالاستدعاء بالمرجع . على سبيل المثال، بدون تحديد المعاملات كقيمة أو مرجع ، يستحيل إنشاء إجراء لتبديل قيم معاملين إذا كان المعاملان الفعليان المُمرران هما متغير عددي ومصفوفة مُفهرسة بنفس المتغير. [ 21 ] تخيل تمرير مؤشر إلى swap(i, A[i]) إلى دالة. الآن، في كل مرة يُشار فيها إلى swap، يُعاد تقييمها. لنفترض أن i  := 1 و A[i]  := 2، ففي كل مرة يتم فيها استدعاء دالة التبديل، ستُعيد المجموعة الأخرى من القيم ([1,2]، [2,1]، [1,2] وهكذا). يحدث وضع مشابه مع دالة عشوائية يتم تمريرها كوسيط فعلي.

يُعرف أسلوب الاستدعاء بالاسم لدى العديد من مصممي المترجمات البرمجية بفضل " الدوال الضمنية " المميزة المستخدمة في تنفيذه. وقد ابتكر دونالد كنوث " اختبار الرجل أو الصبي " لتمييز المترجمات التي تُنفذ " الاستدعاء الذاتي والمراجع غير المحلية" بشكل صحيح. ويتضمن هذا الاختبار مثالاً على الاستدعاء بالاسم.

مستويات اللغة

تُقرّ تقارير ALGOL 60 بثلاثة مستويات لغوية مختلفة، وهي: لغة مرجعية، ولغة نشر، وعدة تمثيلات للأجهزة. لا تحتوي اللغتان المرجعية والنشر على كلمات محجوزة، إلا أن التقارير توصي [ 22 ] بحجز بعض المعرّفات للوظائف القياسية. تحتوي اللغة المرجعية على أحرف صغيرة ورموز أخرى غير متوفرة في مجموعات الأحرف ذات 6 بتات الشائعة في عصر ALGOL 60. [ أ ]

تصف التقارير بإيجاز تمثيلات الأجهزة. وتختلف التطبيقات في تمثيلاتها للأجهزة للرموز الأساسية المستقلة المسطرة. [ 23 ]

  1. الكلمات المحجوزة
  2. الإيقاف

كما أنها تختلف في تمثيلها المادي للفواصل.

ALGOL 60 الكلمات المحجوزة والمعرفات المقيدة

يحتوي التقرير المُعدَّل على 24 رمزًا أساسيًا مكتوبة بخط غامق. مع أن هذه الكلمات غير محجوزة في لغات المرجع والنشر، إلا أن بعض تطبيقات الأجهزة قد تحجزها. يوجد 24 كلمة من هذا النوع في التقرير المُعدَّل:

  • ARRAY
  • BEGIN
  • BOOLEAN
  • COMMENT
  • DO
  • ELSE
  • END
  • FALSE
  • FOR
  • GOTO
  • IF
  • INTEGER
  • LABEL
  • OWN
  • PROCEDURE
  • REAL
  • STEP
  • STRING
  • SWITCH
  • THEN
  • TRUE
  • UNTIL
  • VALUE
  • WHILE

يوجد 35 كلمة محجوزة من هذا القبيل في اللغة الفرعية القياسية لأنظمة بوروز الكبيرة :

  • ALPHA
  • ARRAY
  • BEGIN
  • BOOLEAN
  • COMMENT
  • CONTINUE
  • DIRECT
  • DO
  • DOUBLE
  • ELSE
  • END
  • EVENT
  • FALSE
  • FILE
  • FOR
  • FORMAT
  • GO
  • IF
  • INTEGER
  • LABEL
  • LIST
  • LONG
  • OWN
  • POINTER
  • PROCEDURE
  • REAL
  • STEP
  • SWITCH
  • TASK
  • THEN
  • TRUE
  • UNTIL
  • VALUE
  • WHILE
  • ZIP

يوجد 71 معرفًا مقيدًا من هذا القبيل في اللغة الفرعية القياسية لأنظمة بوروز الكبيرة:

  • ACCEPT
  • AND
  • ATTACH
  • BY
  • CALL
  • CASE
  • CAUSE
  • CLOSE
  • DEALLOCATE
  • DEFINE
  • DETACH
  • DISABLE
  • DISPLAY
  • DIV
  • DUMP
  • ENABLE
  • EQL
  • EQV
  • EXCHANGE
  • EXTERNAL
  • FILL
  • FORWARD
  • GEQ
  • GTR
  • IMP
  • IN
  • INTERRUPT
  • IS
  • LB
  • LEQ
  • LIBERATE
  • LINE
  • LOCK
  • LSS
  • MERGE
  • MOD
  • MONITOR
  • MUX
  • NEQ
  • NO
  • NOT
  • ON
  • OPEN
  • OR
  • OUT
  • PICTURE
  • PROCESS
  • PROCURE
  • PROGRAMDUMP
  • RB
  • READ
  • RELEASE
  • REPLACE
  • RESET
  • RESIZE
  • REWIND
  • RUN
  • SCAN
  • SEEK
  • SET
  • SKIP
  • SORT
  • SPACE
  • SWAP
  • THRU
  • TIMES
  • TO
  • WAIT
  • WHEN
  • WITH
  • WRITE

وكذلك أسماء جميع الدوال الجوهرية.

المشغلون القياسيون

أولويةالمشغل
الحساب الأولأولاً↑ (القوة)
ثانية×، / (عدد حقيقي)، ÷ (عدد صحيح)
ثالث+، -
ثانية<، ≤، =، ≥، >، ≠
ثالث¬ (ليس)
رابعًا∧ (و)
الخامس∨ (أو)
السادس⊃ (دلالة)
السابع≡ (تكافؤ)

أمثلة ومشاكل قابلية النقل

مقارنات نماذج التعليمات البرمجية

ALGOL 60

الإجراء Absmax(a) الحجم: (n, m) النتيجة: (y) المؤشرات: (i, k)؛ القيمة n، m؛ المصفوفةعدد صحيح n، m، i، k؛ عدد حقيقيتعليق: أكبر عنصر مطلق في المصفوفة a، ذات الحجم n × m. يتم نسخها إلى y، ويتم نسخ الرموز السفلية لهذا العنصر إلى i و k؛ ابدأ عدد صحيح p، q؛ y := 0; i := k := 1; for p := 1 step 1 until n do for q := 1 step 1 until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]); i := p; k := q نهاية نهاية Absmax؛

تختلف التطبيقات في كيفية كتابة النص المكتوب بخط غامق. على سبيل المثال، يجب استخدام كلمة "INTEGER" (بما في ذلك علامات الاقتباس) في بعض التطبيقات بدلاً من كلمة " integer " المذكورة أعلاه، مما يجعلها رمزًا خاصًا بلغة ALGOL.

يستخدم الإصدار التالي تمثيل الأجهزة الذي يدعمه مُصرّف ALCOR [ 24 ] لجهاز IBM 7090. تم حذف بعض رموز ALGOL. بالإضافة إلى ذلك، يستخدم هذا الإصدار رمز النقطتين الرأسيتين (:) ..لتمثيل رمز النقطتين، .=ورمز التعيين (:) (/ and )/بدلاً من الأقواس، ورمز .,الفاصلة المنقوطة (:) لتمثيل رمز الفاصلة المنقوطة (:). لم تكن الأحرف الصغيرة مدعومة، لذا تم استخدام الأحرف الكبيرة.

الإجراء: القيمة المطلقة القصوى (أ) الحجم (ن، م) النتيجة (ص) الرموز (ط، ك). 'VALUE' N, M., 'ARRAY' A., 'INTEGER' N, M, I, K., 'REAL' Y., «التعليق» هو العنصر الأعظم على الإطلاق في المصفوفة أ، بحجم ن × م. يتم نسخها إلى Y، ويتم نسخ رموز هذا العنصر إلى I و K. 'يبدأ' 'عدد صحيح' P، Q، Y = 0; I = K = 1., 'FOR' P .= 1 'STEP' 1 'UNTIL' N 'DO' 'FOR' Q .= 1 'STEP' 1 'UNTIL' M 'DO' إذا كانت القيمة المطلقة لـ A(/P, Q/)) أكبر من Y، فإن 'BEGIN' Y .= ABS(A(/P, Q/))., I = P; K = Q 'نهاية' نهاية ABSMAX.

فيما يلي مثال على كيفية إنشاء جدول باستخدام خوارزمية إليوت 803 : [ 25 ]

اختبار خوارزمية الفاصلة العائمة. ابدأ حقيقي أ، ب، ج، د اقرأ D' لـ A:= 0.0 الخطوة D حتى 6.3 كرر يبدأ طباعة ثقب (3) ،££L??' ب := جا(أ)' C := COS(A)' طباعة ثقب (3) ، خط متماثل ، محاذاة (1،6) ، أ، ب، ج نهاية' نهاية'

عائلة ALGOL 60

نظرًا لعدم احتواء لغة ALGOL 60 على وظائف إدخال/إخراج، فلا يوجد برنامج "مرحباً بالعالم" قابل للنقل مكتوب بلغة ALGOL. مع ذلك، يمكن (ولا يزال) تجميع البرنامج التالي وتشغيله على تطبيق ALGOL الخاص بأجهزة Unisys A-Series الرئيسية، وهو تبسيط مباشر لرمز مأخوذ من دليل اللغة [ 26 ] في صفحة "مرحباً بالعالم!" من قسم علوم الحاسوب والمعلومات بجامعة ميشيغان - ديربورن، ضمن قسم "برنامج مثال ALGOL". [ 27 ]

يبدأ ملف F(النوع=بعيد)؛ مصفوفة EBCDIC E[0:11]؛ استبدل الحرف E بعبارة "HELLO WORLD!"؛ اكتب(F, *, E)؛ نهاية.

حيث يمثل * إلخ مواصفات التنسيق المستخدمة في لغة فورتران، على سبيل المثال [ 28 ]

برنامج أبسط يستخدم تنسيقًا مضمنًا:

ابدأ الملف F ( النوع = عن بُعد اكتب ( F ، < "مرحباً بالعالم!" > انتهى .

برنامج أبسط باستخدام عبارة العرض:

BEGIN DISPLAY ( "HELLO WORLD!" ) END .

فيما يلي مثال بديل، باستخدام إدخال/إخراج إليوت ألغول. استخدم إليوت ألغول أحرفًا مختلفة لـ "علامة اقتباس السلسلة المفتوحة" و "علامة اقتباس السلسلة المغلقة"، ممثلة هنا بـ ' و ' .    

برنامج HiFolks ؛ ابدأ بطباعة ' Hello world ' ؛ انتهى ؛

هذه نسخة خاصة بجهاز إليوت 803 ألغول (A104). كان جهاز إليوت 803 القياسي يستخدم شريطًا ورقيًا بخمسة ثقوب، ولذلك كان يدعم الأحرف الكبيرة فقط. لم يكن الرمز يحتوي على علامات اقتباس، لذا استُخدم رمز الجنيه الإسترليني ( £ ) للاقتباس المفتوح وعلامة الاستفهام ( ؟ ) للاقتباس المغلق. وُضعت التسلسلات الخاصة بين علامتي اقتباس مزدوجتين (على سبيل المثال، £., L?? تُنتج سطرًا جديدًا على جهاز الطباعة عن بُعد).

 أهل المدينة يبدأ اطبع "مرحباً بالعالم" نهاية'

سمحت نسخة الإدخال/الإخراج من سلسلة ICT 1900 Algol بإدخال البيانات من شريط ورقي أو بطاقة مثقبة. وكان وضع "الشريط الورقي الكامل" يسمح باستخدام الأحرف الصغيرة. وكانت المخرجات تُرسل إلى طابعة خطية. لاحظ استخدام الأقواس ()، والرموز ()، وعلامة النسبة المئوية (  %). [ 29 ]

 برنامج (مرحباً) 'يبدأ' يُستخدم الرمز '(' لفتح الاقتباس، والرمز ')' لإغلاقه، ويجب أن تكون المساحة القابلة للطباعة يُكتب على شكل % لأن المسافات يتم تجاهلها؛ اكتب النص('('HELLO%WORLD')'); 'نهاية' 'ينهي'

يستخدم هذا المثال outstringالإجراء كما هو محدد في التقرير المعدل:

يبدأ يستخدم التعليق عمليات الإدخال/الإخراج من التقرير المعدل. يتم تجميعه وتشغيله باستخدام مترجم gnu marst؛ outstring (1, "hello world!\n") نهاية

خطوة

LEAP هي امتداد للغة البرمجة ALGOL 60، توفر ذاكرة ترابطية للثلاثيات. تشير العناصر الثلاثة في الثلاثية إلى العلاقة بين سمة كائن وقيمة محددة. ابتكر LEAP كل من جيروم فيلدمان (جامعة كاليفورنيا، بيركلي) وبول روفنر (مختبر لينكولن التابع لمعهد ماساتشوستس للتكنولوجيا) عام 1967. كما تم تطبيق LEAP في لغة SAIL.

انظر أيضاً

ملحوظات

  1. يدعم نظام يونيكود ، الذي ظهر بعد عقود، جميع
    • U+003A : القولون
    • U+003B ؛ فاصلة منقوطة
    • U+005B [ قوس مربع أيسر
    • U+005D ] قوس مربع أيمن
    • U+00AC ¬ لا توقع
    • U+00D7 × علامة الضرب
    • U+00F7 ÷ علامة القسمة
    • U+2191 سهم للأعلى
    • U+2227 منطقي و
    • U+2228 أو المنطقي
    • U+2260 لا يساوي
    • U+2261 مطابق لـ
    • U+2264 أقل من أو يساوي
    • U+2265 أكبر من أو يساوي
    • U+2283 مجموعة شاملة من
    بالإضافة إلى الأحرف الصغيرة.

مراجع

  1. كنوت، دونالد إي. (ديسمبر 1964). "صيغة باكوس العادية مقابل صيغة باكوس العادية" . اتصالات رابطة آلات الحوسبة . 7 (12): 735-736 . doi : 10.1145/355588.365140 . S2CID 47537431 . 
  2. بيان جائزة ACM / بيتر نور ، 2005
  3. فان إمدن، مارتن (2014). "كيف دخلت الاستدعاءات المتكررة إلى البرمجة: قصة مؤامرة وخيانة ودلالات لغات البرمجة المتقدمة" . مكان المبرمج .
  4. ^ باكوس، جيه دبليو؛ باور، فلوريدا؛ جرين، ج. كاتز، C .؛ مكارثي، J .؛ بيرليس، AJ؛ روتيسهاوزر، H .؛ ساملسون، ك. فوكوا، ب. ويجستين، JH. فان فيجنجاردن، أ؛ وودجر، م. (1963). "تقرير منقح عن اللغة الخوارزمية ALGOL 60" . اتصالات ACM . 6 : 1– 17. دوى : 10.1145/366193.366201 .
  5. "تقرير معدل عن لغة الخوارزميات ALGOL 60" (PDF) .
  6. هوار، مجلة أبحاث الحاسوب (ديسمبر 1973). "تلميحات حول تصميم لغات البرمجة" (ملف PDF) . ص 27. (يُنسب هذا البيان أحيانًا بشكل خاطئ إلى إدسكار دبليو ديكسترا ، الذي شارك أيضًا في تنفيذ أول مترجم للغة ALGOL 60. )
  7. أبيلسون، هال ؛ ديبفيج، آر كيه ؛ وآخرون . ريس، جوناثان؛ كلينجر، ويليام (محررون). "تقرير منقح (3) حول مخطط لغة الخوارزميات (مُهدى إلى ذكرى ALGOL 60)" . تم الاطلاع عليه بتاريخ 20 أكتوبر 2009 . 
  8. موسوعة لغات الحاسوب، مؤرشفة في 27 سبتمبر 2011، على موقع Wayback Machine
  9. دايلايت، إي جي (2011). "نداء ديكسترا للتعميم: ظهور الإجراء التكراري، أواخر الخمسينيات - أوائل الستينيات" . مجلة الكمبيوتر . 54 (11): 1756-1772 . doi : 10.1093/comjnl/bxr002 .
  10. كروسمان أريتز، FEJ (30 يونيو 2003). "مترجم دايجسترا-زونيفيلد ALGOL 60 لجهاز Electrologica X1" (ملف PDF) . هندسة البرمجيات . تاريخ علوم الحاسوب. أمستردام: مركز الرياضيات والمعلوماتية. ISSN 1386-3711 . مؤرشف من الأصل (ملف PDF) بتاريخ 17 يناير 2004. 
  11. آيرونز، إدغار تي ، مُترجم موجه نحو بناء الجملة للغة ALGOL 60، اتصالات ACM، المجلد 4، ص 51. (يناير 1961)
  12. كورتز 1978 .
  13. غريس، د.؛ بول، م.؛ ويهل، هـ. ر. (1965). "بعض التقنيات المستخدمة في جهاز ALCOR Illinois 7090" . مجلة اتصالات رابطة آلات الحوسبة . 8 (8): 496-500 . doi : 10.1145/365474.365511 . S2CID 18365024 . 
  14. باير، ر.؛ غريس، د.؛ بول، م.؛ ويهل، هـ. ر. (1967). "تفريغ بيانات ما بعد الوفاة لطائرة ألكور إلينوي 7090/7094" . مجلة اتصالات رابطة آلات الحوسبة . 10 (12): 804-808 . doi : 10.1145/363848.363866 . S2CID 3783605 . 
  15. ^ Rechenautomaten mit Trommelspeicher ، Förderverein der Technischen Sammlung Dresden
  16. مونيه-كون، بيير (2014). "ألغول في فرنسا: من مشروع عالمي إلى ثقافة مضمنة" . حوليات IEEE لتاريخ الحوسبة . 36 (4): 6-25 . Bibcode : 2014IAHC...36d...6M . doi : 10.1109/MAHC.2014.50 . ISSN 1058-6180 . 
  17. كورتز 1978 ، ص 517.
  18. ^ بوسارد، جان كلود (يونيو 1964). دراسة وتحقيق مترجم Algol60 حول الحاسبة الإلكترونية من النوع IBM 7090/94 et 7040/44 [ تصميم وتنفيذ مترجم Algol60 على الآلة الحاسبة الإلكترونية IBM 7090/94 و 7040/44 ] (دكتوراه) (باللغة الفرنسية). جامعة جوزيف فورييه - غرونوبل الأولى.
  19. ^ كلود بير (27 أبريل 1965). وصف لمترجم ALGOL . المنطقة الأوروبية 1620 مجموعة المستخدمين . آي بي إم.
  20. ^ كروسمان أريتز، FEJ (1973). مترجم Algol 60 في Algol 60 . مسالك مركز الرياضيات. أمستردام: مركز الرياضيات.
  21. أهو، ألفريد فسيثي، رافي ؛ أولمان، جيفري د. (1986). المترجمات: المبادئ والتقنيات والأدوات (الطبعة الأولى ). أديسون-ويسلي. ISBN  978-0-201-10194-2.القسم 7.5، والمراجع الواردة فيه
  22. نور وآخرون، 1963 ، 3.2.4. الدوال القياسية
  23. نور وآخرون، ١٩٦٣ ، ٢.١. الحروف : (١) تجدر الإشارة إلى أن التسطير في اللغة المرجعية يُستخدم [هنا يبدو كـ underlined؛ NL] لتعريف الرموز الأساسية المستقلة (انظر القسمين ٢.٢.٢ و٢.٣). ويُفهم من ذلك أنه لا علاقة لهذه الرموز بالحروف الفردية التي تتكون منها. ولن يُستخدم التسطير في هذا التقرير لأي غرض آخر.
  24. "دليل المستخدم لجهاز الترجمة ALCØR-ILLINØIS-7090 ALGØL-60"
  25. "803 ALGOL" ، دليل استخدام جهاز إليوت 803 ALGOL
  26. "لغة برمجة ALGOL" . www.engin.umd.umich.edu . مؤرشف من الأصل بتاريخ 10 فبراير 2010. تم الاطلاع عليه بتاريخ 11 يناير 2022 .
  27. "برنامج مثال: مرحباً بالعالم!" . www.engin.umd.umich.edu . مؤرشف من الأصل بتاريخ 4 فبراير 2010. تم الاطلاع عليه بتاريخ 11 يناير 2022 .
  28. مثال فورتران# "مرحباً بالعالم!"
  29. "سلسلة ICL 1900: لغة Algol" . منشور ICL التقني رقم 3340. 1965.

فهرس

للمزيد من القراءة