Главная страница
Контакты

    Басты бет


«Пролог логикалық программалау тілі»

жүктеу 0.94 Mb.



жүктеу 0.94 Mb.
бет1/6
Дата22.04.2017
өлшемі0.94 Mb.

«Пролог логикалық программалау тілі»


  1   2   3   4   5   6


ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

шәкәрім атындағы семей мемлекеттік университеті




3 деңгейлі СМЖ құжаты


ПОӘК

ПОӘК 042-39.1.54/03-2015

    «Пролог логикалық программалау тілі»

пәнінің оқу- әдістемелік кешені

№1 басылым 03.09.2015 ж.


«Пролог логикалық программалау тілі»

пәнінің оқыту-әдістемелік кешені
5В011100 - «Информатика» мамандығына арналған
Оқу-әдістемелік материалдар

Семей

2015

МАЗМҰНЫ





Глоссарий






Дәрістер






Зертханалық сабақтар






Студенттердің өздік жұмыстар жоспары





1.
Маман - ұйымның инженерлік-техникалық, экономикалық және басқа да жұмыстарымен айналысатын қызметкері. Маман, әдетте, жоғары немесе арнаулы орта білімді болады. Атап айтқанда, агроном, бухгалтер, геолог, инженер, математик, механик, техник, физиолог, суретші, экономист, энергетик, мұғалім, дәрігер, т.б.
Логика (гр. λογική - «талдауға құрылған», λόγος - «сөз», «сөйлем», «ойлау», «ақыл») - ойлау, оның формалары мен заңдылықтары туралы ғылым. Логика дәлелдеу мен теріске шығарудың белгілі бір әдіс-тәсілдері қаралатын ғылым теориялар жиынтығын құрайды.
Глоссарий

Осы ОӘМ келесі терминдер қолданылған:



Жылдам сұрыптау

Белгілі бір салыстырмалы элемент таңдалады, оған қатысты бастапқы тізім екіге бөлінеді. Біреусіне салыстырмалы элементтен кіші тізім мүшелерін орналастырамыз, екіншісіне салыстырмалыдан үлкен немесе оған тең тіізм мүшелерін орналастырамыз. Əр тізімді дəл сондай əдіспен сұрыптаймыз. Нəтижесінде реттелген тізім келіп шығады.



Бэктрекинг

Бұл механизмнің мағынасы төмендегідей: программаның бірнеше вариантты таңдайтын мүмкіндігі бар жеріне пролог арнайы стек орналастырады да, қажет кезінде сол нүктеге программаны қайтарады. Қайтару нүктесі откат кезінде қажетті мағлұматты сақтайды. Мүмкін варианттардың біір таңдалады да программа əрі қаарй жалғасады.



Файлдың ішкі аты

Бұл файлдың программа ішіндегі символдық атауы.

Файл (ағылш. File) - дерек сақтаудың негізгі бірлігі болып табылады.
Мағына - сөздердің ұғыммен байланысты мәні, мазмұны. Сөз мағынасының қалыптасуына ұғымнан басқа да жәйттер себеп болады, ол адамның дүниеге көзқарасын, көңіл-күйін білдіреді. Сөз ұғымы тұтас, дербес болғанымен, мағынасы әлдеқайда кең әрі бірнешеу болуы мүмкін.
Механизм (гр. mehane - құрал, мәшине) - бір немесе бірнеше қатты денелерді басқа қатты денелер арқылы қажетті қозғалысқа келтіретін денелер жүйесі. Механизм құрылымдық белгілері бойынша топсалы (иінтіректі), бағдартқышты, тісті, сыналы, бұрамалы, ыңғайландырғыш, арнайы, шыбық қысқыш, иілгіш буынды, гидравликалық, пневматикалық және электрлі құрылғылары бар және т.б.
Символ (грекше symbolon - танымдық белгі, таңба, рәміз, пернелеу) лингвистика, логика, математика ғылымдарында таңба ұғымын береді; өнерде, философияда нәрсенің, құбылыстың қасиетін, сыр-сипатын бейнелеп, астарлап білдіретін әмбебап эстетикалық категория.
Бұны тағы файлдың логикалық аты деп те атайды. Бұл атау кіші əріптен басталуы қажет.



Ішкі деректер қоры

Бұл тек қана машинаның лездік жадында өңделетін деректер қоры.



Тармақ биіктігі

Тармақ негізінен жапыраққа дейінгі ең үзын жол.

Жапырақ (лат. folіum, гр. phyllon) - жоғары сатыдағы өсімдіктердің фотосинтез, газ алмасу, буландыру, қор жинау, көбею қызметтерін атқаратын өсу мүшесі. Ол негізгі өркеннің жанама бұтақтарының қысқаруынан пайда болады.



Граф

Бұл жиынтықтың жұбы: түтүйндер жиынтығы мен доғалар жиынтығы.



Декларативті модель

Программада анықталған қатнасатарды қаарстыратын моделдер.



Декларативті тіл

Формалданған адамның ойлау жүйесінің логикасына негізделген тіл. Адам тек есептің сипаттамасын береді, ал жүйе есептің шешуін іздейді.



Тармақ деп графты атайды. Оның бір ғана негізі бар, қалған тармақтар бір ғана түбірден тармақталады. Қалған тармақтар нгізгі тармақтың ұрпақтары болып саналады.

Императивтің тілдер

Императивтің тілдер есептегіш машинаның фон неймандық қағидасына негізделген.

Есептегіш, электр есептегіш - тұтынылған электр энергиясын есептеуге арналған өлшеуіш құрал. Тұрмыста жиілігі I 50 Гц, бір фазалы 220 В немесе 127 В айнымалы кернеуге арналған есептегіш пайдаланылады. Электр энергиясы киловатт-сағатпен өлшенеді.

Программист алдымен есептің моделін формалды түрде шығарып алып, соңынан сол есебінің моделін машина тіліне яғни компьтер терминіне түсіреді.

Форма (Қалып; form) - 1) мәліметтерді ұсыну тәсілі; 2) мәліметтер базасын басқару жүйелеріңде (мысалы, Access-Te) - мәліметтер базасындағы ақпаратты (мәліметтерді) енгізу мен редакциялауға пайдаланылатын дисплей экранына көрнекі түрде ұсыну тәсілі.


Тармақ негізі

Тармақ негізі деп барлық жапырақатар жиынтығын атайды.



Тармақ жапырағы

Тармақ жапырағы ұрпағы жоқ түйін аталады.



Жиынтықтың қуаты

Шекті жиынтық үшін бұл жиынтықтағы элементтер саны.



Біріктіру операциясы

Екі жиынтықты біріктіру нəтижесінде екі жиынтықта да бар элементерден тұратын жаңа жиынтықты айтады. Жиынтықтарды біріктіруді математикалық жолмен төмендегідей белгіліейді : AB={x | xA или xB}.



Қиып өту операциясы

Екі жиынтытықтың қиып өтуі нəтижеінде екі жиынтықтада бар элементтерден құралған жаңа жиынтықты айтады.

Құрал (Инструмент; лат. instrumentum - құрал, қару) - 1)адам еңбегінің құралы немесе өнеркөсіптік кәсіпорын жағдайындағы жұмысқа арналған машинаның атқарушы механизмі.
Жиынтықтарды қиып өтуі математикалық жолмен төмендегідей белгіліейді: AB={x|xA и xB}.



Айырма операциясы

Екі жиынтытың айырмасы деп екінші жиынтықта жоқ бірінші жинытықтың элементтерінен тұратын жаңа жиынтықты айтады. Жиынтықтарды айырмасы математикалық жолмен төмендегідей белгіліейді :

A\B={x|xA и хB}

Процедурлық Модель

Ережелер тақырыбында берілген қатнасты сəтті орындау үшін қолданылатын ережелер қадамының тізбегі

Көпіршіктік сұрыптау

Қатар орналасқан көрші элементтерді бірімен бірін салыстырып дұрыс тəртіпке келтіру əдісі.



Жол

Доғалар арқылы қосылған түйіндер тізбегі. Бағытталған граф үшін жол бағыты доға

бағытына сəйкес келуі керек.

Ереже - дәстүрлі халық құқығының қайнар көзі, нормативтік-құқықтық қағидалар. Ежелгі дәуірде және орта ғасырларда жөн-жосық, ата-баба жолы деп аталған. Ережелер сырт пішімі жағынан мақал-мәтелге, қанатты сөзге ұқсас болғанымен, нақтылығымен, дәйектілігімен ерекшеленеді.
Бағыттау (орыс. наведение) - күштерге (сүңгуір қайықтарға, авиациялык ұшу аппараттарына) немесе қаруға (ракеталарға) козғалыс параметрлері (бағыт, жылдамдық, биіктік жөне т.б.) арқылы берілетін басқару тәсілі.



Қыстыру арқылы сұрыптау

Егер тізімнің аяғы сұрыпталған болса, онда тізімнің бірінші элементін аяқ жақтағы орнына қойса тізім сұрыпталады.



Іріктеу арқылы сұрыптау

Тізімдегі минимальды элементті тауып, тізімнен алып тастап қалған тізімді сұрыптап? Ал минимальді элементті тізімнің басына əкеліп қою арқылы тізімді реттеу əдісі.



Тізім.

Бұл үтір ақылы ажыратылған элементтер жиынтығы [H|T] түрдегі құрылым.

Құрылым (лат. structura - түзіліс, орналасу, тәртіп) - объектінің тұтастығын, тепе-теңдігі мен негізгі қасиеттерінің сақталуын қамтамасыз ететін байланыстар мен қатынастар жиынтығы. Құрылым жүйе және элемент ұғымдарымен тығыз байланысты.
([ ]) – бос тізім, H тіізмнің басы, T- тізім аяғы деп белгіленеді.



Жол

Пролог жүйесінде жол деп тырнақшаға алынған таңбалар тізбегі айтылады.



Айғақ

Айғақ - Объектілер арасында белгілі бір қатнастың орындалғанын тұжырымдайды. Ол тек тақырыптан ғана тұрады. Яғни айғақ деп бос сөйлемді атауға болады.



Цикл

Цикл деп басы мен аяғы сəйкес келетін жолды атайды.

2. Дәрістер
2.2 Дəріс сабақтарының конспектілері

Дәріс 1. Пролог логикалық программалау тіліне кіріспе

Пролог пайда болуы жəне дамуының тарихы.

Тарих (көне грек. ἱστορία -сұрастыру, зерттеу) - адамзат баласының өткенін зерттейтін қоғамдық ғылым.
Бесінші ұрпақты ЭЕМ-ң жапондық жобасы.
Жоба - жасалуға, қайта құрылуға, қалпына келтірілуге, салынуға тиісті кәсіпорындар мен ғимараттардың, қондырғылар мен жабдықтардың, аппараттардың, т.б. макеттері, есептеулері және принципті дәлелдері көрсетілген техникалық құжаттар жиынтығы.
Жапондар (жапон. 日本人 Nihonjin/Nipponjin, 日本民族 nihon-minzoku, яғни күншығыс елінің адамдары) - ұлт, Жапонияның байырғы халқы. Жалпы саны 125 млн. адам (1995). Оның 123 млн-ы Жапонияда тұрады. Сондай-ақ, АҚШ-та (1,2 млн), Бразилияда (1,5 млн), Перуде, Канадада (99 мың), Аргентинада да бар.
Императивті жəне декларативті программалу тілдері. Прологты қолдану аймақтары. Пролог – программалауды бастапқы үйренудің тілі. Пролог тілінің пайдалану аймақтары.



Дəріс конспектісі: Көптеген мыңжылдықтар бойы адамзат білімді жинау, өңдеу жəне таратумен айналысады. Осы мақсатпен үзілмей жаңа құралдар шығарылған жəне ескілер жақсартылған: сөйлеу, жазба, пошта, телеграф, телефон жəне т.б. Білімді өңдеу технологиясында үлкен рөлді ойнаған - компьютерлердің пайда болуы.

1981 ж. қазанда Жапондық халықаралық сауда жəне өндіріс министрлігі зерттеулік ұйым - Жаңа Ұрпақтық Компьютерлердің Құрылу Əдістерін Зерттеу Институтының (Institute for New Generation Computer Technology Research Center) құрылғанын хабарлады. Осы жобаның мақсаты білімге негізделген ақпаратты өңдеу жүйесін құру болып табылған.

Жазба, математикада - қисық сызықтың жазбасы - ұзындығы берілген қисық сызықтың ұзындығына тең болатын түзу кесіндісі. Мұндай кесіндіні іздеу қисық сызықты түзулеу деп аталады. Қисық сызықтың жазбасы деп кейде оның эвольвентасы түсініледі.
Компьютер (ағылш. computer - «есептегіш»), ЭЕМ (электрондық есептеуіш машина) - есептеулерді жүргізуге, және ақпаратты алдын ала белгіленген алгоритм бойынша қабылдау, қайта өңдеу, сақтау және нәтиже шығару үшін арналған машина.
Мақсат - белгілі бір межеге қол жеткізуге бағытталған әрекеттің ой-санадағы көрінісі. Мақсат ойлау нәтижесінде болашақты алдын ала болжау арқылы туатын мұрат, ішкі қозғаушы күшті білдіреді. Мақсатқа жету үшін әр түрлі іс-әрекеттер мен қимылдар жасалады.
Ақпарат (лат. informatio - түсіндіру, мазмұндау) ұғымы күнделікті өмірден бастап техникалық салада пайдаланылатын көп мағыналы ұғым. Жалпы алғанда бұл ұғым шектеу, байланыс, бақылау, форма, инструкция, білiм, мағына, құрылым, бейнелеу, сезіну тағы басқа ұғымдармен тығыз байланысты.
Бұл жүйелер қолданушыға жалпы тіл көмегімен жұмыс істеуге мүмкіндік беру арқылы басқаруды жеңілдетуді қамтамасыз етеді деп болжамдалған. Осы жүйелер өзін-өзі үйретуі, əртүрлі есептерді шығару үшін жадыдағы жиналып жатқан білімдерді қолдануы, қолданушыларға сарапшы консультацияларды беруі керек болған, дегенмен, қолданушыдан информатика маманы болуы талап етілмеген. Адамзат кез-келген теледидар, магнитофон жəне пылесос электроқұралдары сияқты беснші ұрпақты ЭЕМ-ді өте оңай қодана алады деп болжамдалған. Содан соң жапондық жобадан кейін американдық жəне еуропалық жобалар басталды.
Магнитофондар мен (магнит және көне грекше: φωνή - дыбыс сөздерінен) қабылданған дыбыс әлсіз ауыспалы электр тогына айналады да, магнитофон құралында бірнеше рет өңдеуден, коррекциядан өтеді. Алдымен микросхемадағы немесе транзистордағы күшейткішке түседі.
Теледидар - телехабар бағдарламаларындағы бейне мен дыбыстық сүйемелдеудің радио сигналдарын күшейту мен түрлендіруге арналған теле, радиоқабылдағыш теледидар түрлі түсті, ақаласықара кескінді, стационарлы және тасымалды болып ажыратылады.
Еуропа (гр. Ευρώπη, семит тілінің “эреб” - “батыс” сөзінен шыққан, Ежелгі Грекияда Эгей теңізінің батысындағы жерлер осылай аталған) - Еуразия құрлығының батысын алып жатқан дүние бөлігі. Азиямен бірге Еуразия құрылығын құрайтын әлем бөлшегі.
Осындай жүйелердің пайда болуы білімдер базаларының жəне сарапшы жүйелердің негізінде технологияларды өзгерте алуы мүмкін болды. Беснші ұрпақты ЭЕМ-ге сапалы өтудің негізгі бағдары – деректерді өңдеуден білімдерді өңдеуге өту болып табылған. Адам ойлау қабілетін компьтерлердің функциялау принциптеріне негіздемей, компьютер жұмысын адам ойлауна жақындатуы қолдан келеді деп Жапондықтар үміттенген, осы орайда фон нейман компьютерлік архитектурадан бас тартты. 1991 ж. Бесінші ұрпақты ЭЕМ-ң алғашқы прототипін құрастыру болжамдалған. Енді белгілі, алға қойылған мақсаттар толық орындалған жоқ, дегенмен осы жоба жасанды интеллект өрісінде жаңа зерттеулер өндірісіне импульс болып табылған жəне логикалық программалауға өте үлкен мүдде туғызған.
Қағида немесе принцип (лат. principim – принцип; негіз, алғы бастама) - белгілі білім жүйесінің түп-негізі, алғы бастамасы, абстрактылы түрдегі ең қысқа жалпылама мазмұны. Ғылыми танымда идея, теория, әдіс сияқты таным түрлерімен өзара байланыста тұжырымдалады.
Жасанды интеллект (ЖИ, ағылш. Artificial intelligence, AI) - интеллектуалды компьютерлік бағдарламалар мен машиналар жасау технологиясы әрі ғылым.
Тиімді сату үшін дəстүрлі фон нейман арихитектурасы жараған жоқ, сондықтан PSI жəне PIM логикалық программалау компьютерлер құралған.

Бесінші ұрпақты ЭЕМ жобасының өңдеу программалық құралдарының негізгі методологиясы ретінде логикалық программа таңдалып алынған, Пролог соның жарқын мысалы болып табылады. Қазір де Пролог тілі Жапония жəне Еуропада ең əйгілі жасанды интеллект тілі болып қалады (АҚШ-та, дəстүрлі түрде, жасанды интеллект тілінің əйгілі түрі – Лисп функционалды программалау тілі ).

“Пролог” тілінің атауы ЛОГикалық ПРОграммалау сөздерінен шыққан (PROgrammation en LOGique - француз нұсқауында жəне и PROgramming in LOGic – ағылшын тілінде).

Функционал - бір не бірнеше функцияға тәуелді болатын айнымалы шаманы білдіретін математикалық ұғым. Ол алғаш рет вариациялық есептеуде пайда болған. Берілген тұйық қисық сызықпен шектелген аудан, белгілі бір жол бойындағы күш өрісінің жұмысы, т.б.
Ағылшын тілі (ағылш. English, English language) - Үндіеуропа тілдері жанұясының батыс герман тобына жататын тіл. Ағылшын тілі ежелгі тіл болып есептеледі, ол қазіргі Ұлыбритания аумағын ежелде басып алған Англосаксондардың тілі, бірақ жауланған кельттердің тілдері де әсерін тигізген.

Пролог предикаттарды есептеу сияқты математикалық логика бөлімінде негізделген.

Дəлірек айтқанда, хронолық дизъюнкт революциялық əдіс теоремасының дəлелдеу процедурасы оның базисін құрайды.

Революция (лат. revolutіc - бетбұрыс, төңкеріс) - табиғат, қоғам өміріндегі, білім мен танымдағы сапалы өзгерістер. Білім мен танымдағы өзгерістер қатарына ғылыми - техникалық , мәдени, т.б. Революцияларды немесе бетбұрыстық мәні бар адамзат қол жеткізген табыстарды жатқызуға болады.

Пролог тілінің пайда болуы мен дамуы тарихында келесі этаптарды айтып кетуге болады.

1986 жылы "A machine oriented logic based on the resolution principle" жұмысында, "Journal of the ACM" журналының 12 номерінде, Дж Робинсон “резолюция принципі” атты бірінші қатардағы предикаттарды есептеудегі теоремалар дəлелдеуінің автоматты іздеу əдісін көрсетті. Бұл жұмысты аударылған түрде оқуға болады: Робинсон Дж. Машинно- ориентированная __________логика, основанная на принципе резолюции // Кибернетический сборник.

— Вып. 7 (1970). Шынында, осы əдістің идеясы, компьютерлер жоқ кезде, 1931 ж. Эмбранмен ұсынылған, (Herbrand, "Une methode de demonstration", These, Paris, 1931).

Робинсон осы əдісті автоматикалық компьютерлік қолдануға лайықты етіп модификацияланған, жəне, сонымен қатар, оның əдісінің базисін құрайтын унификацияның тиімді алгоритмін өндіріп шығарған.

Алгоритм, алгорифм (ағылшынша: algorіthm, algorіsmus - Әл-Хорезмидің атынан шыққан) - бастапқы берілген мәліметтермен бір мәнде анықталатын нәтиже алу үшін қай амалды (жұмысты) қандай ретпен орындау қажеттігін белгілейтін есептерді (мәселелерді) шешу (математикалық есеп-қисаптар орындау, техникалық объектілерді жобалау, ғылыми-зерттеу жұмысын жүргізу т.б.)

1973 жылы Алан Колмероэның басшылығымен “жасанды интеллект тобы” Марсель университетінде теоремаларды дəлелдеуге арналған программаны құрастырды.

Теоре́ма (гр. θεώρημα - «түр, сипат, тұжырым») - ақиқаттығы дәлелдеудің нәтижесінде анықталатын математикалық тұжырым. Математиканың кез келген саласы ақиқаттығы бұрынырақ дәлелденген Теоремаларға сүйене отырып, бірінен соң бірі дәлелденетін Теоремалардан тұрады.
Осы программа табиғи тілдегі тексттерді өңдеу жүйелерін құрастыру барысында қолданылған.

Теоремаларды дəлелдеу программасы Prolog (Programmation en Logique) атауын алған. Ол Прологтың алдыңғы бейнесі болып табылды. Бұл атаудың авторы Алан Колмероэның əйелі болғаны туралы əңгімелер айтылып жатыр. Программа Фортранда жазылған болатын жəне жылдам жұмыс істеген жоқ.

Логикалық программалаудың дамуында Роберта Ковальскийдің "Логика предикатов как язык программирования" (Kowalski R. Predicate Logic as Programming Language. IFIP Congress, 1974) жұмысы маңызды болды, мұнда ол тиімділікке қол жеткізу үшін, көптеген хронолық дизьюнктермен шектелу керек екендігін көрсетті. Айталық, Ковальский мен Колмероэ бір жаз бойы бірге жұмыс істегендері белгілі.

1976 жылы Ковальский өзінің əріптесі Маартен ван Эмденмен бірге логикалық программаларда тексттерді оқудың екі əдісін көрсетті: процедуралы жəне декларативті. Осы əдістер туралы əңгіме үшінші дəрісте баяндалады.

1977 жылы Эдинбургте Уоррен мен Перейра Прологтың көптеген өндірулеріне прототип болған, ЭВМ DEC–10 үшін Пролог тілінің өте тиімді компиляторын құрды.

Эдинбург (ағылш. Edinburgh [ˈɛdɪnb(ʌ)rə]) - Шотландияның астанасы және Шотландия парламенті орналасқан қала. Бұл қала көлемі жөнінен Шотландиядағы екінші қала және халқының саны бойынша Ұлыбританияда жетінші орында.

Қызығы, компилятордың өзі Прологта жазылған. Осы Прологтың өндірісі “эдинбургтік версия ” ретінде танылған, тілдің бірінші жəне жалғыз стандарты болды. Өндірген кездегі қолданған алгоритм, тілдің көптеген келесі өндірулеріне прототип болды. Əдетте, егер қазіргі-заманғы Пролог жүйесі эдинбургті прологты қолдамаса да, Прологты программаны “эдинбургті” жүйеге келтіретін оның астыжүйесі бар. Əрине, ISO/IEC 13211– 1:1995 стандарты бар, бірақ оны барлық Прологжүйелер қолдай алмайды.

1980 жылы Ұлыбританияда Кларк жəне Маккейб персоналды ЭЕМ үшін Пролог нұсқауын өндіріп шығарған.

1981 жылы жоғарыда айтылғандай Институттың жаңа ұрпақты компьтерлерді құрудың əдістерін өндіру жобасы басталды.

Бүгінгі күні Прологтың көп өндірулері бар. Ең белгілі болғандары келесілер:

BinProlog, AMZI-Prolog, Arity Prolog, CProlog, Micro Prolog, МПролог, Prolog-2, Quintus Prolog, SICTUS Prolog, Silogic Knowledge Workbench, Strawberry Prolog, SWI Prolog, UNSW Prolog жəне т.б.

Біздің мемлекетімізде Прологтың келесі версиялары өндірілген – Пролог-Д (Сергей Григорьев), Акторный Пролог (Алексей Морозов), сонымен қатар Флэнг (А Манцивода, Вячеслав Петухин).

“Пролог тілінде программалау өнері” кітабында Стерлинг жəне Шепиро жазған: “Тілдің артықшылығы – анықталатын жəне белгіленетін ғылыми концепция болып емес, бүкіл оған қатысты қасиеттерімен нақты объект болып табылады. Пролог логикалық программалауда үлкен мақсаттарға жетпеген болса да, соған қарамастан, программалаудың қуатты, өнімді жəне тиімді формализмі болып табылады”.

Дəстүрлі, программа деп операторлардың кезектігін айтуға болады (компьтердің жасаған командалары). Осы программалау стилін əдетінше – императивті деп атайды.

Императивті тілде программалағанда, программист компьютерге есепті қалай шығару керек екендігін түсіндіруі қажет.

Оған қарама-қарсы программалау тілі – декларативті стиль, ол бекітілімдердің жинақтығын көрсететін программа, онда пəндік аймақ немесе тұрақталған ситуация бейнеленген.

Декларативті стильде программалауда, программист не шығару керектігін бейнелеу керек.

Сəйкесінше, программалау тілдері императивті жəне декларативті болып бөлінеді.

Императивті тілдер компьтерді есептеудің фон Нейман моделіне негізделген. Есепті шығару барысында, программист бірінші, жүйенің кейбір формальді моделін құрады да, содан кейін, шешімді компьтер терминінде программалаудың императивті тіліне қайта жазады. Бірақ, біріншіден, адамға компьютерлер терминдерінде ойлау мүмкін емес сияқты көрінеді. Екіншіден, осы кезеңнің соңғы іс-əрекеті (программалау тіліне шешімді қайта жазуы) бастапқы есептің шығарылымына еш қатысы жоқ. Өте жиі императивті программалар жоғарыда көрсетілген екі этаптарға сəйкес жұмысты бөледі. Бір адамдар, есептерді жабдықтаушылар, есептің шешімін ойлап табады, ал басқалары, кодировщиктер, осы шешімді программалау тіліне аударады.

Декларативті тілдің негізігде формализацияланған адам логикасы жатыр. Адам тек қана шешілетін есепті бейнелейді, ал шешімнің ізделуімен программалаудың императивті жүйесі айналысады. Аяғында, қосымшалар өңделуінің үлкен жылдамыдығын, бастапқы кодтың аз өлшемін, декларативті тілдегі жазбалардың жеңілдігін, императивті тілдермен салыстырғанда, түсінікті программалауды аламыз.

Программалық тілдер классификациясының не машиналық тілге, не табиғи тілге жақындығы белгілі. Компьтерге жақын болғандарын, төмен деңгейлі тілдерге жатқызады, ал адамға жақындарын, жоғары деңгейлі тілдер деп атайды. Осы жағдайда декларативті тілдерді өтежоғарғы жəне еңжоғарғы деңгейлі тіл деп атауға болады, өйткені олар адам тіліне жəне адам ойлау қабілетіне өте жақын.

Жағдай - адам әрекетінің , жан-жануарлар тіршілігінің, табиғат пен қоғамдағы өзгерістің, оқиғаның, т.б. айналадағы ортаның ықпалына тәуелділігін білдіретін философиялық ұғым. Табиғаттағы, қоғамдағы белгілі бір өзгерісті тудырушы алғышарт есебінде де қарастырылады.

Императивті тілдерге Паскаль, Бейсик, Си жəне т.б. сол сияқты программалау тілдері жатады. Прологтың солардан өзгешілігі, декларативті тіл болып табылуы.

Прологты программалау кезінде программистің бар күші программалық жіберулер детальдарын емес, пəндік аймақтағы терминдер объектінің есебіне шешілетін пəндік аймақ фрагментінің логикалық моделіне, олардың олардың арасындағы қарым-қатынастары мен қасиеттеріне бағытталуы керек. Негізінен Прологтың өзі программалық тілді көрсетпейді, деректер бейнелеудің тілін, жəне олардың логикалық өңделуін көрсетеді. Пролог программасы классикалық түрде осындай болып табылады, өйткені шартты операторлар, операторлар циклі жəне т.б. сол сияқты нақты басқару операциялардан құралмаған. Ол есептегі айтылған пəндік аймақ фрагментінің моделін көрсетеді. Соған байланысты есептер компьютерлер терминінде емес, шешілетін есептің пəндік аймақ терминінде жазылады, бұл қазір өзекті объекткеқатысты программалау жүзінде болады.

Пролог объектер арасындағы қарым-қатынас бейнеленгенге жақсы жарамды.

Сонықтан Прологты реляциялы тіл деп атайды. Мұнда тілдердің “реляциялылығына” қарағанда, Прологтың “реляциялылығына” қуатты жəне дамыған болып келеді. Прологты жиі деректер базасымен басқару жүйелерін құрастырғанда қолданады, мұнда Прологта жеңіл жазылатын өте қиын сұраулар қолданылады.

Прологта, императивті тілге қарағанда, көптеген алгоритмдер өте жақсы бейнеленеді. Статистика бойынша, Пролог тілінде жазылған бастапқы текст жолдары, сол есепті шығаратын императивті тілдің бастапқы текстінде он төртінші жолына сəйкес келеді.

Пролог-программаны, əдетте, жазу, түсіну жəне реттеу өте оңай. Бұл Пролог тілінде қосымшаларды өндіру кезінде, көптеген жағдайларды императивті тілдерден тезірек болатынына əкеліп соғады. Прологта күрделі деректер құрылымдарын өңдеу жəне бейнелеу оңай. Бұл бекітілімдерді өз тəжірибемізде осы курсты оқу барысында тексереміз.

Прологта, басқа дəстүрлі программалау тілдері тілдеріне тəн емес механизмдер бар: мысалмен салыстыру, іздеу жəне қайта келумен шығару. Сонымен қатар, мағызды ерекшеліктерінің бірі – Прологта сақталатын деректер үшін массивтер емес, тізбелер қолданылады. Тілде өзіне алу жəне өту көрсеткіштері жоқ. рекурсия программалаудың табиғи жəне əдетте жалғыз əдісі болып табылады. Сондықтан көптеген процедуралардың тілдерде жұмыс істеу тəжірибесі бар адамдар декларативті тілді бұрын программалармен айналыспағандармен салыстырғанда жайырақ қабылданады, өйткені Пролог басқаша көзқарас стилін талап етеді.

Мен Прологты оқушылар мен студенттерге үйреттім.

Рекурсия (лат.recursioкейін кайту) - дыбыс артикуляциясынын үшінші сонғы фазасы, яғни сөйлеу мүшелерінін дыбыс жасау позициясынан айрылып, бастапқы бейтарап калпына кайта оралуы.. Жалпы мағынасында рекурсия - элементтерін өзіне ұқсас түрде қайталайтын процестер.
Оқушы - белгілі бір іспен айналысатын адам. Бұл іс сабақ немесе адам қызығатын іс болуы мүмкін. Оқушы бір істі игерумен айналысады. Ол бұл істі жоғарғы деңгейге игергенге дейін оқушы деген атқа ие болады.
Бір күні Пролог спецкурсын өткізу барысында, информатика пəнінен сабақ беретін əйел келді. Сол уақытқа, оны императивті тілдерді программалаудан (жəне сабақ беруден) үлкен тəжірибесі болған.
Уақыт - өлшемдер жүйесінің оқиғаларды реттеу, олардың ұзақтығын және араларындағы интервалдарын сипаттауда, және нәрселердің қозғалысын сипаттауда пайдаланатын маңызды мүшесі. Уақыт мифология, философия және ғылымның әр салада пайдалану үшін қарама-қайшылысыз сипаттау, зерттеу нысаны болып, талай-талай ұлы ғалымдарды өмірге әкелген.
Сабақ біткеннен соң, ол ұзақ уақыт өз-өзіне кіре алмады. Реакциясы келесідей болған сияқты: “Мен түсінбеймін, бұл қалай болғаны! Қалай прологтағы бірнеше жолдар Паскальдағы бірнеше бет жасағандай жұмыс істейді?” Сауатты адам болғанына қарамастан, ол өзінің “императивті тəуелділігін” өтіп кетіп жəне декларативті стильде программалауды бастай алмады. Оған қарағанда, оқушылар мен студенттер, императивті тілде жұмыс істеу тəжірибесі болса да,

Пролог тілін жеңіл қабылдап, декларативте стильде программалауды бастады. Сойтіп, оқушылардың біреуі (7-ші класс оқушысы) бірнеше ай Прологта жұмыс істегеннен кейін, мұнда “Габриль” билеттерді бронировать етуге арналған авиациялық жүйеге қосымша жазды, ол новосибирсктің “Авиафлотында қолданды”. Пролог тілі, менің ойымша, программалауды үйретудің бастапқы кезеңіне қолайлы, өйткені ол императивті тілдер сияқты компьтерге емес, адамның ойлау қабілетіне бағытталған. Программалауды жаңа үйреніп жатқандарға Пролог тілі оңай беріледі. Бұтақтану, циклдер жəне т.б. сияқты синтаксистік конструкциялардың толық жоқтығы да тіліді қабылдаудың жылдамдығына да əсер етеді. Содан басқа, Прологта программалау, менің ойымша, ойлау қабілетін жақсартады. Өте жиі, есеп шешімін программалау үшін программистке (немесе кейбір пəндік аймақтағы экспертке) біріншіден өзі осы есепті қалай шығаратынын анықтап, өз білімдерін белгісізден белгіліге ауыстыруы керек. Дегенмен, Пролог - əлемдегі ең жақсы тіл деп, кез-келген есепті əмбебап “шығарушы” деп санамаймын. Біздің ойымызша, есептер басқа программау тілдеріне қарағанда, əр тілге өз есептер класы тəн. Сəйкесінше, əр есепті шығару үшін оптималды программалау тілі (тілдері) бар. Көптеген Паскаль, Си сияқты императивті тілдермен шығарылатын есептер Прологта нашар шығарылады жəне керісінше.

Сондықтан адам есеп шығарудың бір емес, оның қарамағандағы кез-келген құралымен қолдана алса – бұл өте жақсы болады. Пролог өзін қай салаларда ең жақсы етіп көрсеткенін қарап көрейік.

Прологты қолданудың негізгі аймақтары:

· Қолданбалы программалар прототиптерінің тез өңделуі;

· Бір тілдің екіншіге автоматты аударылуы;

· Бар жүйелерге табиғи-тілдік интерфейстер құру;

· Теңдеулерді, дифференциялануды жəне интегралаунды шешуге арналған символдық есептеу;

· Динамикалық реляциялы деректер базасын жобалау;

· Сарапшы жүйелер жəне сарапшы жүйелердің қабықшалары;

· өндірістік процесті автоматтындырылған басқару;

· теоремалардың автоматты дəлелденуі;

· жартылайавтоматтанған күндізбе құрастыру;

· автоматтандырылған жобалаудың жүйелері;

· білімге негізделген программалық жабдықтау;

· кез-келген программалау тілінде жазылған клиенттік қосымша жауап бере алатын деректер серверінің немесе, дəлірек айтқанда, білімдер серверінің ұйымдастырылуы.

Пролог арналмаған аймақтар: арифметикалық есептеулердің үлкен көлемі (аудио, видео өңдеу жəне т.б.

Арифметика (грек. arіthmētіkē, arіthmos – сан) - сандар (бүтін және бөлшек) және оларға қолданылатын амалдар туралы ғылым (грекше arіthmetіke, arіthmos – сан).
); драйверлерді жазу.

Прологты, оның нақты версиясына байланыспай, оқу, менің ойымша, онша мақсатты емес. Жоғарыда айтылғандай, Пролог версиялары өте көп, осы версияға талдаған версияларды байланыстыру үшін, оның қайсы бірін таңдау керек. Біз мемлекетімізге белгілі жəне Прологтың тиімді версиясы – Турбо Прологта тоқтаймыз.Оны Borland International фирмасы Prolog Development Center (PDC) дат компаниясымен бірге достастықта өңдей бастады, Бірінші версиясы 1986 жылы шыққан. Соңғы біріккен версия 2.0 номеріне ие болып, 1988 жылы шығарылды.

1990 жылы PDC Турбо Прологқа монополиялы құқығын алды жəне содан кейін атауын PDC Prolog деп қойды. 1992 жылы PDC Prolog 3.31. версиясы шықты.

19986 жылы, питерлік программистер группасының қатысуымен, Prolog Development Center - Visual Prolog 4.0. версиясын шығарды. Visual Prolog ортасының құрамына қосымшаны өндіруді жылдамдатуға мүмкіндік беретін басқарушы логиканы визуальді программалау интерфейсін жəне көптеген құралдарды құрастырушы код генерациясының инструментальді құралдары қосылды. Visual Prolog ортасының жетістіктерінен басқа, идентификаторларда ұлттық алфавитті қолдану мүмкіндігіне, яғни программаны түсінікті жəне өзіқұжатталған болатындай программаларда домендер, предикаттар жəне айнымалылардың орыс аттарын қолдануға мүмкіндік бар екеніне көңіл бөлу керек.

Қазіргі кезде Visual Prolog-тың алтыншы версиясы шықты, ол, дегенмен, тек қана Прологтың единбург версиясынан ғана емес, сонынмен қатар, Турбо Пролог программаларын кедергісіз қабылдаған, өзінің бесінші версиясынан да алыс қадамға өтті.

Аз көлемді қол жеткізуге, аз ресурскөлемдікке, дəстүрлерге, сонымен қатар барлық кедергілердің жоқтығына, соның ішінде графикалық қабықшаға қарағандағығы ойдан, Турбо

Прологе 2.

Графика - (гр. graphein, тырнау, жазу, салу дегеннен) Жазуда қолданылатын таңбалардың (әріп және тыныс белгілерінін) жиынтығы. Жазу танбалары жүйесі мен тілдін фонетикалық жүйесінің ара қатынасын, байланысын білдіреді.
0 – да тоқтаймыз, бірақ осы таңдау едəуір таласып трған болуы мүмкін. Бірақ қазіргі уақытта біздің мақсат – тілдің өзіне көңіл бөлу. Барлық мүмкін жағдайларда біз

Прологты үйренеміз, “таза” Прологқа жақын болуымыз керек. Осы тілдің теоретикалық негізін де талдауға тырысайық.

Бірақ, осыған қарамастан, менің ойымша, программалауды компьютерде орнатылған үйреніп жатқан тілдің нақыт версиясымен игеру қажет. Барлық қарастырылып жатқан дəрістердегі мысалдар Турбо Прологтың екінші версиясында жұмысқа қабілетті болады. Негізінде, олар 4–5.2. версиясындағы Visual Prolog –та компиляциялану керек. Əдетте, оларды кедергілерсіз

Прологтың басқа да версияларына аударуғы болады. Осында жеңіл модификация қажет болуы мүмкін. Мысалы, конструкциялардың ": — " - "is" деп ауыстыруға болады.

Турбо Прологтың эдинбургтық версиядан (“классикалық” Прологтан) ең маңызды ерекшелігі – трансляция жылдамдығын арттыру жəне программаларды орындау үшін деректердің қатаң типизациясының болуы. Турбо Пролог программасының басында əдетте 14 домендердің сипаттамалары (мəліметтер типтерінің) жəне предикаттар орналасады. Турбо

Прологта ережелерді мəліметтер сияқты қарастыру мүмкіндігі жоқ, яғни оларды жұмыс барысында қосу жəне алып тастауы, предикат атының айнымалымен салыстыруы.

Программаның өзгеру бөлігі болып ішкі деректер базасы табылады (олар бірнеше болуы мүмкін). Программаны орындау барысында оның ішіне фактілерді енгізуге жəне сонымен қатар, алып тастауға болады.

Предикат (лат. predіcatum - баяндау) - пікір түрінде қасиет пен ерекшеліктерді білдіретін пікір баяндауышы. Предикат белгілі бір нәрседе әлдебір қасиеттің (белгінің) барын не жоғын бейнелейді.
Факт - әр уақытта ешқандай шартсыз ақиқат болатын айтылым. Пролог тілінде қарастырылады. Шынымен болған, ойдан шығарылмаған оқиға, жағдай, құбылыс; берік тағайындалған білім; қандай да бір болжамды тексеру болып табылатын қандай да бір қорытынды, түйін үшін қызмет ететін тәжірибедегі мәліметтер.

“Классикалық” Прологоққа қарағанда Турбо Прологта операцияларды анықтауға болмайды. Турбо Пролог интерпритацияланатын емес, компиляцияланатын тіл болып табылады. Турбо Прологтың жетістіктері Паскаль, Си, Фортран немесе ассемблер тілдерінде жазылған процедураларды оның ішіне орнату болып табылады

  1   2   3   4   5   6

  • «Пролог логикалық
  • Глоссарий
  • Бэктрекинг
  • Файлдың ішкі аты
  • Ішкі деректер қоры
  • Декларативті тіл
  • Императивтің тілдер
  • Тармақ негізі
  • Қиып өту операциясы
  • Процедурлық Модель Ережелер
  • Қыстыру арқылы сұрыптау
  • Тізім.
  • Дəріс конспектісі

  • жүктеу 0.94 Mb.