Международный гуманитарно-технический



бет10/37
Дата22.06.2023
өлшемі2,73 Mb.
#179096
түріЛекция
1   ...   6   7   8   9   10   11   12   13   ...   37
Байланысты:
konspekt lektsiya-2021-2022

ОББ Жалпы принциптері:


1. Барлығы объекті болып табылады. Объект негізінен өздерінің атрибуттарымен сипатталады, атрибуттар өз кезегінде ауыспалы болып құрылады және сол объекті жайлы ақпараттарты тасымалдайды. Объектіде сонымен қатар оның бет алысының моделі немесе оның ақпараттарды өңдеу әдістері суреттеледі.
2. Есептеу негізінен өзара әсерлесу жолымен немесе объектілер арасындағы мәоіметтер алмасу, яғни бір объекті қандай да бір әрекетті орындау үшін бағытталған кездерде жүзеге асырылады.
3. Әрбір объекті кейбір объектілер класының өкілі болып табылады, яғни ол класс ішіне қосылған сол объектілердің жалпы қасиеттерін өрнектейді.
4. Әрбір объекті өзінің объектілер – атааналары қасиеттерінен тұратын тәуелсіз жадыға ие болады.
5. Әрбір объекті - өзінің бет алысын алдын ала анықтай алатын ұрпақ болып саналады.
6. Жалпы түбірмен иерарахиялық құрылымға анықталған объектілер заттық облысты суреттейді және мұралау иерархиясы схемасы деп аталады.
Көптеген заманауи тілдер арнайы объектілі-бағытталған бағдарламалауды жеңілдету үшін құрылған. Бірақ атап өтетін жағдайда, объектілі-бағытталмаған тілдер үшін де объектілі-бағытталған қадам құралдарын пайдалануға болама, немесе объектілі – бағытталған қадамды пайдалану кезінде еш айырмашылық жоқ, яғни тіл коды автоматты түрде объектілі-бағытталған бола ма деген жағдайлар болатындығын ескеру қажет.
Заманауи объектілі-бағытталған тіл, қағида бойынша негізінен синтаксистік құралдардың міндетті қатары болатындығын алға тартады, олар келесілер болуы мүмкін:

  • Поляларымен кластарды хабарлау (мәліметтермен — класс мүшелерімен) және әдістермен (функциялармен — класс мүшелерімен).

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

  • Кластардың ішкі құрылымын санкциясыз пайдаланудан қорғау құралдары. Әдетте бұл модификаторлар полялар мен әдістерге қол жетімді, атап айтсақ public, private типтері, әдетте сонымен бірге protected, кейде кейбір басқалары.

  • Полиморфты ауыспалылар және функция параметрлері (әдістер), әртүрлі кластардың сол бір ауыспалы экземплярларын иелеп алуға мүмкіндік береді;и

  • Кластар экземплярларының полиморфты бет алысы виртуальды әдістерді пайдалану есебінен мүмкін болады. Кейбір объектілі-бағытталған қадамдарда кластардың барлық әдістері виртуальды болып табылады.

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

  • Конструкторлар, деструкторлар, финализаторлар.

  • Қасиеттер (аксессорлар).

  • Индексаторлар.

  • Интерфейстер — көптеген мұралау үшін альтернатива ретінде.

  • Кластар үшін операторларды алдын ала анықтау.

Тілдердің бір бөлігі (кейде оларды «таза объектілі» деп атайды) тұтас алғанда объектілі құралдар айналасында тұрғызылған – оларда кез келген мәліметтер (мәліметтердің тұрғызылған склярлы типтері түрінде ғана кейбірлері) объектілер болып табылады, кез келген код – қандай да бір класс әдісімен объекті болып табылады, және объектілер пайдаланылмайтын бағдарламаларды жазу тіпті мүмкін емес. Осы тәрізді тілдер мысалы ретінде C#, Smalltalk, Java, Ruby алып қарастыруға болады. Басқа тілдер (кейде «гибридті» термині пайдаланылады) объектілі бағытталған қадамды бастапқы процедуралық тіл кіші жүйесіне жатқызады. Оларда объектілік құралдарға жүгінбестен бағдарламалау мүмкіндігі болады. Классикалық мысалдар— C++ и Pascal.
Бағдарламалаудың объектілі-бағытталған тілдері соңғы жылдары бағдарламашылар арасында сәтті қолданыла бастады, себебі олар объектілі-бағытталған қадамның артықшылығын тек қана жобалау кезеңдерінде ғана емес және бағдарламалық жүйелерді конструкциялау кезінде де артықшылықтарды пайдалануға мүмкіндік береді, және оны тарату, тестілеу және күзету процестерінде де байқауға болады.
Бірінші объектілі-бағытталған бағдарламалау тілі Simula 67 60 дылдардың соңына қарай Норвегияда жасалған. Осы тіл авторлары бағдарламалаудың даму болашағын өте дәл анықтай алған: олардың тілі уақытты елеулі мөлшерде озып отырды. Бірақ заманға сай бағдарламашылар (60 жылдар бағдарламашылары) ол тілдің құнын бағалауға дәрменсіз болды Simula 67, және ол бағдарламалау басқа тілдерінің арасында бәсекеге қабілетті бола алмады (ең алдымен Fortran тілімен). Simula 67 тіліне деген салқын қабақтық таныту, оның тек интерпретацияланатын тіл (компиляцияланаын емес) ретінде ғана таралуына алып келді, және ол 60 жылдар үшін қолдануға жарамды ес болды, себебі интерпретация бағдарламалар тиімділігін төмендетумен (жылдамдығын азайтумен) байланысты тіл болып саналады.
Бірақ Simula 67 тілінің артықшылықтары кейбір бағдарламашылармен айтылып өткен, және 70 жылдары бағдарламалаудың объектілі – бағытталған экспериментальды тілдерінің көптеген саны жасалып шығарылды, мысалы, CLU, Alphard, Concurrent Pascal және т.б. тілдер. Бұл тілдер негізінен экспериментальды күйінде қалып қойды, бірақ оларжы зерттеу нәтижелерінде заманауи объектілі-бағытталған бағдарламалау тілдері жасалып шығарылды, яғни олар толық аяқталған тілдер: C++, Smalltalk, Eiffel және т.б.
Ең кеңінен таралған объектілі-бағытталған тіл болып сөзсіз С++ есептеледі. Бағдарламалаудың комерциялық еркін таралатын жүйелері С++ іс жүзінде кез келген платформада болады. Бағдарламалаудың еркін таралатын жүйесі G++ те кеңінен белгілі, ол негізінен барлық қалаушыларға жеткілікті жақсы таңдауға және тілдің С++ үлгілі компиляторлары бастапқы мәтінін жақсы түсіндірмелермен күзетуге мүмкіндік береді. С++ тілін стандарттау бойынша жұмыстар аяқталуға жақын: соңғысы С++ Draft стандарты, ол 1995 жылы маусымда шығарылған (ол тек Интернет бойынша ғана қол жетімді).
Бағдарламалаудың жаңа объектілі – бағытталған тілдерін жасау қазірде жалғасуда. 1995 жылдан бағдарламалаудың жаңа объектілі-бағытталған тілі Java кеңінен қолданыла бастады, ол негізінен компьютерлер желілеріне бағытталған және ең алдымен Internet желісіне. Бұл тілдің синтаксисі С++ синтаксисін еске түсіреді, бірақ бұл тілдер негізінен жалпыламалары немесе ортақтықтары бәрі бір аз. Java интерпретацияланатын тіл: ол үшін ішкі түсініктер (bytecode) және сол өрнектеу үшін интерпретатор анықталған, олар қазірдің өзінде көптеген платформаларда таралып үлгерген. Интерпретатор бағдарламаларды жинақтауды қарапайым етеді, егер олар Javaтілінде жазылған болса, сонымен қатар олардың жаңа платформаларға өтуін және жаңа ортаға адаптациялануын (үйренуін) жеңілдетеді. Ол Java тілінде жазылған бағдарламалардың басқа бағдарламаларға, файлдарға және жаңа платформаға әсер етуін болдырмайды, және сол арқылы сол бағдарламаларды орындау кезіндегі қауіпсіздікті қамтамасыз етеді. Бұл қасиеттер Java тілінде болуы негізінен оны желілер бойынша таралатын (жеке алып қарасақ Интернетте таралатын) бағдарламалар үшін бағдарламалаудың негізгі тілі ретінде пайдалануға мүмкіндік береді.
Обьектілі-бағдарлауға қадам жасаудың негізгі ойлары келесі жайларға сүйенеді:
- Бағдарлама өзімен бірге кейбір іске асатын процестердің үлгісін көрсетеді, өмірдің бір бөлігін.
- Шын өмірдің үлгісі немесе оның бөліктері обьектілер арасындағы өзара әрекеттесушілік жиынтығы ретінде сипатталуы мүмкін.
- Объект параметрлер терімі ретінде сипатталады, оның мәндері обьектілер қалып-күйін анықтайды, және амалдар терімі (әрекеттер) ретінде де, обьектіні орындайтын.
- обьектілер арасындағы өзара әрекеттестік арнайы посылкалар арқылы жүзеге асады, бір обьектінің екінші обьектіге жіберген. Хабарлама, обьектіге келіп түскен, анықталған бір әрекетьтерджі орындауды қажет етуі мүмкін, мысалы, обьектінің қалып-күйін өзгерту.
- Объектілер, осы немесе басқа параметр терімімен сипатталынған және сол немесе басқа әрекетттер терімін орындауға қабілетті, өзімен бірге біртипті обьектілерді ұсынады.
Бағдарламалау тілінің көз мөлшерімен қарағанда обьектілер класын деректер типі ретінде қарастыруға болады, ал бөлек обьектіні – осы типтің дерегі ретінде. Нақты тапсырмалар терімі үшін бағдарламашының жеке обьектілер класын анықтауы бөлек тапсырмаларды дәл сол тапсырмалар класс терминінде сипаттауға мүмикіндік береді (сәйкес типтер аты мен обьектілер атын, параметрін және орындалатын әрекетін таңдау кезінде).
Осымен, обьектілі-бағдарлыға қадам болжайды, бағдарламаны өңдеу кезінде кластар анықталуы қажет, обьектілер бағдарламасында және оның сипаттамасының құрылуында қолданылатын, сосын қажетті обьектілер көшірмесі құрылған және олардың арасындағы өзара әрекеттер анықталған.
Мынау айқын, обьектілі қадам жасауды бағдарламаны өңдеуге қолдану өнімді болып табылады, бағдарламалау тіліне қажетті, осы қадамды қолдайтын, яғни, обьектілер класын сипаттауды құруға, обьектілі типтің деректерін құруға, обьектілер класын жиірек ыңғайлы құру үшін орындау, олар иерархиялық құрылымды бейнелеуі үшін. Мысалы, “Студент” класы, абстрактілі студентті сипаттайтын, “Студент 1 курса”, “Студент 2 курса” кластарын құруда негізгі қызмет атқарады, және т.б, студенттің жалпы қасиетіне ие және кейбір қосымша қасиеттерін қамтитын, нақты бір курстың студентін сипаттайтын. Пайдаланушысы бар интерфейсті өңдеу кезінде бағдарлама “Окно” жалпы класының обьектілерін және арнайы терезелер обьектілерін, мысалы, ақпараттық хабарлама терезесі, деректерді енгізу терезесі және т.б. қолданады. Мұндай иерархиялық құрылымда бір класс екінші бір кластың базалық класы ретінде қарастырылуы мүмкін, одан класс туындайды. Туындаған кластың туындысы базалық кластың барлық қасиетіне және кейбір жеке қасиеттеріне ие болады, ол басқа обьектілерден сол хабарлама типін сезінеді, базалық класс және хабарлама сияқты, туынды класс үшін мәнге ие. Көбінесе туынды кластың обьектісі өзінің базалық класының барлық қасиетіне тартып кетеді.
Обьектінің кейбір параметрлері обьектінің ішінде тарамдалады және обьектіден тыс жерде тікелей әрекетке қол жеткізусіз болады. Мысалы, обьект-автомобильдің әркеті кезінде обьект-айдаушы басқару органдарының (руль, газ педалі, сцепления және тормоз, скорость) шектелген терімдерінде ғана қимыл жасауы мүмкін және оған параметрлердің барлық қатары қол жеткізулі емес, двигательдің және бүтіндей автомбильдің қалып күйін сипаттайтын.
Обьектілерге жасалатын амалдар.
Осындай тілдірдің бірі SmallTalk, онда барлық деректер кейбір кластардың обьектілері болып саналады, ал кластардың жалпы жүйесі алдын ала анықталған базалық кластар негізіндегі иерархиялық құрылым сияқты құрылады.
Бағдарламалау тәжірибесі көрсетеді, бағдарламалу технологиясына кез келген методикалық қадам басқа қадамдарды елемеулер кезінде ақауларсыз қолданылуы тиіс. Бұл оның обьектілі-бағдарлы қадамына қатысты. Осындай проблемалардың біразы бар, олардың пайдалары көбірек екені айқын, мұндай проблемаға жиірек қатыстылар, имитациялық модельдеу тапсырмалары, пайдалунышысы бар диалогты бағдарламалау. Кейбір саптырмалар бар, оған обьектілік қадамды қолдану ештеңеге алып келмейді, еңбегін ғана кетеді. Осыған байланысты обьектілі-бағдарлы бағдарламалау тілдері көп таралымға ие болды, обьектілік қадамды басқа методологиямен біріктіруге мүмкіндік беретін. Кейбір бағдарламалау тілдері мен жүйелерінде обьектілік қадамды қолдануды пайдаланушысы бар интерфейстер құралы шектеп қояды (мысалы, Visual FoxPro алғашқы версиялары).
Қазіргі уақытта обьектілі-бағдарлы тілдердің арасында көбірек қолданылатындар болып обьектілі Паскаль жэәне С++ табылады, мұндағы обьектімен жұмыс істеудің дамытылған құралдары С++ тілінде қамтылған.
Тәжірибе жүзінде барлық обьектілі-бағдарлы бағдарламалау тілдері дамушы тілдер болып саналады, олардың стандарттары жүйелі түрде нақтыланады және кеңейіп отырады. Осы дамудың соңынан ерушілер болып тілдерге кіретін әртүрлі бағдарламалау жүйелерінің компиляторлары табылады. Ең көп таралған осу уақытта Microsoft C++ , Microsoft Visual C++ бағдарламалау жүйелері және Borland International фирмасының бағдарламалау жүйелері. Алда көрсетілетін материал Borland C++ бағдарламалу жүйесіне тиісті болады. Бұл осы бағдарламалау жүйесінде интегрирленгенің жүйенің дамуымен байланысты, текстік редакторды, компиляторды, байланысту редакторын және жөндеуші құралдарды біріктіретін.
Си тілі 70 жылдары жүйелік бағдарламалау тілі ретінде өңделіп шығароылған. Осымен тілдің алдында мынадай мақсаттар тұрды, процедуралық және құрылымдық бағдарламалауды іске асыру және жүйелік бағдарламалаудың спецификалық қабылдауларын іске асыру. Мұндай тілде бағдарлама Ассемблер тілі деңгейіндегі күрделі бағдарламамен салыстырарлық болды, әрі одан жылдам болды. Бұл мақсаттарға, негізінде қол жеткізілді. Си үшін көптеген компиляторлар Си-дің озінде жазылды, UNIX операциялық жүйесі де толығымен Си-де жазылды. Си-дің жетіспеушілігі болып типтерді бақылдаудың жоқтығынан өңделетін бағдарламаның сенімділігінің төмендігі табылады.
Си тілі негізінде 80 жылдары Си++ тілі өңделіп шығарылды, алғашында "Си класымен" деп аталды. Си++ тілінде Си тілі қамтылған және обьектілі-бағдарлы бағдарламалау құралдарымен толықтырылған. С++-тің жұмыс версиясы 1983ж шықты. С қазірге дейін дамып келеді және Си және С++ стандартты жобаларының версиялары шығарылып келеді.
Бағдарламалық қамтаманы туындататын фирмалар қатарында Си және Си++ үшін компиляторлар өңделіп шықты. Borland International фирмасының жүйелік бағдарламалаулары басқа фирмалардан айырмашылығы бағдарлама өңдеуге комплексті қадамында, жүйелік бағдарламалауға өңдеушінің интегрирленген ортасының қосылуында, көздік текстік бағдарламаны енгізу үшін текстік редакторды, компиляторды, байланыс редакторын және жөндеуші құралдарды жалпы басқарушылықпен біріктіруінде. 1989ж осы фирма Turbo C++ жүйесін шығарды, Си++ компиляторы бар, DOS операциялық жүйесінде жұмыс істейтін, 1992 жылдан бастап Borland C++ жүйелері шығарыла бастады, Си++ компиляторлары бар DOS және WINDOWS үшін, 1997 жылдан бастап Borland C 5.0 версиясы пайда болды, Си++ компиляторлары бар WINDOWS үшін, мұнда WINDOWS-қа арналған компилятор 16-разрядтық пен қ,8атар, 32-разрядтық та бағдарламаларды өңдеді, ПЭВМ үшін i486 және Pentium процессорларымен.




Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   37




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

    Басты бет