أندريه تيريكوف: من فورتران إلى بايثون





— , , — . , , , . — , .



, , .





أول آلة إلكترونية حقًا كانت تسمى ENIAC - التكامل الرقمي الرقمي والحاسوب - وصنعها الأمريكيون في عام 1946. يوجد في قلب هذه الحواسيب الزناد ، الذي اخترعه في عام 1918 أحد سكان بتروغراد ميخائيل ألكساندروفيتش بونش بروفيتش. على عكس بوبوف ، تمكن حتى من تأمين حقوق الاختراع. كانت الدائرة نفسها مشهورة جدًا: استخدم والدي ، مهندس إلكترونيات عسكري ، هذه المشغلات قبل الحرب.



في عام 1949 ، صنع المهندس السوفيتي سيرجي ألكسيفيتش ليبيديف آلة MESM في كييف. لقد تأخر عن الأمريكيين بثلاث سنوات فقط ، رغم أن كييف دمرت بالكامل تقريبًا. حتى أن ليبيديف حصل على مبنى في مدينة فيوفانيا - ثم كان لا يزال 30 كم من المدينة - حيث كان قبل الحرب مستشفى للأمراض النفسية. ولكن بعد ذلك لم تكن هناك مبانٍ أخرى.





مبنى في فيوفانيا ، الآن حي ، وفي الخمسينيات من القرن الماضي - إحدى ضواحي كييف ، حيث عمل سيرجي ليبيديف في



هذه الحواسيب الأولى ، كتب الناس في رموز ثنائية. لنفترض أن البرنامج يشبه هذا: 01100101 110. لنفترض أن 01 هو رمز إضافة. ثم تقول هنا: أضف الكلمة في العنوان 100 بالكلمة في العنوان 101 واكتب النتيجة على العنوان 110. بشكل عام ، كل شيء واضح ، لكن بصفتي شخصًا وجد البرمجة في الأكواد ، سأخبرك أن هذا أمر غير مريح للغاية ... نعم ، أنت نفسك ربما تفهم هذا.



من عام 1964 إلى عام 1966 ، درست في مدرسة الرياضيات رقم 157 بالقرب من سمولني ، وهي واحدة من أشهر المدارس في لينينغراد ، وهي تابعة ليس لـ RONO ، ولكن لأكاديمية العلوم التربوية. هناك كان لدينا اثنان من طراز "Ural-1" وفتاتين تقنيتين لم تكن تعرف كيفية برمجتها ، ولكن كان بإمكانها إصلاح هذه السيارات. كان علي أيضًا أن أتعلم أولاً كيفية إصلاحها ، ولكن بعد ذلك كتبنا العديد من البرامج المفيدة في جبال الأورال ، حتى بالنسبة للجيولوجيين ، فقد أحصينا شيئًا ما.



مشكلة البرمجة الرئيسية في الأكواد ليست "01 02 03" - من السهل تذكرها. ولكن إذا كنت بحاجة إلى إدخال شيء بين خليتين - وفقًا لمنطق العمل ، بحيث تتم مزامنة بعض المصفوفات - فسيتم الزحف إلى جميع العناوين الموجودة أسفل هذا الإدخال. سيتعين علينا إعادة كتابة كل شيء ، والأهم من ذلك ، إعادة التعبئة.



قمنا بحشو البرامج على فيلم 35 مم ، وقمنا بلصقه في حلقة إذا كانت هناك حاجة إلى حلقة. أدخل البرنامج - اكتب المجموع الاختباري بقلم رصاص. تدخل مرة أخرى: إذا كانت المجاميع الاختبارية متطابقة ، فكل شيء صحيح. إذا لم يتطابقوا ، فأنت تدخله للمرة الثالثة ، وهكذا حتى يسقط.



كان من غير الملائم أن يبتكر الناس بسرعة بدائل رمزية. بدلاً من 01 ، أصبح من الممكن كتابة الرمز "+" فقط ، وبدلاً من العنوان - a أو b أو c. كانت لغة التجميع ، مع وجود مترجم بسيط للغاية يمكن ترجمة البرنامج إلى رموز الآلة. لقد تطلب الأمر طريقتين: في الأولى ، تقوم بعمل جدول لجميع المعرفات وعناوينها ، وفي الثانية ، تستبدل المعرفات بالعناوين ، وهذا كل شيء.



( ). 101? ? . 102? . , , .





قام الأمريكي جون باكوس ، الذي اخترع لغة FORmula TRANslator في عام 1957 ، بثورة حقيقية. IBM ، حيث كان يعمل ، بشكل عام ، ابتكر العديد من الأشياء ، بما في ذلك ، على سبيل المثال ، البطاقات المثقوبة. جعلت لغة فورتران من الممكن كتابة صيغة ، وتم إنشاء المترجمين الأوائل منها ، وهي أكثر تعقيدًا بكثير من المترجم من لغة التجميع. أي أن الناس كانوا قادرين على كتابة برامج عادية بلغة خوارزمية عادية.





اعترف جون باكوس بأن الحافز الرئيسي في بحثه كان الكسل والرغبة في تبسيط عملية كتابة البرامج. في الصورة - باكوس على غلاف مجلة Think ، مجلة شركة IBM



ومن المفارقات أن فورتران لا تزال تحظى بشعبية كبيرة حتى اليوم ، خاصة مع علماء الفيزياء والمهندسين الذين يعتقدون أنهم لا يحتاجون إلى أي شيء آخر ، على الرغم من مرور سنوات عديدة. تراكمت أطنان من البرامج القياسية - مكتبات ضخمة.



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

DO 3 I = 1.4



هذه دورة. يجب أن يتم تنفيذ عوامل التشغيل حتى العلامة 3 بـ I يساوي 1،2 ، 3 ، 4. لكن الأمريكي ارتكب خطأ ووضع نقطة كاملة بدلاً من فاصلة بين 1 و 4. في Fortran ، لا يوجد وصف إلزامي ، لذلك لم يتم العثور على خطأ. نتيجة لذلك ، تعطلت رحلة الفضاء إلى كوكب الزهرة.



حتى لومونوسوف اكتشف أن هناك جوًا كثيفًا للغاية حول كوكب الزهرة ، لكن لم يرَ أحد سطح الكوكب. أرسل الأمريكيون صاروخًا بمهمة مهمة: كان من المفترض أن يطير إلى كوكب الزهرة ، ويقوم ببعض الثورات ، ثم يغوص تحت الغلاف الجوي ويصور السطح. طار الصاروخ لمدة ثلاثة أشهر وطار. عندما غطست ، لم يتم فتح رفرف الكاميرا ، لأن هذه الخطوط كانت مسؤولة عن فتحها. لقد طارت بلايين الدولارات حرفيا في الهواء. كانت الفضيحة لا تصدق ، تم العثور على الشخص الذي ارتكب الخطأ. 6-7 مليار خسارة ملموسة حتى للأثرياء الأمريكيين. لكن هذا المبرمج لم يصب بأذى ، لأن الوثائق تحمل توقيعات جميع الرؤساء المحتملين.بعد محاكمات طويلة ، تقرر أن اللوم يقع على فورتران في كل شيء: تبين أن قواعد تحديد اللغة غير ملائمة للغاية وغير موثوقة.



في منتصف السبعينيات ، صنعنا أول مترجم من Algol 68 ، وقمنا بترجمة الجميع من اللغات القديمة إليه. على وجه الخصوص ، تم نقل المربع 93 - الآن هو معهد الملاحة الراديوية والوقت الدقيق.





مبنى معهد لينينغراد لبحوث راديو وهندسة الراديو - المعهد الروسي للملاحة والوقت - يضم الآن مكتب بنك روسيا.كان في



السابق يقع في مبنى أصفر ضخم مقابل سمولني ، والآن يوجد بنك فيه ، وتم إخلاء المعهد إلى ضواحي المدينة.ثم قمنا بنقل عشرات البرامج من Fortran إلى Algol 68 وكسبنا دائمًا أربع مرات. اعتقدت أنها كانت نوعًا من الخداع ، لأنه كان علينا الفوز مرتين - فقط على حساب أفضل مترجم. لماذا نفوز في الرابعة؟ مفهوم. علمنا الناس Algol 68 - ألقيت محاضرات ، كانت تلميذتي ليها روكلن تمارس. وفي فورتران ، كتبوا مثل دجاجة بمخلب.



ذات مرة ، اتصل بي تلميذي السابق ، الرائد في الجيش السوفييتي في الاحتياط ، أندريه سيرجيفيتش أغابوف: "أندريه ، في أحد البرامج ، كانت الإجابة مختلفة أربع مرات عن فورتران». , : «, ». : «, , . - , ». . , 68, - . — . — , . . . , . , . ! .



:

X = 9.3.

, 9.3 — . .

LE 0, =E ‘9.3’

STD 0, .

على الكمبيوتر ES - كان هناك مثل هذا الجهاز ، نسخة من IBM 360 - كلمة 64 بت. والآن تم تحميل أمر LE فقط في النصف الأيسر من السجل ، وترك القمامة في النصف الأيمن. وألغى الأمر STD السجل بأكمله. نظرًا لأن العملية كانت مشروطة بشكل سيئ ، أي أن التغييرات الصغيرة في بيانات الإدخال أثرت بشدة على النتيجة ، تباينت الإجابة بعد 11 دقيقة من وقت وحدة المعالجة المركزية أربع مرات. اتضح أنه كان علي كتابة ستة أصفار أخرى هنا:

X = 9.3000000

لقد وجدت هذا الخطأ وتذكرته لبقية حياتي ، على الرغم من أنه كان قبل 40 عامًا.




هناك مفهوم "النظام الودي" وهناك - "غير ودي". هذا مثال نموذجي لنظام غير ودي.



أو مثال أبسط يعاني منه جميع طلابي.

س = 1/3

أي شخص عادي يعتقد أنه سيكون 0.33. التين لك! سيكون هناك صفر. عددين صحيحين ، مما يعني أنه سيكون هناك قسمة عدد صحيح. وإذا كنت تريد الحصول على 0.33 ، ضع نقطتين:

X = 1. / 3.

يكفي في مكان واحد ، فسيكون صحيحًا. لكن مرة أخرى ، من سيلاحظ؟



60- أقراص



أُدين فورتران بارتكاب جميع الخطايا المميتة ، وبدأ الناس في اختراع لغات برمجة جديدة. اخترع الأوروبيون ألغول 60. وهناك أيضًا بعض الأذى بالأرقام: لقد اخترعوها عام 1958 - بعد عام من فورتران. ولكن كان الأمر غير لائق وسيئًا لدرجة أن اللغة بدأت في المراجعة واعتمادها في مؤتمر IFIP (الاتحاد الدولي لمعالجة المعلومات) فقط في عام 1960 - ومن هنا جاء الاسم. لكن العمل استمر ، وفي عام 1964 تم نشر رسالة منقحة عن Algol 60 عملنا عليها لمدة 6 سنوات. تذكر هذا الرقم ، سيتم مواجهته عدة مرات. يستغرق إتقان النسخة الأولية للغة ست سنوات.



تم عمل المترجم الأول في اتحاد الجمهوريات الاشتراكية السوفياتية من Algol 60 في مركز كوروليف (هذا معهد فضاء ، الآن NPO Energia) تحت قيادة Svyatoslav Sergeevich Lavrov ، الذي أصبح منذ عام 1972 رئيس قسم برمجيات الكمبيوتر ، حيث أعمل الآن.





Svyatoslav Lavrov ، 1987. صورة من أرشيف الأكاديمي Andrei Ershov.



كان لافروف رئيسًا لقسم المقذوفات الخارجي - كان هو الشخص الذي حسب مسار أول قمر صناعي ، مسار غاغارين. وروى كيف بدا الأمر في عصر ما قبل الكمبيوتر ، عندما أمضت عدة مئات من النساء أيامًا كاملة في الغزل وإضافة الآلات ، وعد شيئًا ما.بعد أن سمع في مكان ما عن أجهزة الكمبيوتر الأولى ، أصبح لافروف مهتمًا بها ، وتم حمله بعيدًا ، وفي النهاية قام بتغيير المقذوفات الخارجية إلى البرمجة ، مما جعله أول مترجم. ثم في نوفوسيبيرسك ، أنشأ أندريه بتروفيتش إرشوف مترجمًا محسنًا "ألفا". يقولون إنه حتى الأمريكيون اعترفوا بها على أنها أفضل مترجم محسن. ثم ، في موسكو ، صنعوا TA2 من Algol 60 الكامل ، ولكن بحلول تلك اللحظة ، لم يكن أي شخص بحاجة إلى Algol 60 الكاملة بميزاتها الغبية. على حد علمي ، لم يتم استخدام TA2 أبدًا ، وعملت على مترجم Lavrovsky TA1M لسنوات عديدة. كان لدينا جهازي M 20 في Mattech ، وقد تم تجهيزهما بـ TA1M ، والذي أطلق عليه لاحقًا "Signal".



PL / 1



شعر الأمريكيون بالمرارة عندما ظهر Algol 60 في أوروبا وصنعوا PL / I (لغة البرمجة I). لغة رهيبة! مئات من نوع التحويل التلقائي لأنواع أخرى. لغة صدفة ، كما قالوا. عدة مئات من المشغلين: لأي مشغل فردي - من سيتذكرهم جميعًا؟ ومع ذلك ، أصبحت هذه اللغة شائعة جدًا في الاتحاد السوفيتي أيضًا ، منذ ظهور أجهزة الكمبيوتر ES. كتبت عليها ، لكن حدثت كوابيس أيضًا. سوف تصف في أحد الإجراءات المتغير العام A bin fix (عدد صحيح) ، وفي متغير آخر A bin float (النقطة العائمة). بعد ذلك سوف تبحث عن خطأ لفترة طويلة - لن يقول المترجم أي شيء.



باختصار ، كان PL / 1 وفي أوروبا مكروهين بشدة ، ليس فقط في الاتحاد السوفيتي. لقد زرت الولايات المتحدة عدة مرات وسمعت ذلكلا توجد برمجة رأسمالية وشيوعية ، لكن هناك أساليب مختلفة .



النمط الأمريكي هو أسلوب القوة الغاشمة. عندما يفتقر الشخص إلى القدرة الحاسوبية للآلة ، يذهب إلى رئيسه ويقول: "اشتر لي سيارة أقوى بمرتين". عادة ما يشترونه.



في أوروبا - وفي الاتحاد السوفيتي بالطبع - لم يتم قبول هذا. كان علي أن أفكر برأسي ، لإيجاد خوارزمية أكثر كفاءة.



بمجرد أن التقيت بالمصمم الرئيسي لمترجمي PL / 1. من السهل على أي شخص سوفيتي أن يتذكر لقب لقب ماركس. إنه ليس أمريكيًا ، بل إنكليزيًا ، وقد تم عمل هؤلاء المترجمين في مكان ليس بعيدًا عن لندن - كان هناك مركز IBM في أوروبا. التقينا به في نوفوسيبيرسك ، حيث كان هناك مؤتمر كبير قدم فيه ماركس تقريرًا. وسئل: "كم عدد الأخطاء التي تم العثور عليها أثناء عملية التصحيح؟" قال: "لا أستطيع الإجابة على هذا السؤال - سر الشركة". - "كم عدد الأشخاص لديك؟" والجواب هو نفسه. ثم قفز كيس كوستر ، أحد مؤلفي كتاب Algol 68 (كنت مرتبطًا به كمترجم) ، وبدأ بالصراخ بلغة إنجليزية محددة إلى حد ما يعرفها جميع الأطفال الآن: "أنت تهين عالمنا الحر في مواجهة هؤلاء الزملاء المضطهدين". وبالنسبة لي: "ترجم!" أنا: "هذا غير مقبول هنا ، كيس". - "لقد كلفوني بك ، لذا ترجم!"آه حسنًا؟ بدأت في الترجمة ، كما فهمت ، لكنني فهمت بدقة. لكن لم يدينني أحد. ثم كان هناك استراحة مع أكواب من القهوة والبراندي - ثم كان الأمر كذلك. يقف ماركس المسكين هذا ، وهناك فراغان على بعد حوالي متر. صعدت إليه مع إناءين: "لنشرب!" انتقد الزجاج وقال: "دعني أخبرك بكل شيء.في محادثة خاصة يمكنني ذلك ، لكن لا يمكنني ذلك من المنصة ". ولذا قال إن لديه 51 مبرمجًا ، وأنهم وجدوا الكثير من الأخطاء ، وأن هذه بنية جامحة - مترجم مع PL / 1.



ثم اتضح أن لدينا الكثير من الأشياء المشتركة. كلاهما وُلدا في عام 1949 ، وتخرجا من جامعات في عام 1971 - إنه لندن ، وأنا لينينغراد. أقول: "كيف ذلك؟ لقد هزمناك أربع مرات في وقت البث ، وثلاث مرات في سرعة العد ، وعدد لا حصر له من المرات في طول الكود. لماذا أنت بهذا الغباء؟ " قال: كم سنة عملت على مترجم من Algol 68؟ - "سبع سنوات". - "كنا سنطردك من وظيفتك منذ فترة طويلة. السنة - قم بقيادة البضائع ، وإلا ستكون في الشارع ". كان ذلك عندما علمت لأول مرة ما هو وقت التسويق.من المهم العمل بسرعة ، وإلا سيحتل شخص ما هذا المكانة في السوق. عندها ستفعل ما هو أفضل ، لكن لن يعلم أحد بذلك. في الاتحاد السوفياتي ، لم نكن نعرف هذا.



الجول 68



أجاب الأوروبيون على PL / I بلغة ALGOL 68. كانت هناك مجموعة عمل 2.1 IFIP على لغات تشبه Algol. عندما تم نشر رسالة منقحة في عام 1964 حول Algol 60 ، قرروا أن هذا الاتجاه قد انتهى ، وكان لابد من تطوير شيء مختلف تمامًا. أطلقوا صرخة: ماذا سنفعل بعد ذلك؟ كان الجواب الكتاب الأبيض - لدي على الرف الخاص بي ، وهو نادر ، وليس على الإنترنت - مع مقترحات لنفس المجموعة 2.1.



إنه يحتوي على مقال طويل بقلم رالف لندن حول أدلة صحة البرنامج ، مقال باربرا ليسكوف "لغة CLU" ، حيث صاغت لأول مرة مفهوم أنواع البيانات المجردة. كان هناك أيضًا مقال للباحث الهولندي فان وينجاردين حول قواعد من مستويين. تشبه القواعد ذات المستويين آلة تورينج من حيث القوة ، ويمكن استخدامها ليس فقط لوصف التركيب الدقيق - الآن لن تفاجئ أي شخص - ولكن أيضًا لوصف الدلالات الدقيقة لتنفيذ اللغة. وبعد العديد من الاجتماعات ، قرر الأشخاص من مجموعة العمل 2.1 أن يتخذوا قواعد فان وينجاردين ذات المستويين النحوي كأساس للغة المستقبل . سيتم التنفيذ قبل الانتهاء من سرد طلبك.



ضمت المجموعة حوالي 200 شخص ، من بينهم علماء سوفيت: ارشوف ، لافروف. كتب مستشاري العلمي غريغوري سامويلوفيتش تسيتين الكثير من الرسائل للمشاركين - حتى أنهم قدموا له الشكر. في ديسمبر 1968 ، اعتمد IFIP لغة جديدة تسمى Algol 68.



لقد كانت لغة غريبة ، كابوس. من ناحية ، كانت رسمية ودقيقة للغاية ، ومن ناحية أخرى ، كان من المستحيل الكتابة فيها.



وهكذا جاء Grigory Samuilovich Tseitin إلى مختبرنا لبرمجة النظام ، حيث عملت بعد ذلك كطالب في السنة الثالثة للرياضيات والتكنولوجيا ، ويقول: "يا رفاق ، توصلوا إلى مثل هذه اللغة - لا أحد يستطيع تنفيذها. دعونا ننفذها ". نحن: "لنذهب" - وانطلقنا في هذا العمل. كانت شهادتي في عام 1971 بعنوان "البحث عن سلسلة من الأشباح في مترجم من Algol 68 عن كمبيوتر ES". 11 صفحة من النص المكتوب بخط اليد وبرنامج عمل. بعد خمس سنوات ، وجدت خطأً في هذه الشهادة ، لكن عندما دافعت عن نفسي ، لم يلاحظها أحد.



كانت اللغة صعبة للغاية ، ولم نكن الوحيدين الذين اعتقدنا ذلك. استمرت المجموعة 2.1 ، وصدر تقرير منقح عن ALgol 68 في 74. ست سنوات أخرى من العمل الجاد من قبل اللجنة الكبيرة.لقد تبين بالفعل أن هذه اللغة مفهومة تمامًا ، وبدأ تنفيذها في العديد من المجموعات في كل من أوروبا وأمريكا. في اتحاد الجمهوريات الاشتراكية السوفياتية ، كانت هناك مجموعة من ميخائيل روفيموفيتش ليفنسون في المعهد الاقتصادي المركزي ، إيكاترينا لوجفينوفنا يوشينكو في كييف. قدم ساشا ماسلوف وفريقه فريق ألغول 68 لصالح إلبروس. أنشأ Andrey Petrovich Ershov مترجمًا محسنًا من Algol 68 في نوفوسيبيرسك. في لينينغراد ، عندما ترك غريغوري تسيتين هذه الأعمال ، وقعت المهمة على عاتقي حرفياً.





- "ألغول: نجاح وفشل" ، ملخص تقرير العالم السويسري بيتر ناور ، المقدم في ندوة "10 سنوات من ألغول" في زيورخ في 31 مايو 1968. من أرشيف الأكاديمي أندريه إرشوف



لم أضطر للجلوس مع شخص ما لأصبح رئيس المختبر. تحول كل شيء من تلقاء نفسه عندما بدأنا تصحيح أخطاء IBM / 360 في NITSEVT في موسكو. كان لدينا دكتور في العلوم ، حوالي خمسة مرشحين وحوالي 15 طالبًا ، بينما كنا نكتب المقالات والكتب ، كان كل شيء على ما يرام. ولكن بعد ذلك بدأ الناس من الجيل الأكبر في السقوط ببطء. تم تخصيص الوقت في NITSEVT لنا فقط في الليل. ذهبنا إلى موسكو لمدة ثلاثة أيام - نعمل في الليل ، وننام أثناء النهار ، لكن الشباب لم يهتم. علاوة على ذلك ، أحببت العمل في الليل. كانت هناك أجهزة أمريكية وسوفيتية. قم برمي الكابل ، وستعمل بشكل طبيعي على معدات أمريكية جيدة ، وقم بالعودة في الصباح. خلال النهار لم يُسمح لهم بفعل ذلك.ولم يستطع زملائي الأكبر سنًا تحمل ذلك: عندما سلموا المترجم ، كنت بالفعل كبير المصممين ورئيس المختبر.



صنعنا أول مترجم في الاتحاد السوفياتي من Algol 68. مع بعض التأخير ، مجموعات Maslov و Levinson. قام Yushchenko بتطوير مثير للاهتمام ، بالإضافة إلى قاعدة بيانات. تم إجراء بحث علمي ضخم يسمى "مشروع بيتا" في نوفوسيبيرسك. لقد حاولوا تعميم المشكلة بقوة بحيث يمكن عمل ALgol 68 و PL / I و Pascal مع مترجم واحد. سواء في أكواد BESM-6 أو في أكواد ES EVM. لم يكتمل المشروع مطلقًا ، لكنهم فعلوا بعض المترجمين الفرديين.



عندما بدأنا في تنفيذ Algol 68 ، اتضح أنه لا أحد يحتاج حقًا إلى موثوقيتها ، باستثناء الجيش.لكن بعد ذلك وقعوا في حبها ، وتحولت إليها العديد من المنظمات العسكرية.





جدول محتويات التقرير المنقح عن ALgol 68 الصادر عن مجموعة العمل 2.1. أول من جاء في قائمة المحررين هو Adrian van Weingaarden



باسكال



كان نيكلاوس ويرث أحد المشاركين في مجموعة العمل 2.1. هو والعديد من العلماء المعروفين الآخرين - Hoare ، Dijkstra ، للأسف ، Lavrov - لم يوافقوا على رأي الأغلبية وفي ديسمبر 1968 كتب ما يسمى بتقرير الأقلية. في ذلك ، عبروا عن فكرة أن "الجبل أنجب فأراً: هذه اللغة كبيرة ومعقدة لدرجة أنه لن يفهمها أحد في حياته". في الواقع ، هذا صحيح ، ولكن بعد ست سنوات من العمل وإصدار الرسالة المنقحة ، أصبحت Algol 68 لغة لطيفة للغاية ومفهومة . في الأوساط الأكاديمية ، اكتسب شعبية كبيرة جدًا ، لكن في البرمجة الصناعية ، خاصة في أمريكا ، لم يحدث ذلك. وهكذا قام الرفيق ويرث بهذه الحيلة بأذنيه - لقد ابتكر لغة سماها باسكال. هو نفسه من زيورخ ، لكنه في تلك اللحظة كان متدربًا في ستانفورد.



باسكال - "قلص" ألغول 68. أي أنه أخذ المقص ، وقطع هذا ، هذا ، هذا ... الوصف الأول كان - مثل دفتر ملاحظات لـ 2 كوبيل: 24 ورقة ، رفيعة ، رفيعة. منذ ذلك الوقت كنا قد أكملنا بالفعل العمل في Algol 68 ، تعهد أحد طلابي بتنفيذ Pascal بأساليبنا الخاصة. لكن كل صباح بدأ بأسئلته لي: "لماذا يمكنك كتابة العديد من العوامل بين التكرار وحتى بدون أقواس إضافية ، وبعد ذلك - واحد فقط؟" ماذا أفعل إذا كنت أرغب في تمرير الإجراء نفسه كمعامل ، على سبيل المثال ، لحساب تكامل متعدد؟ ". كان هناك العديد من التناقضات. كان لدى Algol 68 قيود بحيث لا تعمل الذاكرة اللانهائية ، لذلك لن ينجح التقليل الذاتي. في باسكال ، لا.



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



من المضحك أن زوجتي كتبت إلى كيس كوستر ، مؤلفة قسم التبادل ، عن الأخطاء التي وجدتها وتلقت إجابات: "عزيزي السيد تيريكوفا". في البداية شعرنا بالإهانة ، ثم قالوا لنا: "كيف سيخمن أن تيريكوفا هي؟" ثم بدأنا التوقيع مع غالي تيريكوف ، وفهم كل شيء.



ويرث رجل ذكي ، عمل على صقل باسكال ، وفي عام 1974 ، مع رجل يدعى جنسنجعل المعيار أكثر سمكا ، الصفحات 100-120. عندما احتفل ويرث بعيد ميلاده الثمانين ، كانت هناك ندوة صغيرة في زيورخ ، حيث تمت دعوتي من بين 20-30 ضيفًا. عندما وصلت ، اتضح أن جنسن كانت امرأة ، كاثلين. بصراحة ، كانت مفاجأة لي. لقد فعلت الكثير لتحويل باسكال من لعبة إلى لغة جادة.





خطاب كاثلين جنسن في الندوة المخصصة لميلاد نيكلاوس ويرث الثمانين



ثم بدأ بورلاند العمل وجعل بورلاند باسكال - مجلدين كثيفين بالفعل. وهكذا ظهرت لغة يمكن استخدامها بالفعل . قبل ذلك - التدليل في المدرسة.



عندما صدر التقرير المنقح عن باسكال ويرث وجنسن - أيضًا بعد سنوات قليلة من نشر المعيار الأول - كتب ويرث في المقدمة: "مستوى باسكال أعلى من مستوى ألغول 60". محرر الترجمة كان المبرمج السوفيتي الشهير ديمتري بودشيفالوف ، وهو عم شرير إلى حد ما. كان يحب التحدث بحدة. بعد ملاحظة ويرث ، ظهرت حاشية في الترجمة: "من الصعب الموافقة على هذا البيان. حاول كتابة عملية ضرب المصفوفة في باسكال ”. الحقيقة هي أنه في باسكال ، كما في C ، بالمناسبة ، يمكنك وصف مصفوفة من صفر إلى مائة إلى ألف ، لكن لا يمكنك وصفها حتى N - لا توجد مصفوفات ديناميكية. كيف تصف إجراء ضرب المصفوفة؟ أنت لا تعرف المصفوفات التي سيتم ضربها. لذلك ، كان Podshivalov محقًا تمامًا. بالنسبة لي أيضًا ، لغة عالية المستوى لا يمكنك فيها كتابة إجراء ضرب المصفوفة!





تم تطوير نيكولاس ويرث وجهاز كمبيوتر ليليث في المدرسة التقنية العليا السويسرية في زيورخ. ابتكر ويرث لغة جديدة ، Modula-2 ، خصيصًا لتطبيق البرنامج لهذا النظام . 1981



أصبح باسكال في نهاية المطاف مشهورًا جدًا بين تلاميذ المدارس والطلاب. بالنسبة لتعلم البرمجة الأساسي ، فهو جيد حقًا. بالنسبة للدمى ، الموثوقية تعني القليل: فكر فقط ، فجوة في اللغة - واحد ، ثاني ، ثالث. ولكن يمكن قراءتها وكتابتها بسهولة. في رأيي ، لم يدخل باسكال في البرمجة الصناعية - حيث تكون المسؤولية مطلوبة ومن الضروري كتابة أنظمة برمجيات كبيرة ذات موثوقية عالية.



الجحيم



بعد أن صنع الأوروبيون Algol 68 ، قرر الأمريكيون - لماذا نحن أسوأ؟ وقرروا إنشاء لغة جديدة لوزارة الدفاع الأمريكية. إنه الآن أكبر عميل لتكنولوجيا المعلومات في العالم ، حيث لا يمكن لأي شركة أن تضاهيه من حيث التمويل. قرر الأمريكيون التعامل مع هذا بطريقة علمية. أولاً ، قم بصياغة متطلبات اللغة. تم تسميتهم هكذا: رجل القش ، رجل خشبي ، رجل صلب. وآخرها حجر. لقد قرأت هذه المجلدات السميكة ، بوضوح وبشكل جيد.



ثم أعلنوا عن مسابقة بملايين الدولارات. لكنهم أدركوا أنه إذا لم يتم اتخاذ تدابير خاصة ، فستفوز شركة IBM بالتأكيد.إنه مثل القول المأثور حول كرة القدم: "الكل يلعب ، لكن الألمان يفوزون". في تلك السنوات ، كان لشركة IBM حجم مبيعاتها المالية 20 مرة أكثر من أقرب منافس لها. وقالوا أيضا "آي بي إم والأقزام الستة": شركة واحدة يبلغ حجم مبيعاتها 16 مليارا وستة أخرى - 1 مليار طن لكل منهما. لذلك ، صنفت وزارة الدفاع المشاركين ، ولم يعرف أحد من كان. في المرحلة الأولى ، تم اختيار 17 فريقًا. لقد قدموا لهم الكثير من التمويل - ملايين الدولارات لكل منهم. في المرحلة الثانية ، تم اختيار أربعة فرق وتسميتها بالألوان: الأحمر والأصفر والأخضر والأزرق. كان تمويلهم بالفعل بالمليارات ، وكان عليهم أن يصنعوا ليس فقط اللغة ، ولكن أيضًا مترجمًا تجريبيًا حتى يمكن اختباره. فقط عندما أنهوا عملهم تم فتح المظاريف.



كانت هناك فضيحة جامحة ، لأن الأوروبيين فازوا فجأة - فريق جان إيشبيا من باريس. بلغة تشبه إلى حد بعيد ALgol 68 وتختلف تمامًا عن PL / 1. تم تسمية اللغة Ada - تكريما لأول مبرمج في العالم Ada Lovelace ، ومساعدة Charles Babbage ، وبالمناسبة ، ابنة Lord Byron ، لكن ربما تعرف ذلك جيدًا.





كان جان دافيد إيشبيا موظفًا في وحدة البحث والتطوير في شركة تصنيع الكمبيوتر الفرنسية Bull



لإنشاء كل هؤلاء "الرجال الحجارة" ، أي صياغة المطالب ، عقد الأمريكيون لجانًا. كانت هناك حاجة إلى مئات المتخصصين لتقييم الأمر برمته. لذلك ، تم استدراج مجموعات كاملة من المبرمجين من أوروبا إلى الولايات المتحدة. تم القبض على شيوعي في إحدى اللجان - المجري إيفان باخ ، عضو حزب العمل الاشتراكي المجري ، انتهى به الأمر عمليا في البنتاغون. في عام 1976 حاضر في جامعة بودابست حيث تعرفت عليه. أصبحنا أصدقاء ، وتجولنا في أنحاء بودابست ، وأخبرني كيف يتم ترتيب كل شيء مع الأمريكيين. أخيرًا ، أرسل لي أحد الأوصاف الأولية للغة الجحيم على شريط. عملنا عليه لمدة ثلاث سنوات أخرى بعد ذلك. مرة أخرى ، تذكر الرقم 6.



ولذا أحضرت إلى الاتحاد السوفياتي أول وصف للبلاد للغة الجحيم. بطبيعة الحال ، قررنا عمل مترجم. لقد أصبحت بالفعل ماهرًا في هذا الأمر وفكرت: نظرًا لأن هذا هو معيار وزارة الدفاع الأمريكية ، فإن جنودنا سيرغبون بالتأكيد في استخدامه. ثم أقول لهم: "لدي مترجم". لكن فاتني الكثير - لم يكن محاربونا مهتمين بـ Ada. في رأيي ، عبثا. لقد سرقوا كل شيء - كان من الضروري سرقته أيضًا.



عندما قررت أن أصبح مترجمًا ، قال أحد العاملين في مختبري ، أكبر مني بأربع سنوات: "لقد أشرفت كثيرًا على أندريه. لماذا أنتم جميعًا لنفسك ولأجل نفسك؟ اسمحوا لي أن أقود هذا العمل ". أجبته: "لقد أحضرته ، وفكرت فيه ، أعرف كيف أفعله. لكن حسنًا ، قُد ". لقد أقنعني ، وكان لدي بالفعل ما أفعله. مرت ثلاثة أشهر واتضح أن المجموعة ، التي تم إنشاؤها بالقرب من Adu ، كان يرأسها خريج هذا العام تقريبًا. كان تلميذي أركادي بوبوف. أسأل: "كيف ذلك؟ لماذا أخبرت الحمقاء؟ " وهو: "أنا لم أنجح - أخذوها مني". تبين أن الشاب نشط للغاية.



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



أمضت مجموعة من أربعة أشخاص عامين في كتابة ثلاثة مجلدات سميكة - مسودة. اعتنينا بالصغار ، ابتهجنا بهم ، بعد الانتهاء من التصميم كان لدينا القليل من الخمر. لحظة جليلة - اكتمل العمل لمدة عامين. لكن الأمر استغرق ثلاثة أشهر من التنفيذ ، واتضح أنهم كانوا مخطئين في المشروع ، وفي نوع من بنية البيانات التي تؤثر بشدة على كل شيء آخر. جاء أركادي لي وطلب المغفرة: "لقد خدعنا". لكن هذه المجموعة مع ذلك جعلت المترجم الأول في اتحاد الجمهوريات الاشتراكية السوفياتية من لغة الجحيم. صحيح ، في وقت متأخر عما كانت عليه ، وبطرق عادية ، مثل أي شخص آخر.





أوليج بيرمينوف ، "مقدمة في لغة برمجة ADA" ، 1991



جافا وبايثون



هذا هو المكان الذي تنتهي فيه لغاتي المفضلة. لم يعد الطريق الآخر ثوريًا.



دعنا نقول جافا. استنادًا إلى آلة افتراضية ، قابلية نقل الكود. حتى ويكيبيديا تقول أنه تم اختراع رموز p في وقت ما في عام 1978. لكن لا! سألت ويرث نفسه شخصيًا من أتى بالرمز p. فقال: اختلقتها. عندما فعل باسكال ، ذهب إلى رئيس جامعة ستانفورد: "هناك لغة يمكن للطلاب أن يتعلموا بها جيدًا. دعونا؟" رئيس الجامعة: "تعال! لدي ستة أنواع فقط من أجهزة الكمبيوتر. اجعل باسكال على الجميع ". قال ويرث إنه كاد يموت - من المستحيل عمل ستة مترجمين بمفردهم. وذلك عندما أنشأ رمز p ، آلة افتراضية. اتضح أنه كان لديه مترجم من Pascal إلى p-code مكتوب في p-code ، ثم تم عمل مترجم للشفرة p على كل جهاز - هذا برنامج تجميع بسيط للغاية ، عدة مئات من الأسطر. وعمل كل شيء. ما زلنا نستخدم هذه الفكرة. يقول نيكلاسأنه هو من اخترع p-code ، وليس في 78 ، بل في 71. سمعت أيضًا عن p-code في أوائل السبعينيات - وصلت إلينا بعض المعلومات.



الآن يقوم Wirth بعمل شيء مشابه لما نقوم به ، ونحن نصنع نسخة من لغة C - أكثر أمانًا ، مع تحكم كامل. اتضح أننا لسنا الأوائل في هذا أيضًا. توجد بالفعل مثل هذه اللغة - Di ، اخترعها Andrei Alexandrescu. أعرفه شخصيًا - رأيته في مؤتمر ما.



سأقول بضع كلمات فقط عن بايثون. إنها لغة لا يمكن استخدامها لكتابة البرامج الكبيرة. لكنها جيدة جدًا للنماذج الأولية: ضعها بسرعة على الركبة وانظر ما يحدث. لذلك يستخدمونها بشكل أساسي. لغة خفيفة الوزن بها عدد هائل من المكتبات. لكن لا يمكنني أن أتخيل أنهم سيكتبون التحكم في صاروخ أو تبادل هاتفي في بايثون - فهذا ليس مخصصًا لنظام أجهزة كبير. في الواقع ، تحدث جويدو فان روسوم بنفسه عن هذا الأمر لي عندما أخبرني كيف ولماذا ابتكرت بايثون.



سي



سوف أتناول المزيد من التفاصيل حول تاريخ لغة سي - وهي واحدة من أكثر اللغات شهرة. اخترع كين تومسون في عام 1970 نظام التشغيل ، والذي يسمى الآن يونكس. كان حدثا رائعا. لهذا ، استخدم اللغة التي لا تحتوي على أنواع B. بعد ذلك بقليل ، توصل مارتن ريتشارد إلى لغة BCPL - تطوير لغة Bi ، التي لا تحتوي أيضًا على أنواع. ثم قرر دينيس ريتشي إعادة كتابة كل شيء بلغة سي أكثر كفاءة وموثوقية ، والتي اخترعها هو نفسه. لقد اعتمد على B و BCPL ، لكنه أضاف التحكم في النوع.





منشئو UNIX كين طومسون ودينيس ريتشي أثناء العمل على PDP-11. تصوير بيتر هامر ، حوالي عام 1970



اتضح أنه مضحك. صدر أول منشور لريتشي في عام 1978 ، عندما أصبح شي شائعًا بالفعل ووصل إلى الاتحاد السوفيتي. لقد عرفت لغة C لأن كود مصدر يونكس تم توزيعه مجانًا - كانت هذه أول تجربة لمشروع مفتوح المصدر. درس الناس لغة C بالطريقة التالية: اقرأها - مصفوفة مكتوبة بهذا الشكل ، قص مثل هذا ، حلقة مثل هذه. هذا كل شيء ، لا حاجة لأي شيء آخر. لكن المقال الأول لمؤلف اللغة ظهر بعد سنوات قليلة فقط من أن الجميع في العالم قد أصبحوا على دراية بها عن كثب.



لغة C هي لغة جيدة جدًا ، أحبها ، لكن بها ثغرات. أريد إصلاح ذلك ، فأنا أعمل عليها الآن وسأضمن استخدام إصدارات أكثر موثوقية.



كوبول





غلاف التقرير الخاص بلغة كوبول الذي أعدته وزارة الدفاع الأمريكية لمؤتمر أبريل 1960.



وقد اخترع الأمريكيون كوبول ، هذا الشرير. الحقيقة هي أن فورتران تم اختراعه في الأصل من أجل الحسابات العلمية ، بينما استخدم الأمريكيون بالفعل في تلك السنوات العديد من أجهزة الكمبيوتر في الاقتصاد - للتحكم في الإنتاج. تم اختراع كوبول خصيصًا للعمل مع البيانات الاقتصادية.



اللغة غريبة للغاية ، لكنها اتضح أنها جيدة للحسابات الاقتصادية. يمكنك أن تقول ما دمت تحب أنها مليئة بالثغرات والقذرة ، لكن نصف البرامج المالية في العالم مكتوبة عليها ، ويعمل البنك المركزي الروسي وسبيربنك أيضًا على كوبول. أعرف ذلك جيدًا ، لأن طلابي في كل مكان. إنهم لا يكتبون برامج جديدة عليها ، لكن هناك الكثير من البرامج القديمة.



أعطاني كوبول الفرصة للبقاء على قيد الحياة خلال البيريسترويكا. بحلول نهاية الثمانينيات ، كان لدينا مجموعة قوية من المترجمين - أول مترجمين من Algol 68 ، من Ada ، من لغات الذكاء الاصطناعي ، التحكم الآلي. كان كل شيء على ما يرام ، لكن البيريسترويكا اندلعت ، وتدفقت هنا مجموعة من البرامج من الولايات المتحدة. تدفق المذيعون الأمريكيون على السوق ، وبما أنه لم يدفع أحد مقابل أي شيء - كان هذا عصر القرصنة المطلقة - فقد بدأوا في نسيان فريقي. كدت أشعر باليأس ، رغم أنني بحلول ذلك الوقت كنت قد شكلت مؤسسة "Terkom" - تيريكوف والفريق.



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



All Articles