بيل هو مكتوب في بيل.في عام 1960 ، وصف جون مكارثي ليسب ، وهو نوع جديد من لغة البرمجة. أقول "نوع جديد" لأن لغة Lisp لم تكن مجرد لغة جديدة ، ولكنها طريقة جديدة لوصف اللغات.
لتعريف Lisp ، بدأ بمجموعة صغيرة من المشغلين ، وهو نوع من البديهية ، ثم اعتاد أن يكتب مترجمًا للغة نفسها.
لم يكن يهدف إلى وصف لغة برمجة بالمعنى المعتاد - لغة تستخدم لإخبار الكمبيوتر بما يجب القيام به. في عمله عام 1960 ، تم فهم Lisp على أنه نموذج حساب رسمي أقرب إلى Thuring Machine. لم يفكر مكارثي في استخدامه على أجهزة الكمبيوتر حتى اقترحه ستيف راسل ، طالب الدراسات العليا.
1960 لم يكن لدى Lisp القدرات المشتركة في لغات البرمجة. على سبيل المثال ، لم تكن هناك أرقام أو أخطاء أو إدخال / إخراج. لذلك ، كان على الأشخاص الذين استخدموا Lisp كأساس للغات المستخدمة في برمجة أجهزة الكمبيوتر إضافة هذه الميزات بأنفسهم. وفعلوا ذلك من خلال التخلي عن النهج البديهية.
وهكذا ، تطور تطوير Lisp إلى مرحلتين - ويبدو أنه مستقل تمامًا - المرحلة الرسمية ، التي تم تقديمها في عام 1960 ، ومرحلة التنفيذ ، حيث تم تكييف اللغة وتوسيعها لتعمل على أجهزة الكمبيوتر. كان العمل الرئيسي ، إذا تم قياسه بعدد الفرص المنفذة ، في مرحلة التنفيذ. 1960 ليسب ، مترجم إلى ليسب المشترك ، يحتوي على 53 سطرًا فقط. يفعل فقط ما هو ضروري لتفسير التعبيرات. تم إضافة كل شيء آخر في مرحلة التنفيذ.
فرضيتي هي أنه على الرغم من التاريخ الصعب ، استفادت ليزب من حقيقة أن تطوره حدث على مرحلتين ؛ أن التمرين الأولي لتعريف لغة من خلال كتابة مترجمها الخاص بها قد منح لشب مع أفضل صفاتها. وإذا كان الأمر كذلك ، فلماذا لا نمضي قدمًا؟
Bel هي محاولة للإجابة على السؤال: ما إذا ، بدلاً من الانتقال من المرحلة الرسمية إلى مرحلة التنفيذ في مرحلة مبكرة ، جعل هذا الانتقال متأخراً قدر الإمكان؟ إذا استمرت في استخدام الطريقة البديهية حتى تحصل على شيء قريب من لغة برمجة كاملة ، فما هي البديهيات التي ستحتاجها وكيف ستبدو اللغة الناتجة؟
أريد أن أوضح ما هو بيل وما هو ليس كذلك. على الرغم من أنه يحتوي على ميزات أكثر بكثير من 1960 Lisp McCarthy ، إلا أن Bel لا يزال في المرحلة الرسمية. مثل Lisp الموصوفة في 1960 ، فهي ليست لغة يمكنك استخدامها للبرمجة. في الغالب لأنه ، مثل ليسب مكارثي ، لا يهتم بالكفاءة. عندما أقوم بإضافة شيء إلى Bel ، أصف معنى هذه الإضافة دون محاولة تقديم تنفيذ فعال.
من اجل ماذا؟ لماذا تمديد المرحلة الرسمية؟ إجابة واحدة هي معرفة أين يمكن أن يأخذنا النهج البديهي ، وهو بحد ذاته تمرين مثير للاهتمام. إذا كانت أجهزة الكمبيوتر قوية كما نود ، فكيف ستبدو اللغات؟
لكنني أعتقد أيضًا أنه من الممكن كتابة تنفيذ فعال قائم على Bel ، مع إضافة قيود. إذا كنت بحاجة إلى لغة لديها قوة تعبيرية ووضوح وكفاءة ، فقد تحتاج إلى البدء بالقوة والوضوح التعبيرية ، ثم إضافة قيود بدلاً من التحرك في الاتجاه المعاكس.
لذلك إذا كنت ترغب في محاولة كتابة تطبيق يستند إلى Bel ، فالرجاء. سأكون من أوائل المستخدمين.
في النهاية ، استنسخت بعض الأشياء من لهجات سابقة. إما أن مصمميها فعلوا كل ما هو صواب ، أو بسبب تأثرهم باللهجات المستخدمة سابقًا ، لا أرى الإجابة الصحيحة - سيوضح الوقت. حاولت أيضًا ألا أذهب بعيداً عن الاتفاقيات المعتمدة في لشب. مما يعني أنه إذا رأيت خروجًا عن اتفاقيات لشب ، فقد يكون هناك سبب.
استمرار وصف اللغة هنا .شكرًا على الترجمة: Denis MitropolskyPS