Prolog va Lisp

Prolog va Lisp bugungi kunda eng mashhur AI (Sun'iy intellekt) kompyuter dasturlash tillaridan biridir. Ular ikki xil dasturlash paradigmasi bilan qurilgan. Prolog - deklarativ til, Lisp esa funktsional til. Ikkalasi ham turli xil AI muammolari uchun ishlatiladi, ammo Prolog ko'pincha mantiq va fikrlash muammolari uchun ishlatiladi, Lisp esa prototiplarni tezkor talab qilish muammolari uchun ishlatiladi.

Prolog

Prolog - bu AI dasturlash tili. Bu mantiqiy dasturlash tillari oilasiga tegishli. Prolog - bu deklarativ til bo'lib, unda hisob-kitoblar qoidalar va haqiqat sifatida belgilangan munosabatlar (so'rovlar dastur mantig'ini anglatadi) orqali so'rovlar orqali amalga oshiriladi. 1970 yilda ishlab chiqilgan prolog eng mantiqiy dasturlash tillaridan biri va hozirgi kunda eng mashhur AI dasturlash tillaridan biri (Lisp bilan bir qatorda). Bu bepul til, ammo ko'plab tijorat variantlari mavjud. Avval u tabiiy tillarni qayta ishlash uchun ishlatilgan, ammo hozir u turli xil vazifalar uchun, masalan, ekspert tizimlari, avtomatlashtirilgan javob berish tizimlari, o'yinlar va ilg'or boshqarish tizimlari uchun foydalanilmoqda. Prologda atama deb ataladigan faqat bitta ma'lumotlar turi mavjud. Termin atom, son, o'zgaruvchi yoki aralash atama bo'lishi mumkin. Raqamlar suzuvchi yoki butun sonlardan iborat bo'lishi mumkin. Prolog ro'yxatlar va satrlarni to'plam sifatida qo'llab-quvvatlaydi. Prolog, munosabatlarni belgilaydi. Vazifalar yoki faktlar bo'lishi mumkin. Prolog, takroriy o'z rekursiv predikatlariga diqqat bilan qarashga imkon beradi.

Lisp

Lisp - bu kompyuter dasturlash tillari oilasi. Va bugungi kunda umumiy maqsadli dasturlashda ishlatiladigan eng mashhur Lisp dialektlari Common Lisp va Scheme. LISP nomi "LISt Processing" dan kelib chiqqan va Lispning asosiy ma'lumotlar tuzilishi bu bog'langan ro'yxat ekanligidan dalolat beradi. Aslida, barcha manbalar ro'yxatlar (prefiks belgisini ishlatgan holda) yoki undan to'g'ri qavslangan ro'yxatlar (s-iboralar deb ataladi) yordamida yozilgan. Masalan, funktsiya chaqirig'i (f a1 a2 a3) deb yoziladi, ya'ni f funktsiyasi a1, a2 va a3 funktsiyani kirish argumentlari sifatida ishlatilishini chaqiradi. Shuning uchun u ifoda yo'naltirilgan til deb ataladi, unda barcha ma'lumotlar va kodlar ifodalar shaklida yoziladi (Lispda iboralar va iboralar o'rtasida farq yo'q). Ushbu yoqimli xususiyat Lisp uchun juda o'ziga xos bo'lib, unda foydali makroslar yozish orqali muammoni hal qilish uchun tilni kengaytirish mumkin. Dasturchilar tomonidan ko'chirishni aks ettirish uchun quyruq rekursioni ishlatilgan bo'lsa ham, tez-tez uchraydigan barcha Lisp dialektlari pastadir kabi boshqaruv tuzilmalarini o'z ichiga oladi. Bundan tashqari, Common Lisp va sxemada funktsiyalarning namunalari bo'lgan mapcar va map mavjud, ular funktsiyani uning barcha elementlariga ketma-ket qo'llash orqali funktsiyani qaytarib beradi va natijada natijalarni ro'yxatga oladi.

Prolog va Lisp o'rtasidagi farq nima?

Prolog va Lisp eng mashhur AI dasturlash tillaridan biri bo'lishiga qaramay, ular har xil farqlarga ega. Lisp - bu funktsional til, Prolog esa mantiqiy dasturlash va deklarativ tillardir. Lisp tezkor prototiplash va makro xususiyatlar tufayli juda moslashuvchan, shuning uchun amalda muammoni hal qilish uchun tilni kengaytirishga imkon beradi. AI, grafika va foydalanuvchi interfeyslari sohalarida Lisp ushbu tezkor prototiplash qobiliyati tufayli keng qo'llanilgan. Biroq, o'rnatilgan mantiqiy dasturlash qobiliyatlari tufayli Prolog, AI muammolari uchun ramziy mulohaza, ma'lumotlar bazasi va tilni tahlil qilish uchun juda mos keladi. Birining ikkinchisini tanlash mutlaqo hal qilinishi kerak bo'lgan AI muammosi turiga bog'liq.