رشيق
لغة Lithe هي لغة برمجة تجريبية ابتكرها ديفيد ساندبرغ في جامعة واشنطن عام 1982 ، وتتيح للمبرمج حرية اختيار بناء الجملة الخاص به. تجمع Lithe بين فكرتي الترجمة الموجهة بالبنية النحوية والفئات بطريقة مبتكرة، مما ينتج عنه لغة بسيطة للغاية لكنها قوية في الوقت نفسه .
ملخص
لا يُحدد نموذج البرمجة القياسي القائم على الأصناف آليةً لمعالجة الكائنات: فبينما يستخدم Smalltalk تمرير الرسائل، يستخدم Lithe الترجمة الموجهة نحو بناء الجملة (SDT). تُعدّ SDT طريقةً لترجمة سلسلة نصية إلى سلسلة من الإجراءات عن طريق ربط إجراء واحد بكل قاعدة من قواعد النحو. وبالتالي، ينتج عن تحليل سلسلة نصية من قواعد النحو سلسلة من تطبيقات القواعد. يدمج Lithe تقنية SDT مع نموذج الأصناف باستخدام الأصناف كأبجدية غير طرفية لقواعد النحو. وبما أن صنف قواعد النحو الذي يستخدمه Lithe يحتوي على جميع قواعد النحو الخالية من السياق، فإنه يُمكن وصف مجموعة واسعة من بناء الجملة، وتوفر SDT طريقةً بسيطةً لربط الدلالات بأي من هذه القواعد.
تُعدّ الحزمة وحدة بناء البرنامج في Lithe. تنقسم الحزمة إلى جزأين: أحدهما يُعرّف الأصناف والآخر يُعرّف القواعد. ويتم إخفاء المعلومات من خلال اشتراط استخدام كلمات مفتاحية للتصدير في كلٍّ من القواعد والأصناف التي ستُعرض خارج الحزمة، بالإضافة إلى تضمين أسماء الحزم المصدرية في عبارة with الخاصة بالحزمة المستهلكة.
أمثلة
تتألف البرمجة في لغة Lithe من تعريف أزواج القواعد والإجراءات والفئات. خذ على سبيل المثال مهمة حساب القيمة المطلقة لعدد ما:
قاعدة "|" < i: int > "|" إرجاع int ; { إذا كان i<0، فأرجع -i، وإلا فأرجع i . }بعد تعريف زوج القاعدة والإجراء هذا، يمكن استخدامه بحرية داخل شفرة مصدر Lithe، على سبيل المثال، سيكون التعبير التالي صالحًا بعد ذلك:
|س - ص| + 3
القاعدة المكافئة في صيغة BNF هي:
<int> ::= "|" <int> "| "لاحظ أن وصف Lithe يبدل بين الجانبين الأيمن والأيسر لوصف BNF، ثم يضيف اسمًا لكل رمز غير طرفي في الجانب الأيمن من BNF. تُستخدم هذه الأسماء في جزء الإجراءات، والذي يُعبَّر عنه كسلسلة تُترجم إلى سلسلة من الإجراءات باستخدام أزواج قواعد-إجراءات أخرى مُعرَّفة مسبقًا (في النهاية، ستستدعي بعض أزواج القواعد-الإجراءات هذه إجراءات أولية).
روابط خارجية
- لغات البرمجة التصريحية
- لغات البرمجة التجريبية
- لغات برمجة ذات بنية قابلة للتوسيع
