Абстракция (информатика)

Абстракция (лат. abstractio «отвлечение»[1]) в программной инженерии и информатике — это:

  • Процесс удаления или обобщения физических, пространственных или временных деталей или характеристик[2] при изучении объектов или систем с целью сосредоточения внимания на более важных деталях;[3] он схож по своей природе с процессом обобщения;
  • Создание абстрактных понятий-объектов путем отражения общих особенностей или характеристик различных неабстрактных объектов или исследуемых систем,[3] а также результат процесса абстракции.

Абстракция вообще является основополагающим понятием в информатике и разработке программного обеспечения.[4] Процесс абстракции также можно называть моделированием, и он тесно связан с понятиями теории и дизайна.[5] Модели также можно считать видами абстракции, так как они обобщают аспекты реальности.

Абстракция в информатике тесно связана с абстракцией в математике из-за их общего акцента на создании абстракций в качестве объектов,[2] но также связана с понятиями абстракции из других областей, таких как искусство.[3]

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

  • применение типов данных для обеспечения абстракции данных для отделения их использования от рабочих представлений структур данных в программах;[6]
  • понятие процедур, функций или подпрограмм, которые представляют собой определенный способ реализации потока управления в программах;
  • правила, обычно называемые «абстракцией», которые обобщают выражения с использованием свободных и связанных переменных в различных версиях лямбда-исчисления;[7][8]
  • использование S-выражений в качестве абстракции структур данных и программ на языке программирования Lisp;[9]
  • процесс выведения общего поведения в абстрактные классы в объектно-ориентированных языках программирования.

Абстракция может выступать как инструмент уменьшения сложности систем, так как позволяет за скрыть детали реализации за аккуратно спроектированным интерфейсом или фасадом. Например, язык запросов к базам данных SQL абстрагирует от конкретной реализации хранения данных, параллельного многопользовательского доступа, восстановления после сбоев и других деталей, заложенных в системы управления базами данных[10]


В объектно-ориентированном программировании (ООП) термин «абстракция» используется как сокращение от «абстракция данных», но не следует путать последнее с абстрактным типом данных — в ООП под этим понимается наследование классов.

См. также

Примечания

🔥 Top keywords: Заглавная страницаЯндексДуров, Павел ВалерьевичСлужебная:ПоискYouTubeЛунин, Андрей АлексеевичПодносова, Ирина ЛеонидовнаВКонтактеФоллаут (телесериал)WildberriesTelegramРеал Мадрид (футбольный клуб)Богуславская, Зоя БорисовнаДуров, Валерий СемёновичРоссияXVideosСписок умерших в 2024 годуЧикатило, Андрей РомановичFallout (серия игр)Список игроков НХЛ, забросивших 500 и более шайбПопков, Михаил ВикторовичOzon17 апреляИльин, Иван АлександровичMail.ruСёгун (мини-сериал, 2024)Слово пацана. Кровь на асфальтеПутин, Владимир ВладимировичЛига чемпионов УЕФАГагарина, Елена ЮрьевнаБишимбаев, Куандык ВалихановичЛига чемпионов УЕФА 2023/2024Турнир претендентов по шахматам 2024Манчестер СитиMGM-140 ATACMSРоссийский миротворческий контингент в Нагорном КарабахеЗагоризонтный радиолокаторПинапВодительское удостоверение в Российской Федерации