Prolog va Lisp o'rtasidagi farq

Prolog va Lisp o'rtasidagi farq
Prolog va Lisp o'rtasidagi farq

Video: Prolog va Lisp o'rtasidagi farq

Video: Prolog va Lisp o'rtasidagi farq
Video: Pascal и Delphi живы? / История / Популярность / Мифы / Возможности / Преимущества и недостатки 2024, Iyul
Anonim

Prolog va Lisp

Prolog va Lisp bugungi kunda eng mashhur AI (sun'iy intellekt) kompyuter dasturlash tillaridan ikkitasidir. Ular ikki xil dasturlash paradigmasi bilan qurilgan. Prolog - deklarativ til, Lisp esa funksional til. Har ikkisi ham turli sunʼiy intellekt muammolari uchun ishlatiladi, lekin Prolog koʻproq mantiq va fikrlash muammolari uchun, Lisp esa tez prototiplash ehtiyojlari uchun ishlatiladi.

Prolog

Prolog - bu sun'iy intellekt dasturlash tili. U mantiqiy dasturlash tillari oilasiga kiradi. Prolog - bu deklarativ til bo'lib, unda hisoblashlar qoidalar va faktlar sifatida belgilangan munosabatlar (dastur mantig'ini ifodalovchi) bo'yicha so'rovlarni bajarish orqali amalga oshiriladi.1970 yilda ishlab chiqilgan prolog eng qadimgi mantiqiy dasturlash tillaridan biri va bugungi kunda eng mashhur sun'iy intellekt dasturlash tillaridan biri (Lisp bilan birga). Bu bepul til, ammo ko'plab tijorat variantlari mavjud. U dastlab tabiiy tilni qayta ishlash uchun ishlatilgan, ammo hozir u ekspert tizimlari, avtomatlashtirilgan javob tizimlari, o'yinlar va ilg'or boshqaruv tizimlari kabi turli vazifalar uchun ishlatiladi. Prolog atama deb ataladigan faqat bitta ma'lumot turiga ega. Terim atom, raqam, o'zgaruvchi yoki qo'shma atama bo'lishi mumkin. Raqamlar float yoki butun son bo'lishi mumkin. Prolog ro'yxatlar va qatorlarni elementlar to'plami sifatida qo'llab-quvvatlaydi. Prolog jumlalar yordamida munosabatlarni belgilaydi. Shartlar qoidalar yoki faktlar bo'lishi mumkin. Prolog oʻzining rekursiv predikatlari boʻyicha iteratsiyaga ruxsat beradi.

Lisp

Lisp - kompyuter dasturlash tillari oilasi. Va bugungi kunda umumiy maqsadli dasturlash uchun ishlatiladigan eng mashhur Lisp dialektlari bu Common Lisp va Scheme. LISP nomi "LISt Processing" dan kelib chiqqan va u ko'rsatganidek, Lispning asosiy ma'lumotlar tuzilmasi bog'langan ro'yxatdir. Aslida, butun manba ro'yxatlar (prefiks belgisi yordamida) yoki to'g'riroq qavslangan ro'yxatlar (s-ifodalar deb ataladi) yordamida yoziladi. Masalan, funktsiya chaqiruvi (f a1 a2 a3) sifatida yoziladi, ya'ni f funktsiyasi funktsiya uchun kirish argumentlari sifatida a1, a2 va a3 yordamida chaqiriladi. Shuning uchun u ifodaga yo'n altirilgan til deb ataladi, bu erda barcha ma'lumotlar va kodlar ifoda sifatida yoziladi (Lispda ifodalar va bayonotlar o'rtasida farq yo'q). Ushbu yoqimli xususiyat Lisp uchun juda o'ziga xosdir, u erda foydali makroslarni yozish orqali tilni muammoni hal qilish uchun foydalanish mumkin. Garchi tail-recursion dasturchilar tomonidan tsikllarni ifodalash uchun ishlatilsa-da, Lisp dialektlarida tez-tez uchraydigan barcha boshqaruv tuzilmalari mavjud. Bundan tashqari, Common Lisp va sxemada funksiyalarga misol boʻlgan mapcar va map mavjud boʻlib, ular funksiyani uning barcha elementlariga ketma-ket qoʻllash orqali aylanish funksiyasini taʼminlaydi va keyin natijalarni roʻyxatda toʻplaydi.

Prolog va Lisp o'rtasidagi farq nima?

Prolog va Lisp ikkita eng mashhur sun'iy intellekt dasturlash tillari bo'lsa-da, ular turli xil farqlarga ega. Lisp funksional til, Prolog esa mantiqiy dasturlash va deklarativ tildir. Lisp o'zining tezkor prototipi va makro xususiyatlari tufayli juda moslashuvchan, shuning uchun u tilni muammoga mos ravishda kengaytirish imkonini beradi. AI, grafika va foydalanuvchi interfeyslari sohalarida Lisp tez prototip yaratish qobiliyati tufayli keng qo'llanilgan. Biroq, o'rnatilgan mantiqiy dasturlash qobiliyatlari tufayli Prolog ramziy fikrlash, ma'lumotlar bazasi va tilni tahlil qilish ilovalari bilan AI muammolari uchun idealdir. Ulardan birini tanlash hal qilinishi kerak bo'lgan AI muammosi turiga bog'liq.

Tavsiya: