Процесс удаления или обобщения физических, пространственных или временных деталей или характеристик
при изучении объектов или систем с целью сосредоточения внимания на более важных деталях;
он схож по своей природе с процессом
обобщения
;
Создание абстрактных
понятий
-объектов путем отражения общих особенностей или
характеристик
различных неабстрактных
объектов
или исследуемых систем,
а также результат процесса абстракции.
Абстракция в информатике тесно связана с
из-за их общего акцента на создании абстракций в качестве объектов,
но также связана с понятиями абстракции из других областей, таких как
искусство
.
Абстракции также могут относиться к объектам и системам реального мира, правилам
вычислительных систем
или правилам программирования, которые используют или реализуют особенности самой абстракции, например:
применение
типов данных
для обеспечения
абстракции данных
для отделения их использования от рабочих представлений структур данных в программах;
правила, обычно называемые «
абстракцией
», которые обобщают выражения с использованием свободных и связанных переменных в различных версиях
лямбда-исчисления
;
использование
S-выражений
в качестве абстракции структур данных и программ на языке программирования
Lisp
;
процесс выведения общего поведения в
абстрактные классы
в объектно-ориентированных языках программирования.
Абстракция может выступать как инструмент уменьшения
сложности
систем, так как позволяет за
скрыть
детали реализации за аккуратно спроектированным
интерфейсом
или
фасадом
. Например, язык запросов к базам данных
SQL
абстрагирует от конкретной реализации хранения данных,
параллельного
многопользовательского доступа, восстановления после сбоев и других деталей, заложенных в
системы управления базами данных
Локшина С. М.
Краткий словарь иностранных слов. — 7-е изд. — М.: «
Советская энциклопедия
», 1984. — 384 с. С. 10—11.
↑
Colburn, Timothy; Shute, Gary (5 June 2007). "Abstraction in Computer Science".
Minds and Machines
(англ.)
.
17
(2): 169—184.
doi
:
.
ISSN
.
S2CID
.
↑
Kramer, Jeff (1 April 2007). "Is abstraction the key to computing?".
Communications of the ACM
.
50
(4): 36—42.
doi
:
.
ISSN
.
S2CID
.
Ben-Ari, Mordechai (1 March 1998).
.
ACM SIGCSE Bulletin
.
30
(1): 257, 257—261.
doi
:
.
ISSN
.
Comer, D. E.; Gries, David; Mulder, Michael C.; Tucker, Allen; Turner, A. Joe; Young, Paul R. /Denning (1 January 1989). "Computing as a discipline".
Communications of the ACM
.
32
(1): 9—23.
doi
:
.
ISSN
.
S2CID
.
Liskov, Barbara (1 May 1988). "Keynote address – data abstraction and hierarchy".
ACM SIGPLAN Notices
. ACM.
23
: 17—34.
doi
:
.
ISBN
0897912667
.
S2CID
.
Barendregt, Hendrik Pieter.
The lambda calculus : its syntax and semantics. — Revised. — Amsterdam : North-Holland, 1984. —
ISBN 0444867481
.
Barendregt, Hendrik Pieter.
Lambda calculus with types. — Cambridge, UK : Cambridge University Press, 2013. —
ISBN 9780521766142
.
Newell, Allen.
Computer science as empirical inquiry: symbols and search / Allen Newell, Herbert A. Simon. — ACM, 1 January 2007. — P. 1975. —
ISBN 9781450310499
. —
doi
:
.
Мартин Клеппман.
Высоконагруженные приложения. Программирование, масштабирование, поддержка. — "Издательский дом ""Питер""", 2018. — P. 640. —
ISBN 9785446105120
.