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



бет1/6
Дата01.07.2016
өлшемі458.5 Kb.
#169566
  1   2   3   4   5   6


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

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




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


ПОӘК

ПОӘК 042-39.1.54/03-2015

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

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

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


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

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

Семей

2015

МАЗМҰНЫ





Глоссарий






Дәрістер






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






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





1. Глоссарий

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



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

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



Бэктрекинг

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



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

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



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

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



Тармақ_биіктігі'>Тармақ биіктігі

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



Граф

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



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

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



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

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



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

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

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

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

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

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



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

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



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

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



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

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



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

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



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

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

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

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

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

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

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



Жол

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

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



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

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



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

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



Тізім.

Бұл үтір ақылы ажыратылған элементтер жиынтығы [H|T] түрдегі құрылым. ([ ]) – бос тізім, H тіізмнің басы, T- тізім аяғы деп белгіленеді.



Жол

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



Айғақ

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



Цикл

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

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

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

Пролог пайда болуы жəне дамуының тарихы. Бесінші ұрпақты ЭЕМ-ң жапондық жобасы. Императивті жəне декларативті программалу тілдері. Прологты қолдану аймақтары. Пролог – программалауды бастапқы үйренудің тілі. Пролог тілінің пайдалану аймақтары.



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

1981 ж. қазанда Жапондық халықаралық сауда жəне өндіріс министрлігі зерттеулік ұйым - Жаңа Ұрпақтық Компьютерлердің Құрылу Əдістерін Зерттеу Институтының (Institute for New Generation Computer Technology Research Center) құрылғанын хабарлады. Осы жобаның мақсаты білімге негізделген ақпаратты өңдеу жүйесін құру болып табылған. Бұл жүйелер қолданушыға жалпы тіл көмегімен жұмыс істеуге мүмкіндік беру арқылы басқаруды жеңілдетуді қамтамасыз етеді деп болжамдалған. Осы жүйелер өзін-өзі үйретуі, əртүрлі есептерді шығару үшін жадыдағы жиналып жатқан білімдерді қолдануы, қолданушыларға сарапшы консультацияларды беруі керек болған, дегенмен, қолданушыдан информатика маманы болуы талап етілмеген. Адамзат кез-келген теледидар, магнитофон жəне пылесос электроқұралдары сияқты беснші ұрпақты ЭЕМ-ді өте оңай қодана алады деп болжамдалған. Содан соң жапондық жобадан кейін американдық жəне еуропалық жобалар басталды. Осындай жүйелердің пайда болуы білімдер базаларының жəне сарапшы жүйелердің негізінде технологияларды өзгерте алуы мүмкін болды. Беснші ұрпақты ЭЕМ-ге сапалы өтудің негізгі бағдары – деректерді өңдеуден білімдерді өңдеуге өту болып табылған. Адам ойлау қабілетін компьтерлердің функциялау принциптеріне негіздемей, компьютер жұмысын адам ойлауна жақындатуы қолдан келеді деп Жапондықтар үміттенген, осы орайда фон нейман компьютерлік архитектурадан бас тартты. 1991 ж. Бесінші ұрпақты ЭЕМ-ң алғашқы прототипін құрастыру болжамдалған. Енді белгілі, алға қойылған мақсаттар толық орындалған жоқ, дегенмен осы жоба жасанды интеллект өрісінде жаңа зерттеулер өндірісіне импульс болып табылған жəне логикалық программалауға өте үлкен мүдде туғызған. Тиімді сату үшін дəстүрлі фон нейман арихитектурасы жараған жоқ, сондықтан PSI жəне PIM логикалық программалау компьютерлер құралған.

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

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

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

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

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

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).

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

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

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

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

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

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

Қызығы, компилятордың өзі Прологта жазылған. Осы Прологтың өндірісі “эдинбургтік версия ” ретінде танылған, тілдің бірінші жəне жалғыз стандарты болды. Өндірген кездегі қолданған алгоритм, тілдің көптеген келесі өндірулеріне прототип болды. Əдетте, егер қазіргі-заманғы Пролог жүйесі эдинбургті прологты қолдамаса да, Прологты программаны “эдинбургті” жүйеге келтіретін оның астыжүйесі бар. Əрине, 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 жəне т.б.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Прологты, оның нақты версиясына байланыспай, оқу, менің ойымша, онша мақсатты емес. Жоғарыда айтылғандай, Пролог версиялары өте көп, осы версияға талдаған версияларды байланыстыру үшін, оның қайсы бірін таңдау керек. Біз мемлекетімізге белгілі жəне Прологтың тиімді версиясы – Турбо Прологта тоқтаймыз.Оны 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.0 – да тоқтаймыз, бірақ осы таңдау едəуір таласып трған болуы мүмкін. Бірақ қазіргі уақытта біздің мақсат – тілдің өзіне көңіл бөлу. Барлық мүмкін жағдайларда біз

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

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

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

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

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

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

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



Достарыңызбен бөлісу:
  1   2   3   4   5   6




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет