Nominal atamalar (informatika) - Nominal terms (computer science) - Wikipedia

Nominal atamalar a metall tili majburiy konstruktsiyalar bilan ob'ekt tillarini kiritish uchun. Intuitiv ravishda, ular birinchi darajali shartlarning kengaytirilishi sifatida qaralishi mumkin, bu ismlarni majburiy ravishda qo'llab-quvvatlaydi. Binobarin, ikkita nominal atama o'rtasidagi tenglikning asl tushunchasi alfa-ekvivalentligi (bog'langan ismlarning permutativ nomini o'zgartirishgacha bo'lgan tenglik). Nominal atamalar tadqiqot dasturidan chiqdi nominal to'plamlar va ushbu to'plamlarda aniq semantikaga ega.

Nominal birlashma samarali ravishda hal qilinadi. Bu haqiqat rivojlanishiga olib keldi alfaProlog, a Prolog o'xshash mantiqiy dasturlash Prolog standarti bo'lgan nomlarni shartli ravishda bog'lash uchun imkoniyatlar mavjud bo'lgan til birinchi tartibli unifikatsiya algoritmi nominal unifikatsiya bilan almashtiriladi.

Nominal muddatli ko'milishlar alternativa sifatida qaralishi mumkin de Bruijn kodlashlari va yuqori darajadagi mavhum sintaksis, bu erda ikkinchisi oddiygina terilgan lambda hisobi metall tili sifatida.

Motivatsiya

Ko'plab qiziqarli toshlar, mantiq va dasturlash tillari odatda kompyuter fanida tez-tez uchraydigan nomlarni majburiy tuzish xususiyatlariga ega. Masalan, dan universal kvantator birinchi darajali mantiq, dan lambda-bog'lovchi lambda-hisob, va pi-biriktiruvchi pi-hisob bularning barchasi nomlarni bog'laydigan konstruktsiyalarga misoldir.

Kompyuter olimlari ko'pincha manipulyatsiya qilish kerak mavhum sintaksis daraxtlari. Masalan; misol uchun, kompilyator mualliflar kompilyatorning bajarilishining turli xil optimallashtirish va takomillashtirish bosqichlarida mavhum sintaksis daraxtlari bilan ko'plab manipulyatsiyalarni amalga oshiradilar. Xususan, nomlarni biriktirish konstruktsiyalari bilan mavhum sintaksis daraxtlari bilan ishlashda biz ko'pincha alfa-ekvivalentlik sinflari ustida ishlashni, yozib olishdan saqlanadigan almashtirishlarni amalga oshirishni va yangi nomlarni yaratishni osonlashtirmoqchimiz. Buni qanday qilib yaxshiroq qilish kerak, xatosiz va ishonchli tarzda, katta miqdordagi izlanishlarga turtki beradi.

Ushbu muammoni hal qilish uchun avvalgi urinishlar orasida de Bruyn indekslari va darajalari kabi "noma'lum yondashuvlar" va yuqori darajadagi mavhum sintaksis kabi yuqori darajadagi yondashuvlar mavjud. Nominal atamalar de Bryuyn kodlashlarining birinchi darajadagi lazzatini (va birinchi darajali hisoblash xususiyatlarini) saqlab turganda, yuqori darajadagi mavhum sintaksis kabi bog'langan o'zgaruvchilar uchun aniq nomlarni saqlaydigan yana bir, nisbatan yangi yondashuvdir.

Sintaksis

O'rnatish namunalari

Birlashtirish algoritmi

Yuqori darajadagi naqshlar bilan bog'liqlik

Yuqori darajadagi unifikatsiya ma'lum hal qilib bo'lmaydigan. Bu lambda-atamalarining kichik to'plamlarini qidirishga undaydi, ular hisoblashda yaxshi muomala qilingan birlashish tartibidan foydalanadilar. Miller tomonidan taklif qilingan yuqori tartibli naqshlar ana shunday to'plamlardan biridir.

Yuqori darajadagi naqshlar lambda-atamalar bu erda erkin o'zgaruvchining argumentlari barchasi aniq bog'langan o'zgaruvchilar. Ular samarali hal etiladigan birlashtirish protsedurasiga ega va natijada, ayniqsa, mantiqiy dasturlash tilida keng tatbiq etilgan lambdaProlog.

Yaqinda o'tkazilgan bir ishda nominal atamalar va yuqori darajadagi naqshlar o'rtasidagi bog'liqlik, natijada nominal unifikatsiya va yuqori darajadagi naqshlarni birlashtirish o'rtasidagi aloqalar o'rganildi. Cheyni nominal naqshlar deb nomlangan atamalarni kengaytirishni taklif qildi. Keyin u saqlanib qolgan nominal naqshlar va yuqori darajadagi naqshlar o'rtasida tarjimani taqdim etdi birlashtiruvchilar. Keyinchalik Levi va Villaret nominal atamalar va birlashish tushunchasini saqlaydigan yuqori darajadagi naqshlar o'rtasida tarjimani namoyish etdilar. Ya'ni, agar ikkita nominal atama birlashtirilmasa, ularning tarjima qilingan naqshlari ham birlashtirilmaydi.

Keyinchalik Douek va Gabbay Levi va Villarening tarjimasini keskinlashtirdilar, qaysidir ma'noda ularning tarjimasi mavjud bo'lgan eng yaxshi ekanligini isbotladilar va takomillashtirilgan tarjimada unifikatorlar saqlanib qolganligini isbotladilar. Ya'ni, agar ikkita nominal atamani qandaydir almashtirish bilan birlashtirib bo'lmaydigan bo'lsa, unda tarjima ostidagi tegishli yuqori darajadagi naqshni birlashtirish muammosi tarjima qilingan almashtirish bilan hal qilinadi. Dowek va Gabbay o'zlarining isboti uchun nominal atamalarning ruxsat etilgan nominal atamalar deb nomlangan o'zgarishini qo'lladilar. Shu bilan birga, nominal atamalar va yuqori darajadagi naqshlar o'rtasidagi tarjimani to'ldirib, yana nomuvofiq terminlardan tarjima mavjud.

Adabiyotlar

  • Kristof Kofves va Maribel Fernandes (2008). "Polinom nominal birlashtirish algoritmi". Nazariy kompyuter fanlari. 403 (2–3): 285–306. doi:10.1016 / j.tcs.2008.05.012.
  • Jeyms Cheyni (2005). "Yuqori darajadagi naqshlarni birlashtirish va nominal birlashtirish bilan bog'liqlik". Birlashtirish bo'yicha 19-Xalqaro seminar (UNIF) materiallari. 104–119 betlar.
  • Gilles Dowek, Merdok J. Gabbay va Dominik P. Mulligan (2010). "Ruxsat etilgan nominal atamalar va ularni birlashtirish". IGPL jurnalining mantiqiy jurnali. 18 (6): 769–822. CiteSeerX  10.1.1.185.3105. doi:10.1093 / jigpal / jzq006.
  • Jorgi Levi va Mateu Villaret (2008). "Nominal unifikatsiya yuqori tartib nuqtai nazaridan". Qayta yozish texnikasi va qo'llanmalari bo'yicha 19-Xalqaro seminar (RTA) materiallari. 246–260 betlar.
  • Kristian Urban, Endryu M. Pits va Merdok J. Gabbay (2004). "Nominal birlashma". Nazariy kompyuter fanlari. 323 (1–3): 473–497. doi:10.1016 / j.tcs.2004.06.016.