Prolog vs Lisp
Prolog болон Lisp нь өнөөдөр хамгийн алдартай AI (Хиймэл оюун ухаан) компьютерийн програмчлалын хоёр хэл юм. Тэдгээр нь хоёр өөр програмчлалын парадигмаар бүтээгдсэн. Prolog нь тунхаглах хэл бол Lisp нь функциональ хэл юм. Хоёуланг нь AI-ийн янз бүрийн асуудалд ашигладаг боловч Prolog нь логик болон үндэслэлтэй асуудлуудад ихэвчлэн ашиглагддаг бол Lisp нь хурдан прототип хийх шаардлагатай асуудлуудад ашиглагддаг.
Пролог
Prolog бол хиймэл оюун ухааны програмчлалын хэл юм. Энэ нь логик програмчлалын хэлний гэр бүлд багтдаг. Пролог нь дүрэм, баримтаар тодорхойлогдсон харилцаануудын (програмын логикийг илэрхийлдэг) асуулга явуулах замаар тооцооллыг гүйцэтгэдэг тунхаглалын хэл юм.1970 онд бүтээгдсэн prolog нь хамгийн эртний логик програмчлалын хэлнүүдийн нэг бөгөөд өнөөдөр хамгийн алдартай хиймэл оюун ухааны програмчлалын хэлүүдийн нэг юм (Lisp-ийн хамт). Энэ нь үнэгүй хэл боловч арилжааны олон хувилбарууд байдаг. Энэ нь анх байгалийн хэлний боловсруулалтад ашиглагдаж байсан бол одоо шинжээчийн систем, автомат хариултын систем, тоглоом, дэвшилтэт хяналтын систем гэх мэт янз бүрийн ажлуудад ашиглагдаж байна. Prolog нь нэр томъёо гэж нэрлэгддэг зөвхөн нэг төрлийн өгөгдлийн төрөлтэй. Нэр томьёо нь атом, тоо, хувьсагч эсвэл нийлмэл нэр томъёо байж болно. Тоонууд нь хөвөгч эсвэл бүхэл тоо байж болно. Пролог нь жагсаалт болон мөрийг зүйлийн цуглуулга болгон дэмждэг. Пролог нь өгүүлбэрүүдийг ашиглан харилцааг тодорхойлдог. Зүйл нь дүрэм эсвэл баримт байж болно. Пролог нь рекурсив предикатуудыг бүрэн давталт хийхийг зөвшөөрдөг.
Lisp
Lisp бол компьютерийн програмчлалын хэлний гэр бүл юм. Өнөөдөр ерөнхий хэрэглээний програмчлалд хэрэглэгддэг хамгийн алдартай Lisp аялгуу бол Common Lisp болон Scheme юм. LISP нэр нь "LISt Processing" -ээс гаралтай бөгөөд Lisp-ийн гол өгөгдлийн бүтэц нь холбогдсон жагсаалт юм. Үнэн хэрэгтээ эх сурвалжийг бүхэлд нь жагсаалт (утгалт тэмдэглэгээ ашиглан) эсвэл илүү зөв хаалтанд оруулсан жагсаалт (s-илэрхийлэл гэж нэрлэдэг) ашиглан бичдэг. Жишээлбэл, функцийн дуудлагыг (f a1 a2 a3) гэж бичдэг бөгөөд энэ нь f функцийг функцийн оролтын аргумент болгон a1, a2, a3 ашиглан дууддаг гэсэн үг юм. Тиймээс үүнийг илэрхийлэлд чиглэсэн хэл гэж нэрлэдэг бөгөөд бүх өгөгдөл, кодыг илэрхийлэл хэлбэрээр бичдэг (Lisp хэл дээрх илэрхийлэл ба мэдэгдлийн хооронд ямар ч ялгаа байхгүй). Энэхүү сайхан функц нь Lisp-ийн хувьд маш онцгой бөгөөд үүнийг тустай макро бичих замаар асуудлыг шийдвэрлэхэд ашиглаж болно. Хэдийгээр tail-recursion-ийг програмистууд гогцоог илэрхийлэхэд ашигладаг ч байнга харагддаг бүх Lisp аялгууд нь гогцоо гэх мэт хяналтын бүтцийг агуулдаг. Цаашилбал, Common Lisp болон scheme нь функцын жишээ болох mapcar болон map-тай бөгөөд энэ нь функцийг бүх элементүүдэд нь дараалан ашиглах замаар давталтын функцийг хангадаг бөгөөд дараа нь үр дүнг жагсаалтад цуглуулдаг.
Пролог болон Лисп хоёрын ялгаа нь юу вэ?
Хэдийгээр Prolog болон Lisp нь хиймэл оюун ухааны програмчлалын хамгийн алдартай хоёр хэл боловч тэдгээр нь өөр өөр байдаг. Lisp нь функциональ хэл бол Prolog нь логик програмчлалын болон тунхаглалын хэл юм. Lisp нь хурдан загварчлал, макро шинж чанаруудын ачаар маш уян хатан байдаг тул тухайн асуудалд тохирсон хэлийг өргөжүүлэх боломжийг олгодог. AI, график, хэрэглэгчийн интерфэйс зэрэгт Lisp-ийг маш хурдан загварчлах чадварын улмаас өргөнөөр ашигласан. Гэсэн хэдий ч, Пролог нь логик програмчлалын чадвартай тул бэлгэдлийн үндэслэл, мэдээллийн сан, хэл задлах програмуудтай хиймэл оюун ухааны асуудлуудыг шийдвэрлэхэд тохиромжтой. Аль нэгийг нь нөгөөгөөсөө сонгох нь шийдэх ёстой хиймэл оюун ухааны асуудлын төрлөөс бүрэн хамаарна.