~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 88D9A2524B1E32094A1D81154916F719__1698604080 ✰
Заголовок документа оригинал.:
✰ Abstraction principle (computer programming) - Wikipedia ✰
Заголовок документа перевод.:
✰ Принцип абстракции (компьютерное программирование) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Abstraction_principle_(programming) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/88/19/88d9a2524b1e32094a1d81154916f719.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/88/19/88d9a2524b1e32094a1d81154916f719__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 09:59:18 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 29 October 2023, at 21:28 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Принцип абстракции (компьютерное программирование) — Википедия Jump to content

Принцип абстракции (компьютерное программирование)

Из Википедии, бесплатной энциклопедии

В разработке программного обеспечения и теории языков программирования ( принцип абстракции или принцип абстракции ) — это базовое изречение , целью которого является уменьшение дублирования информации в программе (обычно с упором на дублирование кода ), когда это практически возможно, путем использования абстракций , предоставляемых язык программирования или библиотеки программного обеспечения . [1] Этот принцип иногда формулируется как рекомендация программисту, но иногда формулируется как требование языка программирования, при условии, что он сам понимает, почему желательно использовать абстракции. Истоки этого принципа неясны; его изобретали заново несколько раз, иногда под другим названием, с небольшими вариациями.

При прочтении в качестве рекомендаций программисту принцип абстракции можно обобщить как принцип « не повторяйся » (DRY), который рекомендует избегать дублирования информации в целом, а также избегать дублирования человеческих усилий, задействованных в программном обеспечении. процесс развития.

Принцип [ править ]

В качестве рекомендации программисту в формулировке Бенджамина Пирса в книге «Типы и языки программирования» (2002) принцип абстракции гласит (курсив в оригинале): [2]

Каждая значительная часть функциональности программы должна быть реализована только в одном месте исходного кода. Если сходные функции выполняются отдельными частями кода, обычно бывает полезно объединить их в один, абстрагируя различные части.

В качестве требования к языку программирования, сформулированного Дэвидом А. Шмидтом в книге « Структура типизированных языков программирования» (1994), принцип абстракции гласит: [3]

Могут быть названы фразы любого семантически значимого синтаксического класса.

История и варианты [ править ]

Принцип абстракции упоминается в нескольких книгах. Некоторые из них вместе с формулировкой, если она краткая, перечислены ниже.

  • Альфред Джон Коул, Рональд Моррисон (1982). Введение в программирование на S-алголе : «[Абстракция] применительно к проектированию языка заключается в определении всех семантически значимых синтаксических категорий в языке и разрешении абстракции над ними». [4]
  • Брюс Дж. МакЛеннан (1983) Принципы языков программирования: проектирование, оценка и реализация : «Избегайте необходимости формулировать что-то более одного раза; исключите повторяющийся шаблон». [5]
  • Джон Пирс (1998) Программирование и метапрограммирование в схеме : «Структура и функция должны быть независимыми». [6]

Этот принцип играет центральную роль в шаблонах проектирования , объектно-ориентированного программирования хотя в большинстве работ по этой теме этому принципу не дают названия. , В книге «Шаблоны проектирования» написанной «Бандой четырех», говорится: «Основное внимание здесь уделяется заключению варьирующейся концепции , которая является темой многих шаблонов проектирования». Другие авторы перефразировали это утверждение как «Найдите то, что меняется, и инкапсулируйте это». [7]

В этом столетии этот принцип был заново изобретен в экстремальном программировании под лозунгом «Один раз и только один раз». Определение этого принципа на первый взгляд было довольно лаконичным: «нет дублирующегося кода». [8] Позже это было доработано и применимо к другим проблемам разработки программного обеспечения: «Автоматизируйте каждый процесс, который стоит автоматизировать. Если вы обнаружите, что выполняете задачу много раз, напишите для нее сценарий». [9]

Последствия [ править ]

Принцип абстракции часто формулируется в контексте некоторого механизма, предназначенного для облегчения абстракции. Базовым механизмом абстракции управления является функция или подпрограмма . Абстракции данных включают различные формы полиморфизма типов . Более сложные механизмы, которые могут объединять абстракции данных и управления, включают в себя: абстрактные типы данных , включая классы , политипизм и т. д. Поиск более богатых абстракций, позволяющих уменьшить дублирование в сложных сценариях, является одной из движущих сил в исследованиях и проектировании языков программирования.

У неопытных программистов может возникнуть соблазн ввести в свою программу слишком много абстракции — абстракции, которая не будет использоваться более одного раза. [ нужна цитата ] Дополнительный принцип, который подчеркивает эту проблему, — « Вам это не понадобится » и, в более общем плане, принцип KISS .

Поскольку код обычно подлежит пересмотру, следование принципу абстракции может повлечь за собой рефакторинг кода. [ нужна цитата ] Усилия по переписыванию фрагмента кода, как правило, необходимо амортизировать с учетом предполагаемых будущих выгод от абстракции. Эмпирическое правило, управляющее этим, было разработано Мартином Фаулером и популяризировано как правило трех . В нем говорится, что если часть кода копируется более двух раз, т. е. в конечном итоге будет иметь три или более копий, то ее необходимо абстрагировать.

Обобщения [ править ]

« Не повторяйте себя », или «принцип DRY», — это обобщение, разработанное в контексте многоуровневых архитектур , где связанный код по необходимости дублируется в некоторой степени на разных уровнях, обычно на разных языках. С практической точки зрения, здесь рекомендуется полагаться на автоматизированные инструменты, такие как генераторы кода и преобразования данных, чтобы избежать повторения. [ нужна цитата ]

Интерфейсы аппаратного программирования [ править ]

Помимо оптимизации кода, иерархическое/рекурсивное значение уровня абстракции в программировании также относится к интерфейсам между аппаратными уровнями связи, также называемым «уровнями абстракции» и «уровнями абстракции». В этом случае уровень абстракции часто является синонимом интерфейса. Например, при изучении шелл-кода и интерфейса между языками более высокого и низкого уровня уровень абстракции меняется от команд операционной системы (например, в C) до вызовов и команд уровня регистров и схем (например, в ассемблере и двоичном коде). В данном примере границей или интерфейсом между уровнями абстракции является стек. [10]

Ссылки [ править ]

  1. ^ Мишра, Джибитеш (2011). Программная инженерия . Пирсон Образовательная Индия. ISBN  978-81-317-5869-4 .
  2. ^ Пирс, Бенджамин (2002). Типы и языки программирования . МТИ Пресс. п. 339. ИСБН  0-262-16209-1 .
  3. ^ Дэвид А. Шмидт, Структура типизированных языков программирования , MIT Press, 1994, ISBN   0-262-19349-3 , с. 32
  4. ^ Альфред Джон Коул, Рональд Моррисон, Введение в программирование с помощью S-algol , Архив CUP, 1982, ISBN   0-521-25001-3 , с. 150
  5. ^ Брюс Дж. МакЛеннан, Принципы языков программирования: проектирование, оценка и реализация , Холт, Райнхарт и Уинстон, 1983, с. 53
  6. ^ Джон Пирс, Программирование и метапрограммирование в схеме , Биркхойзер, 1998, ISBN   0-387-98320-1 , с. 40
  7. ^ Алан Шеллоуэй, Джеймс Тротт, Объяснение шаблонов проектирования: новый взгляд на объектно-ориентированное проектирование , Аддисон-Уэсли, 2002, ISBN   0-201-71594-5 , с. 115
  8. ^ Кент Бек, Объяснение экстремального программирования: примите перемены , 2-е издание, Аддисон-Уэсли, 2000, ISBN   0-201-61641-6 , с. 61
  9. ^ Chromatic, Карманное руководство по экстремальному программированию , О'Рейли, 2003 г., ISBN   0-596-00485-0
  10. ^ Козиол, Справочник шеллкодеров» , Wiley, 2004, стр. 10, ISBN   0-7645-4468-3
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 88D9A2524B1E32094A1D81154916F719__1698604080
URL1:https://en.wikipedia.org/wiki/Abstraction_principle_(programming)
Заголовок, (Title) документа по адресу, URL1:
Abstraction principle (computer programming) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)