Пролог тілі сұхбаттық, жоғары деңгейлі тіл. Пролог тіліндегі программа сөйлемдерден(пікірлер) тұрады, әрбір сөйлем нүкте арқылы аяқталады. Сөйлем екі түрлі болуы мүмкін: факт және ереже. Яғни қарапайым программа бірнеше фактілер мен ережелерден тұрады. Факт - обьектілер жөніндегі мәліметтер. Әрбір факт ақиқат ұйғарым ретінде қабылданады. Сақталған фактілер мен ережелер білім қоры деп, ал олар тек фактілерден ғана тұрса, берілгендер қоры деп аталады. Пролог жүйесінің негізгі ұғымдары: қатыс, факт, сұрақ, ереже, тізім және т.б. Прологта берілгендер негізінен символдық типте қабылданады. Дегенмен басқа типтерді де пайдалануға болады. Мысалы, ТубоПрологта Integer, Real, Char, Symbol, String типтерді қолданады. Жай Прологта типтер сипатталмайды. Программалау Пролог тілінде мынадай кезеңдерден тұрады:
обьектілерде олардың арасындағы қатыстар жөніндегі фактілерді жариялау;
обьектілерде олардың арасындағы қатыстар жөніндегі ережелерді сұрыптау;
обьектілерде олардың арасындағы қатыстар жөніндегі сұрақтарды дайындау.
Көп жағдайда пайдаланылатын пікірлер түрлі құрылымды болады. Мұнда логикалық байланыстарды қолданып, берілген пікілерден келесі күрделі пікілерді алуға болады.. Мысалы,
Сұлтан–студент.
Айша, Айгүл – оқушы.
Ержан Маржанға кітап берді.
Фактілер предикаттық түрде сипатталады.
Array (аргумент1, аргумент2, .....)
Student (Sultan)
Okushi (Aisha, Aigul)
Beru (Erjan, Marjan, kitap)
Мама(Наташа, Даша).
Математикалық логикада қатынасты предикат деп атайды. Предикат дегеніміз – бірнеше айнымалылар немесе нақты обьектілер мен олардың қасиеттері, қатынас жөніндегі пікірлер. Предикат «жариялау» мағынасын білдіреді. Предикат одан кейін аргумент атаулары жай жақша ішінде үтір арқылы жазылады. Предикат аргументі не параметрі тұрақты, айнымалы немесе құрамдас объект болуы мүмкін. Аргументтер саны предикаттың «-арлығы» немесе «жергіліктілігі» деп аталады. Пролог тілінде предикаттар мен аргументтер латын не орыс алфавитінің кіші әріптерімен бастап жазылады. Турбо Пролог тілінде предикат атауы латын әріптері, цифрлар, астын сызу белгісі тізбектерінен тұрады және әріптен не астын сызу белгісінен басталады. Мысалы Турбо Пролог тілінде факт мына түрде жазылады:
Mother(“Наташа”, “Даша”).
Кейбір предикаттар Пролог жүйесіне белгілі, олар стандарт предикаттар немесе кірісітірлген предикаттар деп аталады. Турбо Прологта аттас предикаттар бірінен кейін бірі жазылуы тиіс, мұндай сөйлемдер жиынтығы процедура деп аталады. Наташа Дашаның анасы болып табылатындығы жайлы мама предикаты екі аргументтен тұрады, «Наташа» аргументі қатар типті тұрақты, ол алғашқы аргумент, ал екінші аргумент– «Даша», ол да қатар типті тұрақты.
Ереже – егер программада табылған бір немесе бірнеше тұжырымдар ақиқат болса, онда олар ақиқат болатындығы белгілі тұжырым. Ереженің фактіден айырмашылығы бар. Факт әрқашан ақиқат, ал ереже қандай да бір шарттың орындалуына қарай ақиқат болатын ұйғарым. Әдетте ереже бірнеше мақсаттардан тұрады, олардың ақиқат болуы ереженің де ақиқаттығын көрсетеді.
Мысал, адамның әжесі–оның анасының не әкесінің анасы екендігі белгілі. Осы пікірді ереже түрінде жазсақ:
бабушка(Х,У):-
мама(Х,А), мама(А,У).
бабушка(Х,У):-
мама(Х,А), папа(А,У).
:- белгісі «егер» мағынасын береді, оның орнына if сөзін жазуға болады. «,» белгісі логикалық «және» немесе конъюнкция, оның орнына and сөзін жазуға болады. Бірінші ереже мынадай сөйлемді баяндайды: Х У-тің әжесі болады, егер Х А-ның мамасы болса және А У-тің мамасы болса. Екінші ережеде Х У-тің әжесі болады, егер Х А-ның мамасы болса және А У-тің папасы болса делінген. Яғни, Мәрия әжей Арманның әжесі болады , егер Мәрияның баласы Бейбіт болса, ал Бейбіт Арманның папасы болса. Бұл мысалдағы Х,У,А айнымалылар болады. Айнымалы аты Турбо Прологта латын әріптері, цифрлар, астын сызу белгісі символдарынан тұруы мүмкін, бас әріптен не астын сызу белгісінен басталады. Пролог тіліндегі айнымалылар компьютер жадындағы облысты емес, қандай да бір объект болып саналады. Прологта императивті тілдердегідей айнымалы мәнін өзгертіп, деструктивті меншіктеуді қолданбайды. Айнымалылар бос және байлынасқан болуы мүмкін. Бос айнымалы әлі мәнге ие болмаған айнымалы, ол нөлге де пробелге де тең емес, оның ешқандай мәні жоқ. Мұндай айнымалыны нақтыланбаған деп те атайды.
Қандай да бір мәнге ие болып, қайсыбір белгілі объектпен байланысқан айнымалыны байланысқан айнымалы деп атайды. Егер айнымалы қандай да бір мәнге ие болып, объектімен байланыста болса, оның мәні өзгертілмейді. Айнымалының қолданылу аймағы бір сөйлем болып табылады. Әртүрлі сөйлемдерде бір айнымалы аты қолданыла беруі мүмкін, олар әртүрлі объекттерді сипаттайды. Анонимді айнымалы астын сызу «_» белгісінен басталады. Оның айнымалылардың қолданылу аймағы бір сөйлем ережесіне қатысы жоқ. Анонимді айнымалы айнымалы мәні маңызды болмаған жағдайда қолданылады. Әрбір анонимді айнымалы –бұл бір объект.
Пролог тіліндегі сөйлемдердің үшінші түрі–сұрақ. Сұрақ тек денеден тұрады. Сұраққа жауап ақиқат не жалған болуы мүмкін. Сұрақ Пролог программасының денесіне кірісітірлуі мүмкін, бұл жағдайда сұрақ ішкі мақсат деп аталады, программа орындалу барысында мақсатқа қол жеткізгендігін тексереді. Егер ішкі мақсат берілмесе жүйе программаны тексергеннен кейін сұхбаттық режимде сұрақ енгізуін сұрайтын шақыру шығарады. Бұл сыртқы мақсат деп аталады.
Пролог тілінде сұрақ қою мысалдары:
? мама(Наташа, Х)
?оқушы(Х, У)
?мама(Наташа, Маша)
Турбо Пролог тілінде сұрақ төмендегіше қойылады:
мама(Х, «Даша»).
мама(«Наташа», «Даша»).
мама(«Наташа», «Маша»).
Пролог тілінде екі семантикалық модель қолданылады: декларативті және процедуралық. Семантикалық модельдер программаның мағынасын түсіндіру мақсатында қолданылады. Декларативтік модельде программада қарастырылған қатынастар қарастырылады. Бұл модель үшін программадағы сөйлемдер мен пікірлердің, ережелердегі шарттардың орындалу реті маңызды емес. Процедуралық модель ережелерді ереже тақырыбында(басында) келтірілген қатынас дұрыс орындалып, сақталуы үшін міндетті түрде реті сақталып, орындалуы тиіс қадамдар тізбегі деп қарастырады. Предикат аты аттас және аргументтер саны бірдей болатын сөйлемдер жиыны процедура деп саналады. Процедуралық модель үшін сөйлемдер мен олардағы шарттардың орналасу реті маңызды орын алады. Пролог тілінде программа жазуда алдымен декларативті , содан соң процедуралық семантиканы қарастырған дұрыс.
Бақылау сұрақтары Предикат деген не?
Факт деген не?
Ереже деген не?
Предикаттар мен аргументтердің жазылу ережесі қандай?