Oldindan jo'natish - Predicate dispatch

Yilda kompyuter dasturlash, jo'natish ning umumlashtirilishi bir nechta jo'natish ga imkon beradigan ("multimethods") usul o'zboshimchalik bilan qaror qabul qilish asosida ish vaqtida tanlanishi uchun qo'ng'iroq qilish mantiqiy predikatlar va / yoki naqshlarni moslashtirish usul deklaratsiyasiga biriktirilgan.[1][2]

Raku har qanday funktsiya yoki usul parametrlariga qarshi o'zboshimchalik bilan kodni bajarishi mumkin bo'lgan "qaerda" bandlari yordamida predikativ jo'natishni qo'llab-quvvatlaydi.[3]

Yuliya bilan birga to'plami bor PatternDispatch.jl lekin aks holda mahalliy ravishda bir nechta jo'natishni qo'llab-quvvatlaydi.

Eksperimental dasturlar yaratilgan Umumiy LISP,[4][5] va uchun Java (JPred[2]).

Bu ilgari e'lon qilingan usullarni nozik darajadagi ochiq tarzda kengaytirishga imkon beradi, ammo turli xil ishlab chiquvchilar tomonidan yaratilgan bir xil yoki bir-biriga o'xshash predikatlar bilan bir nechta kengaytmalar kutilmagan tarzda bir-biriga xalaqit berishi mumkin. Bu jihatdan u o'xshashdir aspektga yo'naltirilgan dasturlash.

Adabiyotlar

  1. ^ Millstein, T. "Amaliy taxminiy jo'natish" (PDF). Iqtibos jurnali talab qiladi | jurnal = (Yordam bering)
  2. ^ a b Milshteyn, T .; Ayoz, C .; Rayder, J .; Warth, A. (2009). "Java uchun ekspresiv va modulli predikat jo'natmasi". Dasturlash tillari va tizimlari bo'yicha ACM operatsiyalari. 31 (2): 1. CiteSeerX  10.1.1.212.4268. doi:10.1145/1462166.1462168.
  3. ^ "sinf imzosi". Olingan 2020-07-07.
  4. ^ "Umumiy Lisp ob'ekti tizimida oldindan dispetcherlik" (PDF).
  5. ^ "pcostanza / filtered-functions". GitHub. Olingan 2016-04-07.

Tashqi havolalar