النكهات (لغة برمجة)

Flavors [ 1 ] هي امتداد مبكر للغة Lisp موجه للكائنات ، طوّره هوارد كانون في مختبر الذكاء الاصطناعي بمعهد ماساتشوستس للتكنولوجيا (MIT) لآلة Lisp ولغة البرمجة الخاصة بها Lisp Machine Lisp . وتُعدّ Flavors أول لغة برمجة تتضمن mixins . [ 2 ] استخدمتها شركة Symbolics في آلات Lisp الخاصة بها، وطوّرتها لاحقًا إلى New Flavors ؛ وكانت كلتا النسختين، Flavors الأصلية والجديدة، نماذج موجهة للكائنات تعتمد على تمرير الرسائل . وكان لها تأثير كبير في تطوير نظام كائنات Common Lisp (CLOS). [ 3 ]

تتوفر أيضًا تطبيقات النكهات للغة Common Lisp . [ 4 ]

استبدلت النكهات الجديدة إرسال الرسائل باستدعاء الدوال العامة .

تقدم Flavors :beforeو :afterdaemons مع مجموعة الطرق الافتراضية (تسمى :daemon).

مقارنة النكهات وميزات نظام الإغلاق

يقدم Flavors بعض الميزات غير الموجودة في CLOS:

  • أغلفة
  • الوصول المعجمي التلقائي إلى الخانات باستخدام المتغيرات داخل الطرق.
  • وظائف النكهة الداخلية، والوحدات الكلية، والبدائل.
  • المُنشئات المُولّدة تلقائيًا.
  • DEFFLAVORخيارات: :required-methods، :abstract-flavor، :mixture.
  • SENDوظيفة لإرسال الرسائل.

يوفر نظام CLOS الميزات التالية غير الموجودة في Flavors:

  • الأساليب المتعددة
  • طرق متخصصة في الكائنات الفردية (عبر EQL).
  • طرق متخصصة في أنواع Common Lisp (الرمز، العدد الصحيح، ...).
  • أساليب متخصصة في أنواع التعريف والبنية.
  • أماكن الحصص الدراسية.

مصطلحات

مصطلحات النكهات
النكهاتإغلاق
نكهةفصل
نكهة المكونالطبقة العليا
نكهة معتمدةفئة فرعية
نكهة المكونات المحليةالطبقة العليا المباشرة
نكهة محليةالفئة الفرعية المباشرة
وظيفة عامةوظيفة عامة
طريقة مشتركةطريقة فعالة
خيار الطريقةمُؤهِّل الطريقة
مثالمثال
متغير مثيلفتحة
ترتيب مكونات النكهةقائمة أسبقية الفئات

مراجع

  1. هوارد كانون، النكهات: منهج غير هرمي للبرمجة الكائنية التوجه ، شركة سيمبوليكس، 1982
  2. ↑ انظر الصفحة 46 من كتاب تومسون، سي دبليو، روس، كيه إم، تينانت، إتش آر، وسينز، آر إم، 1983. "بناء واجهات لغة طبيعية سهلة الاستخدام قائمة على القوائم لقواعد البيانات". في وقائع المؤتمر الدولي التاسع حول قواعد البيانات الضخمة جدًا (31 أكتوبر - 2 نوفمبر 1983). إم. شكولنيك وسي. ثانوس، محرران. قواعد البيانات الضخمة جدًا. دار مورغان كوفمان للنشر، سان فرانسيسكو، كاليفورنيا، الصفحات 43-55.
  3. « كانت Symbolics (1985) تستخدم New Flavors (نموذج إرسال رسائل، مثل Java اليوم)، وكانت Xerox تستخدم CommonLoops ، وكانت Lisp Machine Incorporated تستخدم Object Lisp (Bobrow، 1986)، واقترحت Hewlett-Packard استخدام Common Objects (Kempf، 1987). تنافست هذه المجموعات فيما بينها في سياق جهود التوحيد القياسي الجارية للغة Common Lisp في ذلك الوقت، واستقرت في النهاية على معيار قائم على CommonLoops وNew Flavors.» ص 108 من Veitch 1998.
  4. نكهات أليغرو سي إل
  • فيتش، جيم (1998). "تاريخ ووصف لغة CLOS". في سالوس، بيتر هـ. (محرر). دليل لغات البرمجة، المجلد الرابع: لغات البرمجة الوظيفية والمنطقية (  الطبعة الأولى). ماكميلان للنشر التقني. الصفحات 107-158 . ISBN  1-57870-011-6.

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