Объектіге бағытталған тілдер


Қазақстан Республикасы Ғылым және жоғары Білім министрлігі
М. ӘУЕЗОВ атындағы Оңтүстік Қазақстан университеті
“Ақпараттық технологиялар және энергетика жоғары” мектебі
“Есептеу техникасы және бағдарламалық қамтамасыз ету” кафедрасы
КЕЙС
Тақырыбы: Объектіге бағытталған бағдарламалау туралы түсініктер
Орындаған:Айтуған Г. Ө
Тобы:ИП 21-6к1
Қабылдаған: Қалдарханова С. М
ШЫМКЕНТ 2023
МАЗМҰНЫ
Кіріспе . . . ……… . . . 3
- Теориялық ақпараттар
1. 1 Объектілі бағытталған бағдарламалау түсінігі . . . 4
1. 2 ОББ кіші типтерінің классификациясы . . . 6
2. ОББ анықтамасы және оның негізгі ұғымдары
2. 1 Анықтау күрделілігі . . . 7
2. 2 Ұғымдары . . . 8
3. Әртүрлі ОББ әдістемелері . . . 8
3. 1 Компоненттерді бағдарламалау . . . 8
3. 2 Прототипті бағдарламалау . . . 9
3. 3 Классқа бағытталған бағдарламалау . . . 9
4. Объектілік бағдарламалардың орындалуы . . . 9
5. Объектіге бағытталған тілдер . . . 10
6. Қорытынды . . . 13
7. Пайдаланылған әдебиеттер тізімі . . . 14
Кіріспе
Объектіге-бағытталған бағдарламалау - объектілердің көмегімен бағдарламаларды жобалау, жазу. Объектіге-бағытталған бағдарламалаудың негізі болып объект саналады. Объект деп - мәліметтер және олармен жұмыс істеу әдістерінің жиынтығы аталады. Объектіге-бағытталған бағдарлама деп - объектілер және олардың өзара әрекеттесу тәсілдерінің жиынтығы аталады.
1 бөлім
1 Объектілі бағытталған бағдарламалау түсінігі
Объектіге бағытталған бағдарламалау (ОББ; ағылш. Object-oriented programming) - программаны өзара әрекеттесетін объектілердің жиынтығы ретінде көрсетуге негізделген бағдарламалау әдістемесі, олардың әрқайсысы белгілі бір класстың данасы болып табылады және класстар мұрагерлік иерархияны құрайды. Идеологиялық тұрғыдан алғанда, ОББ - бұл құрылымдық бағдарламалаудың негізгі міндетін жаңа деңгейде шешетін ақпараттық объектілерді модельдеуге арналған бағдарламалау тәсілі: басқару мүмкіндігі тұрғысынан ақпаратты құрылымдау, бұл модельдеу процесінің басқарылуын айтарлықтай жақсартады. өзі, бұл, өз кезегінде, ірі жобаларды жүзеге асыру кезінде ерекше маңызды. Иерархиялық жүйелерді басқару мүмкіндігі деректердің артық болуын (қалпына келтіруге ұқсас) және олардың тұтастығын азайтуды қамтиды, сондықтан ыңғайлы басқарылатын нәрсе де ыңғайлы түрде түсініледі. Осылайша, басқарудың тактикалық міндеті арқылы стратегиялық міндет шешіледі - бағдарламалаушының тапсырманы түсінуін одан әрі пайдалану үшін ең қолайлы формаға аудару. ОББ жағдайындағы құрылымдаудың негізгі принциптері сәйкес модельді оңтайлы басқару үшін қажетті тақырыпты негізгі түсінудің әртүрлі аспектілерімен байланысты:
- модельденетін пәнде тақырып бойынша нақты мәселені шешу үшін маңызды нәрсені бөліп көрсетуге арналған абстракция, сайып келгенде - сынып түрінде ресімделетін пәнді контекстік түсіну;
- дұрыс иерархиялық басқаруды жылдам және қауіпсіз ұйымдастыру үшін инкапсуляция: қарапайым «не істеу керек» пәрменін бір уақытта дәл қалай орындау керектігін көрсетпестен жеткілікті, өйткені бұл басқарудың басқа деңгейі;
- байланысты ұғымдарды жылдам және қауіпсіз ұйымдастыру үшін мұрагерлік: алдыңғы қадамдарда ескерілгендердің барлығын қайталамай, әрбір иерархиялық қадамда тек өзгерістерді ескеру жеткілікті;
- полиморфизм бір басқару элементін параллельдеу немесе керісінше оны біріктіру жақсы болатын нүктені анықтау үшін.
Яғни, іс жүзінде біз бастапқы семантикалық критерийлер бойынша ақпаратты прогрессивті ұйымдастыру туралы айтып отырмыз: «маңызды / маңызды емес», «кілт / мәліметтер», «ата-ана / бала», «жалғыз / көпше». Прогрессия, атап айтқанда, соңғы кезеңде жалпы процесті жабатын егжей-тегжейдің келесі деңгейіне өтуге мүмкіндік береді. Қарапайым адам тілі тұтастай алғанда объектінің оның атауы түріндегі бейнеленуін инкапсуляциялаудан бастап және сөзді бейнелі мағынада қолдану полиморфизмімен аяқталатын ОББ идеологиясын көрсетеді, ол ақыр соңында дамиды. объектінің атауы арқылы толыққанды класстық ұғымға бейнелеу.
Мәліметтерді абстракциялау
Абстракция маңызды ақпаратты бөлектеуді және маңызды емес ақпаратты қараудан шығаруды білдіреді. ОББ бағдарламаның қалған бөлігіне қолжетімді нысанның ең маңызды сипаттамаларының жиынтығын білдіретін деректер абстракциясын ғана қарастырады (көбінесе жай ғана «абстракция» деп аталады) .
Инкапсуляция
Инкапсуляция - бұл сыныпта олармен жұмыс істейтін деректер мен әдістерді біріктіруге мүмкіндік беретін жүйе қасиеті. Кейбір тілдер (мысалы, C++, Java немесе Ruby) инкапсуляцияны жасырумен теңестіреді, бірақ басқалары (Smalltalk, Eiffel, OCaml) бұл ұғымдарды ажыратады.
Мұрагерлік
Мұрагерлік - ішінара немесе толығымен қарызға алынған функционалдығы бар бар сыныпқа негізделген жаңа классты сипаттауға мүмкіндік беретін жүйенің қасиеті. Мұра алатын сынып негізгі, ата-ана немесе суперкласс деп аталады. Жаңа класс - ұрпақ, мұрагер, еншілес немесе туынды сынып.
Ішкі полиморфизм
Ішкі түрдегі полиморфизм (ОББ-та жай ғана «полиморфизм» деп аталады) - жүйенің қасиеті, ол бірдей интерфейсі бар объектілерді нысанның түрі мен ішкі құрылымы туралы ақпаратсыз пайдалануға мүмкіндік береді. ОББ-та полиморфизмнің тағы бір түрі - параметрлік - жалпы бағдарламалау деп аталады.
Класс
Класс - бұл «өрістердің» (неғұрлым қарапайым түрдегі айнымалылар) және «әдістердің» (осы өрістермен жұмыс істеу функциялары) тақырыптық біртұтас жиынтығынан тұратын әмбебап, күрделі деректер түрі, яғни ол ақпараттық нысан үлгісі болып табылады. өз мазмұнын (өріс мәндерін) басқаруға арналған ішкі және сыртқы интерфейстер. Атап айтқанда, бір немесе бірнеше жиі екі жұптастырылған әдістердің арнайы блоктары сыныптарда кеңінен қолданылады, олар өріске тікелей қол жеткізуді имитациялайтын белгілі бір өріспен (мәнді тағайындау және оқу интерфейсі, гетер-сетер) элементарлық операцияларға жауап береді.
Объект
Класс данасы жасалғанда пайда болатын есептеу жүйесінің мекенжай кеңістігіндегі нысан (мысалы, компиляция нәтижелерін іске қосқаннан кейін және орындау үшін бастапқы кодты байланыстырғаннан кейін) .
1. 2 ОББ кіші типтерінің классификациясы
Лука Карделли және Мартин Абади ОББ үшін теориялық негіздеуді және осы негіздемеге негізделген классификацияны жасады. Олар анықтаған ұғымдар мен категориялар барлық ОББ тілдерінде бірге кездеспейтінін, көптеген тілдер тек теорияның ішкі жиындарын, ал кейде одан ерекше ауытқуларды қолдайтынын атап өтеді.
Негізгі ұғымдар:
- типті айнымалыларды сандық анықтау (әмбебап, экзистенциалды, шектеулі) ;
- subtyping (ағыл. subtyping - «супертип-субтип» қатынастары) ;
- қосу (ағылш. subsumption - Барбара Лисковтың ауыстыру принципін қараңыз) - қосалқы типтеудің ерекше жағдайы - жазбалардағы қосалқы типті қараңыз;
- объект;
- объект түрі (шын мәнінде, «жазбаның» ерекше нысаны, оның өрістері бірінші класты функцияларды қамтиды) ;
- класс
Класс абстрактілі әрекетті сипаттайды. Нысан түрлері әртүрлі жеке өрістер мен әдістерді қосу арқылы сыныптың үстіне құрастырылады. Объектіні (яғни, дәстүрлі түрде «сынып данасы» деп аталатын нысан түрінің мәні) бастапқы параметрлер негізінде конструктор жасайды.
2. ОББ анықтамасы және оның негізгі ұғымдары
ОББ орталығында объект ұғымы орналасқан. Нысан - бұл хабарламалар жіберілетін және өз деректерін пайдаланып оларға жауап бере алатын нысан. Объект - бұл сыныптың данасы. Нысанның деректері бағдарламаның қалған бөлігінен жасырылады. Инкапсуляция жасыруды қамтиды .
Инкапсуляцияның болуы бағдарламалау тілінің объективтілігі үшін жеткілікті, бірақ әлі оның объектіге бағдарлануын білдірмейді - бұл мұраның болуын талап етеді.
Бірақ тіпті инкапсуляция мен мұрагерліктің болуы бағдарламалау тілін ОББ тұрғысынан толығымен объектілі-бағдарланған етіп жасамайды. ОББ негізгі артықшылықтары бағдарламалау тілі ішкі типті полиморфизмді жүзеге асырғанда ғана пайда болады - ортақ интерфейс болған жағдайда әртүрлі іске асырылуы бар объектілерді біркелкі өңдеу мүмкіндігі.
2. 1 Анықтау күрделілігі
ОББ қырық жылдан астам тарихы бар, бірақ соған қарамастан, әлі күнге дейін бұл технологияның нақты, жалпы қабылданған анықтамасы жоқ . Бірінші объектілік тілдер мен жүйелерде белгіленген негізгі принциптер көптеген кейінгі енгізулермен айтарлықтай өзгерістерге және толықтыруларға ұшырады. Сонымен қатар, шамамен 1980 жылдардың ортасынан бастап «объектіге бағытталған» термині сәнге айналды, нәтижесінде «құрылымдық» терминімен (құрылымдық бағдарламалаудың таралуынан кейін сәнге айналған) дәл солай болды. технология) - ол кез келген жаңа әзірлемелерді тартымды ету үшін жасанды түрде «байланысты» болды. Бьорн Штроуструп 1988 жылы бір нәрсенің «объектіге бағдарлануының» негіздемесі көп жағдайда дұрыс емес силлогизмге дейін қайнататынын жазды: «Х жақсы. Объектіні бағдарлау жақсы. Демек, X объектіге бағытталған».
2. 2 Ұғымдары
ОББ-да сыныптың жеке тұжырымдамасының пайда болуы, әрине, ұқсас мінез-құлықтағы көптеген нысандарға ие болу ниетінен туындайды. ОББ класы - бұл бағдарламашы жасаған таза дерексіз деректер түрі. Осы тұрғыдан алғанда, объектілер берілген дерексіз түрдегі мәндер болып табылады, ал сынып анықтамасы мәндердің ішкі құрылымын және осы мәндер бойынша орындалатын операциялар жиынтығын көрсетеді. Класс иерархиясының (демек, мұрагерлік) қалауы кодты қайта пайдалануға қойылатын талаптардан туындайды - егер бірнеше сыныптардың мінез-құлқы ұқсас болса, олардың сипаттамасын қайталаудың мағынасы жоқ, жалпы бөлікті жалпы ата-аналық сыныпқа бөлген дұрыс және осы сыныптардың өздерін сипаттауда әр түрлі элементтерді ғана қалдырыңыз.
Хабарлардың бір түрін өңдей алатын әртүрлі кластардың объектілерін ортақ пайдалану қажеттілігі полиморфизмді қолдауды талап етеді - әртүрлі объектілерді бір типті айнымалыларға жазу мүмкіндігі. Мұндай жағдайларда хабарламаны жіберетін объект адресаттың қай класқа жататынын нақты білмеуі мүмкін және әртүрлі кластағы объектілерді қамтитын бір типті айнымалыларға жіберілген бірдей хабарламалар басқа реакция тудырады.
3. Әртүрлі ОББ әдістемелері
Компоненттік бағдарламалау - ОББ әзірлеудің келесі кезеңі; прототиптік және сыныпқа бағытталған бағдарламалау - бұл біріктіруге болатын, өзіндік артықшылықтары мен кемшіліктері бар бағдарламаны құрудың әртүрлі тәсілдері.
- Компоненттік-бағдарланған бағдарламалау - бұл ОББ бойынша «қосымша» түрі, ұзақ қызмет ету мерзімі бар үлкен дамып келе жатқан бағдарламалық жүйелерді құруға бағытталған ережелер мен шектеулер жиынтығы. Бұл әдістемедегі бағдарламалық жүйе жақсы анықталған интерфейстері бар компоненттер жиынтығы болып табылады. Қолданыстағы жүйеге өзгертулер бұрын барларға қосымша немесе олардың орнына жаңа құрамдастарды жасау арқылы жүзеге асырылады. Бұрын жасалғандар негізінде жаңа құрамдастарды жасау кезінде іске асыру мұрасын пайдалануға тыйым салынады - жаңа құрамдас тек негізгінің интерфейстерін иелене алады. Осылайша, компонентті бағдарламалау базалық сыныптың сынғыштық мәселесін айналып өтеді.
- Прототип - бұл кескіні мен ұқсастығы бойынша басқа объектілер жасалған объект үлгісі. Көшіру нысандары прототиптегі өзгерістерді автоматты түрде мұраға алу арқылы негізгі нысанға қатынасын сақтай алады; бұл мүмкіндік белгілі бір тілде анықталған.
- Классқа бағытталған бағдарламалау - деректер мен мінез-құлық ажырамас байланыста болатын деректерге бағытталған бағдарламалау. Деректер мен мінез-құлық бірге класты құрайды. Тиісінше, «класс» ұғымына негізделген тілдерде барлық объектілер екі негізгі түрге бөлінеді - кластар мен инстанциялар. Класс осы сыныптың барлық даналары үшін бірдей құрылым мен функционалдылықты (мінез-құлқын) анықтайды. Дана деректер тасымалдаушысы болып табылады, яғни оның класс көрсеткен мінез-құлыққа сәйкес өзгеретін күйі бар. Классқа бағытталған тілдерде жаңа данасы класс конструкторын шақыру арқылы жасалады (мүмкін параметрлер жиынтығымен) . Нәтижедегі данада оның класы арқылы қатаң кодталған құрылым мен мінез-құлық бар.
4. Объектілік бағдарламалардың орындалуы
Греди Буч объектіге бағытталған құралдарды пайдалану салдарынан бағдарламалардың өнімділігінің төмендеуінің келесі себептерін атап көрсетеді:
Динамикалық әдіс байланыстыру
Объектілердің полиморфты мінез-құлқын қамтамасыз ету бағдарлама шақыратын әдістерді (яғни қандай нақты әдіс шақырылатынын анықтау үшін) компиляция сатысында емес, бағдарламаны орындау кезінде байланыстыру қажеттілігіне әкеледі, бұл қосымша уақытты қажет етеді. Сонымен қатар, динамикалық байланыстыру қоңыраулардың 20% -дан аспауы үшін қажет, бірақ кейбір ОББ тілдері оны үнемі пайдаланады.
Абстракцияның елеулі тереңдігі
ОББ әзірлеу көбіне «қабатты» қолданбаларды құруға әкеледі, мұнда нысанның қажетті әрекетті орындауы төменгі деңгейдегі объектілерге көптеген шақыруларға дейін азаяды. Мұндай қолданбада, әрине, өнімділікке әсер ететін әдіс шақырулары мен әдіс қайтарулары көп.
Мұрагерлік кодты бұлдыратады
Әдетте бағдарлама тікелей пайдаланатын мұра иерархиясының «соңғы» кластарына қатысты код тек осы сыныптардың өзінде ғана емес, олардың ата-тек кластарында да орналасады. Бір класқа жататын әдістер шын мәнінде әртүрлі сыныптарда сипатталады. Бұл екі тітіркендіргіш нәрсеге әкеледі:
Аудару жылдамдығы төмендейді, өйткені байланыстырушы иерархияның барлық сыныптарының сипаттамаларын жүктеуі керек.
Бет жадысы бар жүйеде бағдарламаның өнімділігі төмендейді - бір кластың әдістері физикалық түрде кодтың әртүрлі орындарында, бір-бірінен алыс орналасқандықтан, мұраланған әдістерге белсенді түрде қол жеткізетін бағдарлама фрагменттері жұмыс істегенде, жүйе орындауға мәжбүр болады. бетті жиі ауыстыру.
Инкапсуляция деректерге қол жеткізу жылдамдығын азайтады
Класс өрістеріне сырттан тікелей кіруге тыйым салу қол жеткізу әдістерін құру және пайдалану қажеттілігіне әкеледі. Ал қол жеткізу әдістерін жазу, құрастыру және орындау қосымша шығындармен байланысты.
Объектілерді динамикалық құру және жою
Динамикалық түрде жасалған нысандар әдетте үймеде бөлінеді, бұл оларды стекке орналастыруға қарағанда тиімдірек және компиляция уақытында олар үшін жадты статикалық түрде бөлу.
5. Объектіге бағытталған тілдер
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz