ألغول

ألغول
دليل عام 1965 لـ ALGOL-20
نموذجإجرائي ، أمري ، منظم
عائلةألغول
صمم بواسطةباور ، بوتنبروخ ، روتيسهاوزر ، ساملسون ، باكوس ، كاتز ، بيرليس ، فيجستين ، نور ، فوكوا ، فان فيجنجاردن ، وودجر ، جرين، مكارثي
ظهرت لأول مرة1958 ؛ منذ 66 عامًا ( 1958 )
الانضباط في الطباعةثابت وقوي
نِطَاقمعجمي
متأثر
معظم اللغات الآمرة اللاحقة (بما في ذلك ما يسمى باللغات المشابهة لـ ALGOL )
مثل PL/I و Simula و Pascal و C و Scheme

ALGOL ( / ˈælɡɒl , -ɡɔːl / ؛ اختصار لـ " اللغة الخوارزمية ") [ 1] هي عائلة من لغات البرمجة الحاسوبية الإلزامية التي تم تطويرها في الأصل عام 1958. أثرت ALGOL بشكل كبير على العديد من اللغات الأخرى وكانت الطريقة القياسية لوصف الخوارزمية المستخدمة من قبل جمعية آلات الحوسبة (ACM) في الكتب المدرسية والمصادر الأكاديمية لأكثر من ثلاثين عامًا. [2]

بالمعنى الذي يشبه بناء جملة معظم اللغات الحديثة "Algol"، [3] يمكن القول إنها كانت أكثر تأثيرًا من ثلاث لغات برمجة عالية المستوى أخرى كانت معاصرة لها تقريبًا: FORTRAN و Lisp و COBOL . [4] تم تصميمها لتجنب بعض المشكلات الملحوظة مع FORTRAN وأدت في النهاية إلى ظهور العديد من لغات البرمجة الأخرى، بما في ذلك PL /I و Simula و BCPL و B و Pascal و Ada و C.

قدمت ALGOL كتل التعليمات البرمجية والأزواج begin... endلتحديدها. كانت أيضًا أول لغة تنفذ تعريفات الوظائف المتداخلة بنطاق معجمي . علاوة على ذلك، كانت أول لغة برمجة تولي اهتمامًا تفصيليًا لتعريف اللغة الرسمية ومن خلال تقرير Algol 60 قدمت نموذج Backus-Naur ، وهو تدوين نحوي رسمي أساسي لتصميم اللغة.

كانت هناك ثلاث مواصفات رئيسية، تم تسميتها وفقًا للسنوات التي نشرت فيها لأول مرة:

  • ALGOL 58 - تم اقتراح تسميته في الأصل بـ IAL ، وهي اختصار لـ International Algebraic Language .
  • ALGOL 60 – تم تنفيذه لأول مرة باسم X1 ALGOL 60 في عام 1961. وتمت مراجعته في عام 1963. [5] [6] [7]
  • ALGOL 68 – قدم عناصر جديدة بما في ذلك المصفوفات المرنة والشرائح والتوازي وتحديد المشغل. تمت مراجعته عام 1973. [8]

يختلف ALGOL 68 بشكل كبير عن ALGOL 60 ولم يتم استقباله بشكل جيد، [ وفقًا لمن؟ ] لذا فإن الإشارة إلى "Algol" يُفهم عمومًا على أنها تعني ALGOL 60 ولهجاتها. [ بحاجة لمصدر ]

تاريخ

تم تطوير ALGOL بشكل مشترك من قبل لجنة من علماء الكمبيوتر الأوروبيين والأمريكيين في اجتماع عقد عام 1958 في المعهد الفيدرالي السويسري للتكنولوجيا في زيورخ (راجع ALGOL 58 ). [9] وقد حدد ثلاثة بناء جملة مختلف: بناء جملة مرجعي، وبناء جملة للنشر، وبناء جملة تنفيذي، وهي بناء جملة سمحت له باستخدام أسماء كلمات رئيسية مختلفة واتفاقيات للنقاط العشرية (الفواصل مقابل النقاط) للغات مختلفة. [5]

تم استخدام ALGOL في الغالب من قبل علماء الكمبيوتر الباحثين في الولايات المتحدة وأوروبا؛ وقد أعاقت التطبيقات التجارية غياب مرافق الإدخال/الإخراج القياسية في وصفها، ونقص الاهتمام باللغة من قبل بائعي الكمبيوتر الكبار (بخلاف شركة بوروز ). [10] ومع ذلك، أصبح ALGOL 60 هو المعيار لنشر الخوارزميات وكان له تأثير عميق على تطوير اللغة في المستقبل. [10]

التسمية التوضيحية
شجرة عائلة لغات البرمجة Algol و Fortran و COBOL

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

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

وقد حضر الاجتماع في باريس (من 11 إلى 16 يناير/كانون الثاني) الأشخاص التاليون: [5]

وقد قدم آلان بيرليس وصفًا حيًا للاجتماع: "كانت الاجتماعات مرهقة، لا تنتهي، ومبهجة. وكان المرء يشعر بالانزعاج عندما يتم التخلص من أفكاره الجيدة جنبًا إلى جنب مع الأفكار السيئة للآخرين. ومع ذلك، استمر الاجتهاد طوال الفترة. وكان التوافق بين الثلاثة عشر ممتازًا". [13]

ألهمت لغة ALGOL 60 العديد من اللغات التي تلتها. وقد أشار توني هوار إلى ذلك بقوله: "هذه لغة متقدمة جدًا عن عصرها لدرجة أنها لم تكن مجرد تحسين على أسلافها فحسب، بل وأيضًا على جميع خلفائها تقريبًا". [14] كما تبنت لغة البرمجة Scheme ، وهي أحد أشكال لغة Lisp التي تبنت بنية الكتل والنطاق المعجمي للغة ALGOL، صياغة "تقرير منقح عن مخطط اللغة الخوارزمية" لوثائق معاييرها تكريمًا للغة ALGOL. [15]

البحث في لغة البرمجة ALGOL

كما لاحظ بيتر لاندين ، [ بحاجة لمصدر ] كانت لغة ALGOL أول لغة تجمع بسلاسة بين التأثيرات الآمرة وحساب لامدا ( استدعاء بالاسم ) . [ بحاجة لمصدر ] ربما كانت الصيغة الأكثر أناقة للغة ترجع إلى جون سي رينولدز ، وهي تُظهر بشكل أفضل نقائها النحوي والدلالي. [ وفقًا لمن؟ ] قدمت لغة ALGOL المثالية لرينولدز أيضًا حجة منهجية مقنعة فيما يتعلق بملاءمة التأثيرات المحلية في سياق لغات الاستدعاء بالاسم، على النقيض من التأثيرات العالمية المستخدمة في لغات الاستدعاء بالقيمة مثل التعلم الآلي . [ بحاجة لمصدر ] جعلت السلامة المفاهيمية للغة منها أحد الأهداف الرئيسية للبحث الدلالي، جنبًا إلى جنب مع وظائف البرمجة القابلة للحساب (PCF) والتعلم الآلي. [ بحاجة لمصدر ]

الجدول الزمني لتنفيذات IAL

حتى الآن كان هناك ما لا يقل عن 70 زيادة وتوسعة واشتقاق ولغات فرعية لـ Algol 60. [16]

اسم سنة مؤلف دولة وصف وحدة المعالجة المركزية المستهدفة
تنفيذ ZMMD 1958 فريدريش إل. باور ، هاينز روتيسهاوزر، كلاوس ساملسون، هيرمان بوتنبروخ  ألمانيا تنفيذ ALGOL 58 Z22
(لاحقًا تم تسليم Z23 من Zuse مع مُجمِّع Algol 60) [17]
X1 ألجول 60 1960 أغسطس [18] إدسجر دبليو ديكسترا وجاب أ. زونفيلد  هولندا أول تنفيذ لـ ALGOL 60 [19] إليكترولوجيكا X1
إليوت ألجول ستينيات القرن العشرين سيارة هواري  المملكة المتحدة موضوع محاضرة جائزة تورينج لعام 1980 [20] سلسلة إليوت 803 ، إليوت 503، إليوت 4100
جوفيال 1960 جولز شوارتز  نحن وزارة الدفاع الأمريكية قبل آدا متنوعة (انظر المقال)
بوروز ألغول
(عدة متغيرات)
1961 شركة بوروز (بمشاركة هواري، ديكسترا ، وآخرين)  نحن أساس أجهزة الكمبيوتر Burroughs (والتي تعتمد الآن على Unisys MCP ) أنظمة بوروز الكبيرة ومتوسطة المدى أيضًا.
حالة ALGOL 1961 معهد كيس للتكنولوجيا [21]  نحن تم التعاقد في الأصل على Simula باعتباره امتدادًا لمحاكاة Case ALGOL يونيفاك 1107
جوجول 1961 وليام م. ماكيمان  نحن لنظام تقاسم الوقت ODIN [22] بي دي بي-1
مركزية النظام ALGOL 1961 بيتر نور ، يورن جينسن  الدنمارك تنفيذ Algol 60 بالكامل DASK في Regnecentralen
دارتموث ألغول 30 1962 توماس يوجين كورتز وآخرون.  نحن LGP-30
يو إس إس 90 ألغول 1962 ل. بيتروني  إيطاليا
ألغول 60 1962 برنارد فوكوا ، لويس بوليت [23]  فرنسا معهد المعلوماتية والرياضيات التطبيقية في غرونوبل (IMAG) وشركة الآلات الثور بول جاما 60
مترجم الغول 1962 جي فان دير ماي و دبليو إل فان دير بويل  هولندا Staatsbedrijf der Posterijen، Telegrafie و Telefonie حمار الوحش
كيدزجروف الغول 1963 اف جي دنكان  المملكة المتحدة شركة الكهرباء الانجليزية KDF9
فالجول 1963 فال شوري  نحن اختبار لمترجم META II
حجر الشحذ 1964 بريان رانديل و إل جيه راسل  المملكة المتحدة قسم الطاقة الذرية لشركة إنجليش إلكتريك. رائد في تنفيذ مشروع Ferranti Pegasus ، ومشروع National Physical Laboratories ACE، ومشروع English Electric DEUCE . شركة الكهرباء الانجليزية KDF9
نو الغول 1965  النرويج يونيفاك
ألجيك 1965  الاتحاد السوفياتي АLЛГЭК، استنادًا إلى دعم ALGOL-60 و COBOL ، للمهام الاقتصادية مينسك-22
ألغول دبليو 1966 نيكلاوس ويرث  نحن خليفة مقترح لـ ALGOL 60 نظام آي بي إم/360
مالغول 1966 عام. أ. فييل، م. كوتلي، م. راخندي،  جمهورية استونيا السوفييتية الاشتراكية مينسك-22
الحشوات 1967 مجموعة GAMS (GAMS، مجموعة أتمتة البرمجة للآلات ذات الفئة المتوسطة)، بالتعاون مع أكاديميات كوميكون للعلوم كوميكون مينسك-22 ، لاحقًا ES EVM ، BESM
ألغول/زام 1967  بولندا كمبيوتر ZAM البولندي
سيمولا 67 1967 أولي يوهان دال وكريستين نيجارد  النرويج الجول 60 مع الفصول يونيفاك 1107
تريبلكس-ألغول كارلسروه 1967/1968 كارلسروه ، ألمانيا  ALGOL 60 (1963) مع أرقام ثلاثية لحساب الفواصل [24]
الغول الصيني 1972  الصين الحروف الصينية، يتم التعبير عنها من خلال نظام الرموز
المديرية العامة للطرق/ل 1972  نحن عائلة أجهزة الكمبيوتر DG Eclipse
س-الغول 1979 رون موريسون  المملكة المتحدة إضافة أنواع البيانات المتعامدة بغرض استخدامها كلغة تعليمية PDP-11 مع التنفيذ اللاحق على Java VM

تضمنت لهجات بوروز لهجات خاصة بـ Bootstrapping مثل ESPOL و NEOP . ولا تزال الأخيرة مستخدمة في برنامج نظام Unisys MCP.

ملكيات

لم يكن لدى ALGOL 60، كما تم تعريفه رسميًا، مرافق إدخال/إخراج ؛ حيث قامت التطبيقات بتعريف مرافقها الخاصة بطرق نادرًا ما كانت متوافقة مع بعضها البعض. وعلى النقيض من ذلك، قدمت ALGOL 68 مكتبة واسعة من مرافق الإدخال /الإخراج.

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

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

تم تعريف ALGOL 68 باستخدام صيغة نحوية ثنائية المستوى اخترعها أدريان فان وينجاردن والتي تحمل اسمه. تستخدم صيغ فان وينجاردن النحوية الخالية من السياق لتوليد مجموعة لا نهائية من المنتجات التي ستتعرف على برنامج ALGOL 68 معين؛ ومن الجدير بالذكر أنها قادرة على التعبير عن نوع المتطلبات التي يتم تصنيفها في العديد من معايير لغات البرمجة الأخرى على أنها "دلالات" ويجب التعبير عنها بنثر لغة طبيعية عرضة للغموض، ثم يتم تنفيذها في المترجمات ككود مخصص مرفق بمحلل اللغة الرسمي.

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

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

ألغول 60

(تعتمد الطريقة التي يجب كتابة النص الغامق بها على التنفيذ، على سبيل المثال "INTEGER" - بما في ذلك علامات الاقتباس - للعدد الصحيح. يُعرف هذا باسم stropping .)

الإجراء Absmax(a) الحجم:(n, m) النتيجة:(y) الفهارس:(i, k)؛
     القيمة n, m؛ المصفوفةالعدد الصحيح n, m, i, k؛ العدد الحقيقيالتعليق أعظم عنصر مطلق في المصفوفة a، بحجم n × m،
    يتم نسخها إلى y، والفهرس السفلي لهذا العنصر إلى i وk؛
بداية 
    عدد صحيح p، q؛
    ي := 0؛ ي := ك := 1؛
    بالنسبة لـ p := 1 الخطوة 1 حتى n افعل 
        بالنسبة لـ q := 1 الخطوة 1 حتى m افعل 
            إذا كانت abs(a[p, q]) > y فابدأ y
                 := abs(a[p, q]);
                    i := p; k := q
                نهاية 
نهاية Absmax

فيما يلي مثال لكيفية إنتاج جدول باستخدام Elliott 803 ALGOL. [26]

اختبار النقطة العائمة
 ابدأ بـ A، B، C، D' الحقيقي
 اقرأ د
 بالنسبة إلى A:= 0.0 الخطوة D حتى 6.3 افعل
 يبدأ
   ثقب الطباعة (3) ،££L ؟؟
   ب := SIN(أ)'
   ج := جأ(أ)
   طباعة الثقب (3)، نفس الخط ، محاذاة (1،6) ، أ، ب، ج
 نهاية
 نهاية'

ألغول 68

تعتبر عينات التعليمات البرمجية التالية إصدارات ALGOL 68 من عينات التعليمات البرمجية ALGOL 60 المذكورة أعلاه.

استخدمت تطبيقات ALGOL 68 أساليب ALGOL 60 في الشطب . في حالة ALGOL 68، تكون الرموز ذات الخط الغامق كلمات محجوزة أو أنواع (أوضاع) أو مشغلات.

proc abs max = ([,] real a, ref  real y, ref  int i, k) real :
 التعليق أعظم عنصر مطلق في المصفوفة a، بحجم ⌈a × 2⌈a
يتم نقلها إلى y، ومؤشرات هذا العنصر إلى i وk؛ التعليق 
يبدأ 
   حقيقي y := 0؛ i := ⌊a؛ k := 2⌊a؛
    بالنسبة إلى p من ⌊a إلى ⌈a افعل 
     بالنسبة إلى q من 2⌊a إلى 2⌈a افعل 
       إذا كان  abs a[p, q] > y فإن 
           y := abs a[p, q]؛
           i := p; k := q
       في 
     أود 
   أود ؛
   ي
النهاية # الحد الأقصى للعضلات #

ملاحظة: الحدود السفلية (⌊) والعلوية (⌈) للمصفوفة، وتقطيع المصفوفة، متاحة بشكل مباشر للمبرمج.

اختبار النقطة العائمة algol68:
(
  حقيقي أ،ب،ج،د؛
   
  # printf – يرسل الإخراج إلى الملف  stand out . #
  # printf($p$); – تحديد صفحة جديدة #
  printf(($pg$,"أدخل d:"));  
  قراءة(د)؛
   
  للخطوة من 0 بينما a:=step*d؛ a <= 2*pi قم بطباعة ( $ 
    l$)؛ # $l$ - تحديد سطر جديد . #
    ب := sin(أ)؛
    ج := جيب التمام(أ)؛
    printf(($zd.6d$,a,b,c)) # تنسيق الإخراج برقم واحد قبل و6 أرقام بعد النقطة العشرية. #
  أود
)

الجدول الزمني: مرحبا بالعالم

يمكن إثبات الاختلافات وعدم القدرة على نقل البرامج من تطبيق إلى آخر بسهولة من خلال برنامج hello world الكلاسيكي . [ بحاجة لمصدر ]

ألغول 58 (IAL)

لم يكن لدى ALGOL 58 أي مرافق إدخال/إخراج.

عائلة ALGOL 60

نظرًا لعدم وجود مرافق إدخال/إخراج في ALGOL 60، فلا يوجد برنامج hello world محمول في ALGOL. الأمثلة الثلاثة التالية موجودة في Burroughs Extended Algol. يقوم المثالان الأولان بإخراج مباشر إلى المحطة الطرفية التفاعلية التي يتم تشغيلهما عليها. يستخدم المثال الأول مصفوفة أحرف، مشابهة للغة C. تسمح اللغة باستخدام معرف المصفوفة كمؤشر للمصفوفة، وبالتالي في عبارة REPLACE.

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

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

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

برنامج أبسط يستخدم عبارة العرض. لاحظ أن مخرجاته ستصل إلى وحدة التحكم في النظام ('SPO'):

بدء  العرض ( "مرحبا بالعالم!" )  النهاية .

مثال بديل، باستخدام Elliott Algol I/O هو كما يلي. استخدم Elliott Algol أحرفًا مختلفة لـ "open-string-quote" و"close-string-quote"، ممثلة هنا بـ ' و ' .

برنامج HiFolks ؛ البداية طباعة ' مرحبا بالعالم ' النهاية ؛ 
 
      
 

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

  هيفولكس
  يبدأ
     اطبع مرحبًا بالعالم
  نهاية'

سمحت نسخة I/O من سلسلة ICT 1900 Algol بإدخال البيانات من شريط ورقي أو بطاقة مثقبة. يسمح وضع "الكامل" لشريط الورق بالأحرف الصغيرة. يتم الإخراج إلى طابعة خطية. تم تمثيل أحرف الاقتباس المفتوحة والمغلقة باستخدام '(' و')' والمسافات بنسبة٪. [27]

  'يبدأ'
     اكتب نصًا('('مرحبا بالعالم')');
  'نهاية'

ألغول 68

تم نشر كود ALGOL 68 مع الكلمات المحجوزة عادةً بأحرف صغيرة، ولكن بخط غامق أو مسطر.

يبدأ
  printf(($gl$,"مرحبا بالعالم!"))
نهاية

في لغة "تقرير Algol 68"، تم تسمية مرافق الإدخال/الإخراج بشكل جماعي باسم "Transput".

الجدول الزمني للأحرف الخاصة في لغة ALGOL

تم تصميم ALGOLs في وقت كانت فيه مجموعات الأحرف متنوعة ومتطورة بسرعة؛ كما تم تعريف ALGOLs بحيث تكون الأحرف الكبيرة فقط مطلوبة.

1960: IFIP – تضمنت لغة Algol 60 والتقرير العديد من الرموز الرياضية المتوفرة على أجهزة الكمبيوتر وأنظمة التشغيل الحديثة، ولكن لسوء الحظ، لم تكن مدعومة على معظم أنظمة الحوسبة في ذلك الوقت. على سبيل المثال: ×، ÷، ≤، ≥، ≠، ¬، ∨، ∧، ⊂، ≡، ␣ و⏨.

سبتمبر 1961: ASCII - مجموعة أحرف ASCII ، التي كانت في مرحلة مبكرة من التطوير، تمت إضافة حرف \ (الشرطة المائلة للخلف) إليها من أجل دعم مشغلي ALGOL المنطقيين /\ و \/ . [28]

1962: ALCOR – تضمنت مجموعة الأحرف هذه حرف الصليب الروني غير المعتاد "᛭" [29] للضرب ورمز الأس العشري "⏨" [30] للترميز العشري. [31] [32] [33]

1964: GOST - سمح المعيار السوفييتي لعام 1964 GOST 10859 بترميز أحرف 4 بت و5 بت و6 بت و7 بت في ALGOL. [34]

1968: "تقرير ألجول 68" - استخدم أحرف ألجول الموجودة، واعتمد كذلك الأحرف → و↓ و↑ و□ و⌊ و⌈ و⎩ و⎧ و○ و⊥ و¢ التي يمكن العثور عليها على لوحة مفاتيح IBM 2741 مع رؤوس الطباعة Typeball (أو كرة الجولف ) المُدرجة (مثل كرة الجولف APL ). أصبحت هذه الأحرف متاحة في منتصف الستينيات أثناء صياغة ألجول 68. تُرجم التقرير إلى الروسية والألمانية والفرنسية والبلغارية، وسمح بالبرمجة بلغات ذات مجموعات أحرف أكبر، مثل الأبجدية السيريلية لنظام BESM -4 السوفييتي . جميع أحرف ألجول هي أيضًا جزء من معيار يونيكود ومعظمها متاح في العديد من الخطوط الشائعة .

أكتوبر 2009: Unicodeتمت إضافة (رمز الأس العشري) لتدوين النقطة العائمة إلى Unicode 5.2 لتحقيق التوافق مع برنامج Buran التاريخي ALGOL. [35]

إرث

كانت المساهمة المهمة لتقرير ALGOL 58 هي توفير مصطلحات قياسية لمفاهيم البرمجة: العبارة، والإعلان، والنوع، والعلامة، والأساسي، والكتلة، وغيرها. [10]

انظر أيضا

مراجع

  1. ^ اسم هذه العائلة اللغوية يُذكر أحيانًا بأحرف مختلطة (Algol 60 Archived 25 June 2007 at the Wayback Machine )، وأحيانًا بأحرف كبيرة بالكامل (ALGOL68 Archived 13 September 2014 at the Wayback Machine ). من أجل التبسيط، تستخدم هذه المقالة ALGOL .
  2. ^ مجموعة خوارزميات ACM أرشيف 17 أكتوبر 2011 على ويكي ويكس أرشيفات مضغوطة للخوارزميات. ACM .
  3. ^ O'Hearn, PW; Tennent, RD (September 1996). "اللغات الشبيهة بالألغول، مقدمة". مؤرشف من الأصل في 14 نوفمبر 2011.
  4. ^ "لغة برمجة ALGOL" أرشيف 6 أكتوبر 2016 على موقع Wayback Machine ، جامعة ميشيغان-ديربورن
  5. ^ abc Backus, John Warner ; Bauer, Friedrich Ludwig ; Green, Julien ; Katz, Charles ; McCarthy, John ; Naur, Peter ; Perlis, Alan Jay ; Rutishauser, Heinz ; Samelson, Klaus ; Vauquois, Bernard ; Wegstein, Joseph Henry ; van Wijngaarden, Adriaan ; Woodger, Michael (مايو 1960). Naur, Peter (محرر). "تقرير عن لغة الخوارزمية ALGOL 60". اتصالات جمعية الحوسبة الآلية . 3 (5). كوبنهاجن، الدنمارك: 299-314. doi : 10.1145/367236.367262 . ISSN  0001-0782. S2CID  278290.
  6. ^ "تقرير منقح عن لغة الخوارزمية Algol 60". 1963. مؤرشف من الأصل في 25 يونيو 2007. تم استرجاعه في 8 يونيو 2007 .
  7. ^ "مترجم ALGOL 60 لـ X1" (PDF) . 1961. أرشفة (PDF) من النسخة الأصلية في 9 أكتوبر 2022 . تم الاسترجاع في 7 يناير 2021 .
  8. ^ "تقرير منقح عن لغة الخوارزمية ALGOL 68" (PDF) . 1973. مؤرشف من الأصل (PDF) في 13 سبتمبر 2014. تم الاسترجاع في 13 سبتمبر 2014 .
  9. ^ "تاريخ ALGOL — Software Preservation Group". www.softwarepreservation.org . تم الاسترجاع في 14 مارس 2024 .
  10. ^ abc Bemer, Bob. "A Politico-Social History of Algol" (PDF) . متحف تاريخ الكمبيوتر . تم الاسترجاع في 9 أغسطس 2024 .
  11. ^ Knuth, Donald E. (1964). "Backus Normal Form vs Backus Naur Form". Communications of the ACM . 7 (12): 735–736. doi : 10.1145/355588.365140 . S2CID  47537431.
  12. ^ اقتباس من جائزة ACM: بيتر نور محفوظ في 2 أبريل 2012 في Archive-It ، 2005
  13. ^ بيرليس، آلان جيه (1978). "الجانب الأمريكي من تطوير لغة ألغول". تاريخ لغات البرمجة. ص 75-91. doi :10.1145/800025.1198352. ISBN 0-12-745040-8- عبر dl.acm.org.
  14. ^ "تلميحات حول تصميم لغة البرمجة" محفوظ في 15 سبتمبر 2009 على موقع واي باك مشين ، CAR Hoare، ديسمبر 1973. صفحة 27. (يُنسب هذا البيان أحيانًا بشكل خاطئ إلى Edsger W. Dijkstra ، الذي شارك أيضًا في تنفيذ أول مُجمِّع ALGOL 60. )
  15. ^ Dybvig, RK; et al. Rees, Jonathan; Clinger, William; Abelson, Hal (eds.). "تقرير منقح (3) عن مخطط اللغة الخوارزمية، (مخصص لذكرى ALGOL 60)". مؤرشف من الأصل في 14 يناير 2010. تم الاسترجاع في 20 أكتوبر 2009 .
  16. ^ "موسوعة لغات الحاسوب". مؤرشف من الأصل في 27 سبتمبر 2011. اطلع عليه بتاريخ 20 يناير 2012 .
  17. ^ تاريخ متحف الكمبيوتر محفوظ في 20 أغسطس 2010 على موقع Wayback Machine ، جهاز الكمبيوتر Zuse-Computer Z23 التاريخي، تم ترميمه بواسطة مدرسة Konrad Zuse في Hünfeld، لمركز تاريخ متحف الكمبيوتر في ماونتن فيو (كاليفورنيا) الولايات المتحدة
  18. ^ Daylight, EG (2011). "صرخة ديكسترا الحاشدة للتعميم: ظهور الإجراء المتكرر، أواخر الخمسينيات – أوائل الستينيات". مجلة الكمبيوتر . 54 (11): 1756–1772. CiteSeerX 10.1.1.366.3916 . doi :10.1093/comjnl/bxr002. مؤرشف من الأصل في 12 مارس 2013. 
  19. ^ Kruseman Aretz, FEJ (30 يونيو 2003). "مترجم Dijkstra-Zonneveld ALGOL 60 لجهاز Electrologica X1". هندسة البرمجيات (PDF) . تاريخ علوم الكمبيوتر. أمستردام: مركز العلوم والمعلوماتية. مؤرشف من الأصل (PDF) في 4 مارس 2016.
  20. ^ هواري، أنتوني (1980). "ملابس الإمبراطور القديمة". اتصالات رابطة الحوسبة الآلية . 24 (2): 75-83. doi : 10.1145/358549.358561 .
  21. ^ كوفمان، إليوت. "كل ما أحتاج حقًا إلى معرفته تعلمته في CS1" (PDF) . مؤرشف من الأصل (PDF) في 12 أكتوبر 2012. تم الاسترجاع 20 مايو 2012 .
  22. ^ "GOGOL – PDP-1 Algol 60 (Computer Language)". الموسوعة التاريخية للغات البرمجة على الإنترنت. مؤرشف من الأصل في 2 فبراير 2018. تم الاسترجاع 1 فبراير 2018 .
  23. ^ مونيير-كوهن، بيير (2014). "الألغول في فرنسا: من المشروع العالمي إلى الثقافة المضمنة". حوليات معهد مهندسي الكهرباء والإلكترونيات لتاريخ الحوسبة . 36 (4): 6-25. doi :10.1109/MAHC.2014.50. ISSN  1058-6180. S2CID  16684090.
  24. ^ ويبرمان، هانز ويلم (1968) [15/06/1967، 1966]. “تعريف von Schrankenzahlen في Triplex-ALGOL”. الحوسبة (باللغة الألمانية). 3 (2). كارلسروه، ألمانيا: سبرينغر: 99-109. دوى :10.1007/BF02277452. ISSN  0010-485X. S2CID  36685400.
  25. ^ Aho, Alfred V .; Sethi, Ravi ; Ullman, Jeffrey D. (1986). Compilers: Principles, Techniques, and Tools (الطبعة الأولى). Addison-Wesley. ISBN 0-201-10194-7.، القسم 7.5، والمراجع الواردة فيه
  26. ^ "803 ALGOL" محفوظ في 29 مايو 2010 على موقع Wayback Machine ، الدليل الخاص بـ Elliott 803 ALGOL
  27. ^ "سلسلة ICL 1900: لغة Algol". منشور ICL الفني رقم 3340. 1965.
  28. ^ كيف حصل ASCII على Backslash محفوظ في 11 يوليو 2014 على موقع Wayback Machine ، بوب بيمر
  29. ^ صليب حديدي/روني
  30. ^ رمز الأس العشري
  31. ^ باومان ، ر. (أكتوبر 1961). "دليل ALGOL لمجموعة ALCOR، الجزء الأول" [دليل ALGOL لمجموعة ALCOR]. Elektronische Rechenanlagen (بالألمانية): 206-212.
  32. ^ باومان ، ر. (ديسمبر 1961). "دليل ALGOL لمجموعة ALCOR، الجزء 2" [دليل ALGOL لمجموعة ALCOR]. Elektronische Rechenanlagen (باللغة الألمانية). 6 : 259-265.
  33. ^ باومان، ر. (أبريل 1962). "دليل ALGOL لمجموعة ALCOR، الجزء 3" [دليل ALGOL لمجموعة ALCOR]. Elektronische Rechenanlagen (بالألمانية). 2 .
  34. ^ "GOST 10859 standard". مؤرشف من الأصل في 16 يونيو 2007. استرجاع 5 يونيو 2007 .
  35. ^ Broukhis, Leonid (22 January 2008). "Revised proposal to encoding the decimal exponent symbol" (PDF) . www.unicode.org . ISO/IEC JTC 1/SC 2/WG 2. مؤرشف من الأصل (PDF) في 31 يوليو 2015 . تم الاسترجاع في 24 يناير 2016 . وهذا يعني أن الحاجة إلى تحويل ترميز البرامج والوثائق القائمة على GOST قد تنشأ: لا يمكن إعادة تجميع الخوارزميات الرقمية القديمة (التي قد يكون بعضها موضع اهتمام، على سبيل المثال للهبوط التلقائي لمكوك بوران ...) المُحسَّنة لتمثيل النقطة العائمة غير IEEE لـ BESM-6 ببساطة ومن المتوقع أن تعمل بشكل موثوق، وقد يكون بعض التدخل البشري ضروريًا.

قراءة إضافية

  • O'Hearn, Peter; Tennent, Robert D., eds. (1997). Algol-like Languages . المجلد 1. كامبريدج، ماساتشوستس: بيركهاوزر. doi :10.1007/978-1-4612-4118-8. ISBN 9780817638801. S2CID  6273486.المجلد الأول من مجموعة مكونة من مجلدين، يتضمن مقدمة من بيتر دبليو أوهيرن وروبرت د. تيننت، وتقرير عن Algol 60 من بيتر ناور وزملائه، وأربعة فصول من جون سي رينولدز ، وفصول أخرى من كريستوفر ستراتشي ، وماتياس فيليسن ، وستيفن ويكس ، وألبرت ر. ماير ، وكورت سيبر، وفيبين سواروب، وأوداي س. ريدي، وإيفان أيرلاند.
  • باومان، ريتشارد [بالألمانية] ؛ فيليسيانو، مانويل؛ باور، فريدريش لودفيج ؛ ساميلسون، كلاوس (1964). مقدمة إلى لغة الخوارزمية - تمهيد لغير المتخصصين، مع التركيز على الاستخدامات العملية للغة الخوارزمية. الحوسبة الآلية. إنجلوود كليفس، نيوجيرسي: برنتيس هول، إنك . رقم ISBN 0134778286. LCCN  64-10740. ark:/13960/t6qz35p37 . تم الاسترجاع في 23 أكتوبر 2022 .
  • رانديل، برايان و إل جيه راسل (1964). تنفيذ ألجول 60: ترجمة واستخدام برامج ألجول 60 على الكمبيوتر. أكاديميك بريس. CiteSeerX  10.1.1.737.475 .حول تصميم مُجمِّع Whetstone، وأحد الأوصاف المنشورة المبكرة لتنفيذ مُجمِّع. للاطلاع على ورقة بحثية ذات صلة، راجع مقال Brian Randell 's Whetstone Algol Revisited Archived 27 February 2008 at the Wayback Machine ، وThe Whetstone KDF9 Algol Translator.
  • Dijkstra, E. W (1961)، ترجمة ALGOL 60: مترجم ALGOL 60 لـ X1 وعمل مترجم لـ ALGOL 60 (PDF) ، تقرير MR 35/61، أمستردام: Mathematisch Centrum، أرشفة (PDF) من النسخة الأصلية بتاريخ 9 أكتوبر 2022
  • كروسمان أريتز، فرانس إي جيه، مترجم Dijkstra – Zonneveld ALGOL 60 لـ Electrologica X1 (PDF) ، مذكرة تاريخية SEN، 2، أمستردام: Centrum voor Wiskunde en Informatica، أرشفة (PDF) من الأصلي في 9 أكتوبر 2022
  • جوس، جيرهارد [بالألمانية] (7 أغسطس 2017). Geschichte der Deutschsprachigen Informatik – Programmiersprachen und Übersetzerbau [ تاريخ المعلوماتية في البلدان الناطقة باللغة الألمانية – لغات البرمجة وتصميم المترجمات ] (PDF) (باللغة الألمانية). كارلسروه، ألمانيا: Fakultät für Informatik، معهد كارلسروه للتكنولوجيا . أرشفة (PDF) من النسخة الأصلية في 19 مايو 2022 . تم الاسترجاع في 14 نوفمبر 2022 .
  • تقرير منقح عن لغة الخوارزمية Algol 60 بقلم بيتر نور وآخرين.
  • الجانب الأوروبي من المرحلة الأخيرة من تطوير ALGOL 60، بقلم بيتر ناور
  • تاريخ ALGOL من متحف تاريخ الكمبيوتر
  • مُجمِّع ALGOL-F مُمكَّن عبر الويب يسمح بإجراء تجارب صغيرة [ رابط ميت دائم ]
  • مُجمِّع ALGOL عبر الإنترنت
  • مترجم ALGOL60 لجان فان كاتفيك (GitHub)
Retrieved from "https://en.wikipedia.org/w/index.php?title=ALGOL&oldid=1251387121"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate