Общая часть (часть 2) (2015) (by Кибитова) (1161598), страница 38
Текст из файла (страница 38)
Краткий обзор основныхпарадигм программирования2РУ →2РУ →D2 D 22 две основные2Таким образом, можно выделитьсущности процесса об................................................работки информации: код, как совокупность инструкций, и данные. ВсеРУ N →технологиейDNпрограммы в соответствии с выбраннойпрограммированияN → DNРУ N РУ→DNконцептуально организованы вокруг своего кодаили вокруг своих данных.Здесь D1 ,основныеD2 ,...,DN —выполняемыев случаеистинностисоРассмотримнаN действия,сегодняшнийдень парадигмыпрограммиро— действия,выполняемыев случаеистинности1, DЗдесьЗдесьD1 , D2D,...,D2N,...,—Dдействия,выполняемыев случаеистинностисо- сования:ответствующихразрешающихусловийРУ1РУ, РУ,2РУ,..., РУN .ответствующихразрешающихусловий12 ,..., РУ N .ответствующихразрешающихусловийРУ1 , РУ2 ,..., РУ N .1.
Процессно-ориентированнаяпарадигма,при которойпроверкепрограммаВыполнениепрограммызаключаетсяв циклическойразреВыполнениепрограммызаключаетсяв циклическойпроверкепредставляетсобойрядпоследовательновыполняемыхопераций— разреВыполнениепрограммызаключаетсявциклическойпроверкеразрешающихусловийивыполнениядействий,соответствующихразрешающимшающихусловийи выполнениясоответствующихразрешающиммодельфон-Неймана.Припоследних.этом действий,код воздействуетна данные.шающихусловийи выполнениядействий,соответствующихразрешающимусловиям,в случаеистинностиусловиям,вслучаеистинностипоследних.Языки,реализующиеэтупоследних.парадигму, называются процедурнымиусловиям,в случаеистинностиПримеромязыкалогическогопрограммированияявляетсяязыкилиимперативными.Такимиязыкамиявляются, например,C,ПримеромлогическогопрограммированияявляетсяПримеромязыкаязыкалогическогопрограммированияявляетсяязык языкPROLOG.Pascal и др.PROLOG.PROLOG.Структурапрограммыприприлогическомпрограммированииконцепту2. Объектно-ориентированнаяпарадигма,прикоторой программаСтруктурапрограммылогическомпрограммированииконцептуСтруктурапрограммыприлогическомпрограммированииконцептуальносвязанастеоретическойконцепциейнормальныхалгоритмовМаррассматриваетсякаксовокупностьфрагментовкода,обрабатыальносвязанас теоретическойконцепциейнормальныхалгоритмовМаральносвязанас теоретическойконцепциейнормальныхалгоритмовМаркова,представляющейалгоритмпреобразованияинформацииввидесововающихотдельные совокупностиданных — объекты.Эти объектыкова,представляющейалгоритмпреобразованияинформацииввидекова,представляющейалгоритм преобразования информации в виде сово-совокупностиподстановок:взаимодействуютдруг с другом посредством так называемых инкупностиподстановок:купностиподстановок:терфейсов.
При этом данныедоступом к коду.T управляют→T12 T12 T11 11→T11T12→При повышении сложности Tалгоритмапроцессно-ориентированная→ T22 T22T21 21→T21T22→парадигма сталкивается с существеннымипроблемами.Переход к объект...ным принципам программирования ..........позволяетзначительноулучшить внут..........................реннюю организацию программы, в результате чего повышается произвоT 1 T→ T→дительность при разработке программныхкомплексов.NT1 N 2TN 2T N→N1N2Операторыс разрешающимиусловиямии подстановкипросматриваОператорыс разрешающимиусловиямиподстановкипросматриваНарядус двумявышеизложеннымиосновнымивинастоящеевремяпаОператорыс разрешающимиусловиямии подстановкипросматриваютсяциклическидообнаружениязавершающегоусловия.ютсяциклическидообнаружениязавершающегоусловия.радигмамипрограммированияиспользуютсяеще двепарадигмы:ются циклическидо обнаружениязавершающегоусловия.ВданномкурсерассматриваетсяпарадигмаООП.В данномрассматриваетсяпарадигма1.
ВАппликативнаяилифункциональнаяпарадигма.Основная идеяданномкурсекурсерассматриваетсяпарадигмаООП.ООП.данного подхода заключается в формализованном определениифункции, которую выполняет программа. Таким образом, вместо ПриПрисозданиипрограммногокомплексанеобходиморазработатьопреПрисозданиисозданиипрограммногопрограммногокомплексакомплексанеобходимонеобходиморазработатьразработатьопреопределенныеделенныеабстракции.деленныеабстракции.абстракции.1.2.Основные принципы ООППример:Пример:Пример:Задачазанятий.Задачасоставлениярасписаниязанятий.ЦентральнойидеейООП расписанияявляетсяреализацияЗадачасоставлениясоставлениярасписаниязанятий.понятия «абстракция». Смыслабстракциизаключаетсяв том, студент,что сущностьпроизвольнойсложностиНеобходимыеНеобходимыеабстракции:курслекций,преподаватель,ауНеобходимыеабстракции:абстракции:студент,студент,курскурслекций,лекций,преподаватель,преподаватель,ауауможнорассматривать,атакжепроизводитьопределенныедействиянадней,дитория.дитория.дитория.как над единым целым, не вдаваясь в детали внутреннего построенияОперации:Операции:Операции:и функционирования.—студента——ОпределитьОпределитьстудентагруппуОпределитьстудентавввгруппугруппуПрисоздании программногокомплекса необходимо разработать опре—Назначитьаудиториюдлягруппы—Назначитьаудиториюдлягруппы—Назначитьаудиториюдлягруппыделенные абстракции.———..
.. .. .. .. .. .. .. .. .. . Пример:ОднимОднимизизосновныхосновныхспособовсозданияабстракцииявляетсяиспользоОднимизосновныхспособовспособовсозданиясозданияабстракцииабстракцииявляетсяявляетсяиспользоиспользованиеконцепциииерархическойклассификации.Еесутьзаключаетсяваниеконцепциииерархическойсоставлениярасписанияклассификации.занятий.ваниеЗадачаконцепциииерархическойклассификации. ЕеЕе сутьсуть заключаетсязаключаетсявввтом,чтонапростыефрагменты.том,чтосложныесистемыразбиваютсяна болееболеепростыефрагменты.том,чтосложныесложныесистемысистемыразбиваютсяразбиваютсяболеепростыефрагменты. ауНеобходимыеабстракции:студент, накурслекций,преподаватель, ПрактическиПрактическивсесложныесистемыиерархичны,уровниихиерархиидитория.Практическивсевсесложныесложныесистемысистемыиерархичны,иерархичны,иииуровниуровниихихиерархиииерархииотражаютразличныеотражаютразличныеуровниабстракции.Длякаждойконкретнойзадачиотражаютразличныеуровниуровниабстракции.абстракции.ДляДлякаждойкаждойконкретнойконкретнойзадачизадачиОперации:рассматриваетсясоответствующийуровень.Выборнизшегоуровнярассматриваетсяабстрассматривается соответствующийсоответствующий уровень.уровень.
ВыборВыбор низшегонизшего уровняуровняабстабст— Определитьстудентавгруппуракциидостаточнопроизволен.Выбранныйуровеньводномслучаеракциидостаточнопроизволен.Выбранныйуровеньводномслучаеракции достаточно произволен. Выбранный уровень в одном случаевввкачественизшегоуровняоказаться— Назначитьаудиториюдля группыкачественизшегоуровняможетоказатьсяуровнемдостаточновысокойкачественизшегоуровняможетможетоказатьсяуровнемуровнемдостаточнодостаточновысокойвысокойабстракциивдругомпроекте.абстракциивдругомпроекте.абстракции— . .
. . .в.другом. . . . проекте.Различаюттиповуюиерархиюиииструктурнуюиерархию,которыедаРазличаюттиповуюиерархиюструктурнуюиерархию,которыедаРазличаюттиповуюспособовиерархиюструктурнуюиерархию,которыедаОднимиз основныхсозданияабстракцииявляетсяиспользолеемыбудемназыватьсоответственноструктуройклассовиструктуройлеемыбудемназыватьсоответственноструктуройклассовиструктуройлее мыконцепциибудем называтьсоответственноструктурой классовструктуройваниеиерархическойклассификации.Ее суть изаключаетсяобъектов.объектов.вобъектов.том, что сложные системы разбиваются на более простые фрагменты.ВоязыкахреалиВовсехобъектно-ориентированныхязыкахпрограммированияреалиПрактическивсе сложные системы иерархичны,и уровни их иерархииВовсехвсехобъектно-ориентированныхобъектно-ориентированныхязыкахпрограммированияпрограммированияреализованыследующиеосновныемеханизмы(постулаты)ООП:зованыследующиеосновныемеханизмы(постулаты)ООП:отражаютразличныеосновныеуровни абстракции.Для каждой ООП:конкретной задачизованы следующиемеханизмы (постулаты)—рассматриваетсясоответствующий уровень.
Выбор низшего уровня абст——инкапсуляция,инкапсуляция,инкапсуляция,ракциидостаточно произволен. Выбранный уровень в одном случае———наследование,наследование,наследование,в качественизшего уровня может оказаться уровнем достаточно высокой———полиморфизм.полиморфизм.полиморфизм.абстракции в другом проекте.Всеважныииииспользованияабстракций.Всеэтимеханизмыважны длядляразработкииспользованияабстракций.Всеэтиэтимеханизмымеханизмыдляразработкиразработкииспользованияабстракций.Различаюттиповую важныиерархиюи структурнуюиерархию, которыеда- 1)Инкапсуляция—механизм,связывающийвместекодиданные,1)1)будемИнкапсуляция—механизм,связывающийвместекодиданные,лее мыназыватьсоответственноструктуройклассовиструктуройИнкапсуляция — механизм, связывающий вместе код и данные,которымикоторымионманипулирует,одновременнозащищающийихототпроизпроизобъектов.которымиононманипулирует,манипулирует,иииодновременноодновременнозащищающийзащищающийихихотпроизвольногодоступасостороныдругогокода,внешнегопоотношениюкккрасвольногодоступасосостороныдругогокода,внешнегопоотношениюрасвольногодоступастороныдругогокода,внешнегопоотношениюрасВо всех объектно-ориентированныхязыкахконтролируетсяпрограммированияреалисматриваемому.Доступккодуиданнымжесткоинтерфейсматриваемому.Доступккодуиданнымжесткоконтролируетсяинтерфейсматриваемому.Доступк кодуи данным (постулаты)жестко контролируетсяинтерфейзованыследующиеосновныемеханизмыООП:сом.сом.сом.— инкапсуляция,ОсновойОсновойинкапсуляцииприООПявляетсякласс.ОсновойинкапсуляцииинкапсуляцииприприООПООПявляетсяявляетсякласс.класс.