Абстрагированием называется: АБСТРАГИРОВАНИЕ — это… Что такое АБСТРАГИРОВАНИЕ?

Содержание

АБСТРАГИРОВАНИЕ — это… Что такое АБСТРАГИРОВАНИЕ?



АБСТРАГИРОВАНИЕ
(англ. abstracting) — (в логике) мысленное выделение, вычленение некоторых элементов конкретного множества и отвлечение их от прочих элементов данного множества. В качестве исходного множества для А. может выступать множество свойств (предмета, группы предметов), множество предметов, множество процессов, множество событий и т. п. Напр., в общей психологии абстрагируют общие психологические свойства от индивидуально-психологических особенностей (см. Индивидуально-психологические различия). Психология в целом основана на А. психических свойств, психических процессов, психических состояний от многих др. свойств, процессов, состояний животных и человека. Предмет изучения любой науки, как и предмет любого исследования, м. б. представлен как целый ряд последовательных процессов А. от конкретной действительности. (Б. М.)

Большой психологический словарь. — М.: Прайм-ЕВРОЗНАК.
Под ред. Б.Г. Мещерякова, акад. В.П. Зинченко.
2003.

Синонимы:

Антонимы:

  • АБСТИНЕНТНЫЙ СИНДРОМ, АБСТИНЕНЦИЯ
  • АВЕРСИВНАЯ ТЕРАПИЯ

Смотреть что такое «АБСТРАГИРОВАНИЕ» в других словарях:

  • абстрагирование — см. абстракция 2 Словарь синонимов русского языка. Практический справочник. М.: Русский язык. З. Е. Александрова. 2011. абстрагирование сущ. • отвлечение …   Словарь синонимов

  • абстрагирование — — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN abstraction …   Справочник технического переводчика

  • Абстрагирование — Абстракция, или абстракт, (от лат. abstractio  «отвлечение», введённого Боэцием как перевод греческого термина, употреблявшегося Аристотелем) мысленное отвлечение, обособление от тех или иных сторон, свойств или связей предметов или явлений для… …   Википедия

  • абстрагирование — Конкретность мышления слабоумного ребенка означает, что каждая вещь и каждое событие получают для него свое значение, т.е. определенную ситуацию. Он не может выделить их как самостоятельные части независимо от ситуации. Поэтому абстрагирование, т …   Словарь Л.С. Выготского

  • абстрагирование — abstrahavimas statusas T sritis Kūno kultūra ir sportas apibrėžtis Sporto teorijoje – atsiejimas, atmetimas mintyse neesminių daiktų ypatybių, ryšių, trukdančių, apsunkinančių tiriamojo objekto esmės, svarbiausių požymių aiškinimą, nagrinėjimą.… …   Sporto terminų žodynas

  • Абстрагирование — ср. 1. процесс действия по несов. гл. абстрагировать, абстрагироваться 2. Результат такого действия. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 …   Современный толковый словарь русского языка Ефремовой

  • абстрагирование — абстрагирование, абстрагирования, абстрагирования, абстрагирований, абстрагированию, абстрагированиям, абстрагирование, абстрагирования, абстрагированием, абстрагированиями, абстрагировании, абстрагированиях (Источник: «Полная акцентуированная… …   Формы слов

  • абстрагирование — конкретизация …   Словарь антонимов

  • абстрагирование — абстраг ирование, я …   Русский орфографический словарь

  • абстрагирование — я; ср. к Абстрагировать и Абстрагироваться …   Энциклопедический словарь

Книги

  • Моделирование и философия, В. А. Штофф. Проблема моделирования — одна из важнейших методологических проблем, выдвинутых на передний план развитием ряда естественных наук XX в., в особенности физики, химии, кибернетики. В книге… Подробнее  Купить за 470 руб
  • Развитие математических способностей у дошкольников. Рабочая тетрадь для детей 6-7 лет. ФГОС ДО, Шевелев Константин Валерьевич. Рабочая тетрадь предназначена для детей 6-7 лет. В книге представлены упражнения по формированию и развитию приемов логических умственных действий (анализ, синтез, сравнение, обобщение,… Подробнее  Купить за 172 руб
  • Форма и цвет. Рабочая тетрадь с линейками-трафаретками для детей 4-7 лет, Колесникова Е.В.. Комплект рабочая тетрадь «Форма и цвет» и две линейки-трафаретки входят в методический комплект» Математические ступеньки» и предназначены для работы с детьми 4-7 лет как на занятиях по… Подробнее  Купить за 165 руб

Другие книги по запросу «АБСТРАГИРОВАНИЕ» >>

Причуды абстракций / Блог компании LLC Tik-Tok Coach / Хабр

За годы преподавания и коммерческой разработки я повстречал много студентов и разработчиков, которые не до конца понимают смысл слова абстракция. Из многочисленных попыток разъяснить смысл этого термина получилась настоящая статья. Что Вы найдете под катом:

  • Определение понятия абстракции и объяснение откуда оно взялось в ООП.
  • Объяснение на простых примерах, что такое барьер абстракции, побочный эффект абстракции.
  • Как получается хардкод.
Что такое абстракция?

Википедия определяет абстракцию и процесс абстрагирования следующим образом:
Абстра́кция (от лат. abstractio — отвлечение) — отвлечение в процессе познания от несущественных сторон, свойств, связей объекта (предмета или явления) с целью выделения их существенных, закономерных признаков; абстрагирование; теоретическое обобщение как результат такого отвлечения.

В европейской философии и логике абстрагирование трактуется как способ поэтапного продуцирования понятий, которые образуют всё более общие модели — иерархию абстракций. Наиболее развитой системой абстракций обладает математика. Степень отвлечённости обсуждаемого понятия называется уровнем абстракции. В зависимости от целей и задач, можно рассуждать об одном и том же объекте на разных уровнях абстракции.

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

Зачем нужна абстракция?

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

Если бы не фотография с высоты птичьего полета, можно ли было бы себе представить насколько правильно спроектирована Барселона? Кстати, про пример с шариковой ручкой, читать бы тоже не получилось — начертания одной и той же буквы на письме отличаются даже у одного человека.

Абстрактное мышление — это механизм, который позволяет нам перерабатывать и усваивать кучу новых сведений. Если бы не было абстракции, то единственный вариант для нас — это остаться очень примитивными существами.


В Бразилии живет племя небольшое племя индейцев Пираха. Представители этой народности обладают крайне скудным абстрактным мышлением. Их алфавит состоит из трех гласных и восьми согласных. У них нет слов, обозначающих цифры, вместо цифр у них два понятия — несколько и много. У них нет цветов — только понятия светлый и темный, времени и истории — они живут только сегодняшним днем и помнят только то. что помнит старейший из ныне живущих; нет — религии, ремесел, искусства. У них еще много чего нет в нашем привычном понимании. И это все потому, что не развито абстрактное мышление. Правда, справедливости ради, стоит отметить, что при этом они себя ощущают абсолютно счастливыми людьми!

Итак, абстрагирование нам нужно как способ познания и описания окружающего мира, для обмена информацией друг с другом. Абстракции позволяют провести декомпозицию предметной области на набор понятий и связей между ними.


На картинке изображен Legoland в Лондоне. Несмотря на то, что все предметы собраны из детского конструктора, мы без труда узнаем в них дома, окна, двери, городские кварталы, людей.

Барьеры и побочные эффекты абстракций

Чтобы понять ключевые свойства абстракций проведем аналогию с построением проекций на плоскость.

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

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

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

На самой первой картинке изображены две фигуры, собранные из щепок, так что при определенном освещении они отбрасывают «человеческие тени». Мне, например, кажется, что там один силуэт мужской, а другой — женский. Это тоже побочный эффект абстракций. Теперь мы можем классифицировать все фигуры по их тени.

Примеры абстракций












Сфера применения Абстракция Комментарий
Целые числа Число из кольца Zp, где p = 2^разрядность (8, 16, 32, 64 бита) Данная абстракция позволяет представить целые числа только из отрезка –p/2+1 до p/2. Побочный эффект – проблема переполнения.
Вещественные числа Числа с плавающей точкой Вещественных чисел несчетное число, а чисел с плавающей точкой — всего лишь конечное. Это значит, что несчетное количество вещественных чисел представлены одним числом с плавающей точкой. Побочный эффект – ошибка округления, из-за который два числа нельзя сравнивать с помощью операции сравнения, а лишь по модулю некоторого маленького epsilon |a-b| < epsilon => a == b, или a/b*1000 может сильно отличаться от a*1000/b. Появилась даже целая дисциплина в математике – численные методы, которая изучает как организовать вычисления с плавающей точкой так, чтобы результаты не сильно отличались от вычислений с вещественными числами.
Деньги Числа с плавающей точкой Погрешность округления чисел с плавающей точкой делает, если не невозможным их использование для финансовых операций, то, по крайней мере, сильно усложняет жизнь. В любом случае, я бы сначала подумал в сторону написания отдельного класса для денежных единиц.
Изображение Машинная графика Машинная графика развивается семимильными шагами, чтобы сделать изображение на экране компьютера все более реалистичным.
Программное обеспечение Процедура Процедура является базовым элементом декомпозиции в процедурном программировании. Побочный эффект — процедура жестко заданная последовательность команд, которую невозможно изменить без переписывания самой процедуры.
Программное обеспечение Класс О классах будем говорить ниже.
Предметная область Абстракция сущности и связи между сущностями Побочный эффект — отражает представление, заблуждения, предубеждения и т.д. о предметной области конкретного субъекта.
Бизнес-логика Процедура Как уже говорилось выше — побочный эффект процедуры — жесткая последовательность команд. Бизнес-логика же подвержена изменениям, как правило содержит много исключений, о которых пользователи обычно забывают рассказать. Попытка представить бизнес-операцию в виде процедуры часто делает терпит неудачу.
Программное обеспечение Поток для распараллеливания операций Многопоточное программирование получилось настолько сложным для восприятия, что немного людей в нем разбирается.
Квадрат — это прямоугольник, у которого все стороны равны. Класс квадрат нельзя наследовать от прямоугольника. Классы — это абстракции. У них есть свои собственные свойства, которые отличаются от математических объектов и которые делают невозможным наследование.
Классы

Гради Буч так определяет ООП:
Объектно-ориентированное программирование — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

В этом определении самый важный момент — это иерархия наследования. Потому что именно наследование отличает ООП от всех других методологий.

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

ООП, кстати, интересно еще хотя бы и тем, что это, пожалуй, последняя парадигма программирования на данный момент, которая поддерживается на аппаратном уровне.

Главный побочный эффект классов — они отражают опыт, стереотипы, предубеждения того программиста, который их написал. Отсюда следует, что разные люди получат разный набор классов для одной и той же задачи. Более того, один и тот же человек, решая одну и туже задачу, но в разные моменты времени, получит разный набор классов, просто потому что его жизненный опыт меняется.

Второй побочный эффект, который стоит отметить — чужой код всегда менее понятный, чем свой собственный.


Разберемся почему так происходит. Когда человек пишет код, для него естественнее двигаться снизу вверх — от более низкоуровневых компонент к более высокоуровневым. Сначала написали один класс, потом второй, который зависит от первого, затем третий, который зависти от первого и второго, четвертый — от третьего и т.д.

Когда же человек пытается понять чужой код, он как раз двигается наоборот — сверху вниз. То есть сначала понимает общую суть, затем разбивает на компоненты, потом пытается понять суть каждого компонента и т.д. Часто эти движения мысли снизу вверх и сверху вниз у разных людей не совпадают. Естественно, что изучающему чужой код было бы легче, если разбиение кода на компоненты совпадало с его собственными убеждениями, как надо делать. Если это не так, придется затрачивать определенные усилия, чтобы понять ход мыслей разработчика. Поэтому, когда кто-то говорит, что здесь «полный хардкод», но если я перепишу, то будет все проще и понятнее. Это всегда 100% правда… Но только для него, для остальных ценность переписывания уже не так очевидна.

Кстати, если ничего не предпринимать специально, то при разработке снизу вверх, код становится сильно связанным между собой, то есть не повторно используемым. Чтобы побороть этот эффект надо следовать принципу инверсии зависимостей (The Dependency Inversion Principle).

Проиллюстрируем как проявляется описанный побочный эффект на простом примере. Многие жители крупных городов закупаются в крупных супермаркетах. Предположим, что жена отправляет мужа за покупками и, чтобы он не забыл, как обычно, чего-нибудь, составляет список «для тех кто в танке».

Постараемся проследить ход ее мыслей:

— Так чего я сегодня буду готовить на ужин?

— Надо приготовить чего-нибудь вкусненькое, чтобы побаловать ребенка.

— Так, нужна будет мука, молоко.

— Кажется в миксере сели батарейки.

— Стоп! Ребенку нужны витамины. Морковь. Буду делать морковный сок. и мандарины. Скоро же Новый год!

— А хлеб дома есть? Нет, кажется, нет.Значит, надо купить!

— Еще надо купить масло.

— Забыла про ребенка — витамины. Купить яблоки.

— Чего-то ручка плохо пишет. Наверное скоро кончатся чернила. Надо купить!

— Так, ребенку надо купить сока.

— А еще игрушку — пусть порадуется.

— Картошка у нас есть на борщ? На борщ хватит, но на неделю нет. Значит тоже надо купить.

— Чуть не забыла учительница просила принести две тетради.

— К борщу нужна сметана.

— Вроде сахар кончился.

— Ребенок любит виноград.

— И еще надо купить бутилированной воды.

В итоге получаем следующий список:

  • мука
  • молоко
  • батарейки
  • морковь
  • мандарины
  • хлеб
  • масло
  • яблоки
  • ручка
  • сок
  • игрушка
  • картофель
  • тетради
  • сметана
  • сахар
  • виноград
  • вода

Когда приходит муж в магазин то, что он обнаруживает? Указанные в списке товары оказываются в разных частях магазина. Обычно список длинный, поэтому запомнить что-либо, что было уже куплено достаточно трудно. На это накладывается, что какие-то отделы временно закрыты — идет выгрузка товаров, какого-то товара нет в продаже, плюс толчея, зимняя одежда. Более опытные товарищи ходят с карандашом или ручкой с очень озабоченным видом и постоянно смотрят в свой список. Но, в итоге, все равно, что-нибудь да забудешь купить. По своему опыту могу сказать, что это «что-нибудь» окажется самым важным, из-за чего вообще и стоило ехать в магазин.

Какой список был бы удобен мужу? Тот, в котором все товары сгруппированы по отделам, отдельные группы идут в очередности, соответствующей порядку обхода магазина. Например, для магазина, в который хожу я было бы удобно сгруппировать товары следующим образом:

  • Батарейки
  • Детские тетради
  • Ручка
  • Вода
  • Сок
  • Сахар
  • Морковь
  • Апельсины
  • Яблоки
  • Виноград
  • Картофель
  • Масло
  • Хлеб
  • Молоко
  • Сметана
  • Мука
  • Детская игрушка

Еще одно важное наблюдение — невозможно по самим абстракциям определить насколько удачными они получились. Это можно сделать, только если мы попытаемся их использовать на практике. И тут уж выясняется, что одни абстракции лучше подходят для задачи, а другие — хуже. А если еще немного изменить исходные условия, то и прежний «хороший» набор абстракций уже может не работать. Например, второй список покупок из примера перестанет работать, если прийти с ним в другой магазин с иным порядком выкладки товаров. Он станет ничем не лучше, чем первый.

Отсюда вывод — невозможно придумать набор классов, который подойдет на все случаи жизни. В статье The Open-Closed Principle это называется стратегическая замкнутость.

Естественный вопрос, а как сразу создавать хорошие абстракции. Увы, но на этот счет нет точного ответа. Зато со временем выработался набор практик, который говорит, как надо поступать, и обещает, что в этом случае будет хороший результат. К таким практикам относится рефакторинг, стандарты кодирования, code review, объектная гимнастика и т.д. Цель данных практик — направить ход мыслей группы разработчиков в одном направлении, тогда шансов, что чужой код будет понятнее, станет больше. Отношение к каждой из практик у отдельно взятого человека зависит лишь от приобретенного им опыта использования практики. Часто слова «Это не работает» надо интерпретировать как «Я пробовал — у меня не получилось». Нет никаких объективных аргументов «ЗА», равно как и «ПРОТИВ».

Так зачем нужно тогда ООП?

Проведем параллели между естественным языком и ООП






естественный язык ООП
Слово класс
Правила Синтаксис
Жанр Архитектура
литературные приемы паттерны

Любые свои мысли человек выражает словами естественного языка. Есть два типа задач:

  1. Для решения надо хорошо знать сам язык. Например, чтобы написать Войну и Мир.
  2. Сложность не зависит от языка. Неважно сколько и какие языки Вы знаете. Это никак не помогает при решении. Например, теорема Ферма.

ООП — это инструмент, который создавался с прицелом на большие по размеру программы. Но, это всего лишь один из инструментов, который потребуется, чтобы написать крупный проект.

Меня всегда удивляют, статьи в стиле Почему я люблю X или Почему я не люблю X. Все прекрасно понимают, что X — инструмент. Ведь нет же таких статей про лопату. Хотя, кто знает, ведь ООП существует несколько десятилетий, а лопата несколько тысяч, и быть может где-нибудь в в каменном веке шли жестокие холивары на тему, что лучше лопатка мамонта или мотыга из камня?

Литература по теме

1. Гради Буч Объектно-ориентированный анализ и проектирование с примерами приложений на С++
Данная книга в представлении не нуждается. Одна из наиболее цитируемых книг по программированию.
2. Барбара Минто Принципы Пирамиды Минто.
Работая консультантом McKinsey Барбара Минто создала свой собственный метод написания аналитических документов, основанный.на том, как человек воспринимает информацию. В книге достаточно много места уделено принципам группировки и обобщения.
3. Роберт Мартин (Uncle Bob)
Роберт Мартин написал серию статей и книг про принципы ООП. Наиболее известные из них S.O.L.I..D. На русском языке вышла книжка Роберт Мартин Быстрая разработка программ. Принципы, примеры, практика, в которой описаны эти принципы. Но на мой взгляд про них лучше прочитать в статьях The Single Responsibility Principle, The Open-Closed Principle, The Liskov Substitution Principle, The Interface Segregation Principle, The Dependency Inversion Principle.

Кратко об абстракциях / Хабр

Бывает так что проект заходит в тупик, и дальнейшее его развитие становится невозможным. Не редко причиной такого провала становится неудачная архитектура, заложенная в начале разработки. Или приходится наблюдать споры о том какой из «двух стульев» лучше, а может даже участвовать и искренне не понимать, как оппонент может так думать!?

Тогда попробуем не много разобраться в абстракциях, откуда они берутся и что с ними делать.

Согласно Википедии Абстракция – это теоретическое обобщение как результат абстрагирования. В свою очередь абстрагирование – это отвлечение в процессе познания от несущественных сторон, свойств, связей объекта (предмета или явления) с целью выделения их существенных, закономерных признаков.

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

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

Абстракции в сознании

Кроме призмы восприятия, наши модели подвергаются ещё одному искажению: реальные сущности чрезвычайно сложны и имеют разные аспекты и параметры. При размышлении или разговоре о чём-то, всегда существует контекст, в котором существует модель. Причём иногда бывает так, что у собеседников этот контекст разный. И в довершение, наличие или отсутствие опыта (глобального) приводит к ещё большему изменению наших моделей в соответствие с этим опытом. В итоге у двух разных людей может быть очень разное восприятие одних и тех же сущностей реального мира.

Выходит, что каждый человек постоянно имеет дело с абстракциями, осталось научиться их явно видеть и управлять. Можно выдвинуть тезис, что программный код — это симуляция мышления, основанная на формализованных абстракциях. Поэтому, на мой взгляд, разработка ПО — это один из лучших тренажёров для прокачки абстрактного мышления.

Абстракции в разработке

Программные интерфейсы — это, пожалуй, самая явная формализованная абстракция. Отсекается все лишнее и остаётся только «что оно делает» без «как оно делает».

Реализуя интерфейс, мы создаём более реальную модель поведения или взаимодействия, которая уже может ответить на вопрос «как». Комбинируя интерфейсы между собой, мы можем создать общую архитектуру кода. При должном умении и сноровке архитектура, созданная таким образом, в будущем будет сохранять свою структуру. В то время как реализации составных интерфейсов могут изменяться до неузнаваемости.

Такая архитектура упрощает некоторые моменты в работе. Модульное тестирование сводится к написанию тестовых реализаций «соседних» абстракций и тестовых методов, сравнивающих вход и выход. Изоляция модулей позволяет безопасно проводить рефакторинг. Более того, если рефакторинг прошёл неудачно и всё сломалось, то откатывать придётся всего один модуль. Достаточно абстрагированный модуль может использоваться для схожих, но разных задач. При этом одна плохая реализация не будет влиять на работу других – изоляция говнокода.

Пример

Есть модуль для обработки входных данных, есть несколько вариантов их получения: из базы данных; из файла; по http. Решить эту задачу можно, выделив общий интерфейс для получения данных и сделав по реализации для каждого канала и канал данных для тестирования. Теперь один обработчик с помощью параметра «канал данных» может решать несколько схожих задач. А если выяснится, что одна из реализаций кривая, то её можно будет переделать на затрагивая другие модули.

Абстракций больше не надо

Не бывает идеальных решений, так же и с абстракциями не всё так гладко. Во-первых, абстракции субъективны, они могут вызывать споры о том, где начинается одна и начинается другая. Также существует проблема чрезмерного абстрагирования, когда под каждый вид и тональность чиха создаётся своя абстракция. Во-вторых, это подход повышает сложность кода, добавляя новые сущности, и новые уровни иерархии. Я уверен, что найдутся ещё недостатки этого подхода, часть из них будет субъективными, часть ситуационной, но будут и

Во всём должен быть баланс. Для себя я вывел следующую памятку.

  • Если пишется большой и важный модуль – лучше расцеплять его.
  • Если модуль используется много и/или в разных местах – лучше скрыть его за абстракцией.
  • Если модуль должен распространяться как отдельная библиотека – лучше использовать абстракции.
  • Если возможно изменение алгоритмов или путей взаимодействия – лучше реализовывать взаимодействие абстракций.
  • Если класс используется в другом классе и нигде больше – можно подумать об их объединении или оставить как есть.
  • Если это маленькая «одноразовая» задача – лучше не заморачиваться с её усложнением.
  • Если это модуль, который скорее всего никогда не будет меняться – можно вывести его интерфейс и лучше оставить внутри всё как есть.

Итого

Абстракции — это инструмент, встроенный в наше сознание, как и любой другой они имеют свои плюсы и минусы, но знание альтернатив только помогает находить лучший путь.

Что такое абстрагирование и как научиться абстрагироваться?

В жизни мы, бывает, слышим в той или иной ситуации: взгляни на вещи по-новому или абстрагируйся. А что это такое абстрагирование? Какое практическое значение в повседневной жизни имеет умение абстрагироваться? И как посмотреть на стандартную и вполне понятную ситуацию иначе? Как научиться абстрагироваться от человека, например, от мужа, коллег на работе, соседей? Попробуем разобраться.

Что такое абстрагирование?

Абстрагирование с латинского языка переводится как отвлечение. Но под этим понятием подразумевается не смена деятельности, а смена мышления – взгляд на привычные или незнакомые вещи под иным углом или с другой стороны. Слово абстрагироваться означает, что необходимо отойти от своей деятельности, чтобы беспристрастно понять ее, анализировать ее процессы и выявлять принципы.

Абстрагироваться — значит, в отпуске на берегу океана забыть про работу, быт и сосредоточиться на отдыхе

Мозг человека привык смотреть на вещи, ситуации, объединяя все имеющиеся у себя представление об этом объекте, не разделяя ее на составные части. Что такое абстрагирование? По определению психологии абстрагирование – это и есть отделение или даже отдаление одного составляющего от другого.

Для чего нужно умение абстрагироваться?

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

Умение абстрагироваться помогает выделить только важное, необходимое на этот момент, отбросив в сторону сопровождающую шелуху

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

Методы абстрагирования

  • Создаем шаблон. Любое свойство, характеристику объекта при тщательном рассмотрении, можно использовать как некий шаблон, образец. Это помогает при глобальных решениях и размышлениях. Данный образец станет неким подобием начальной точки, исходя из которой, рассматриваются иные свойства под другим углом.
  • Отождествляем. Рассматривая явление, ситуацию или вещь учитываешь только связывающие характеристики и свойства, отличительные же черты данного объекта не берутся во внимание.
  • Конкретизируем. Чтобы четко определить границы объекта и отделить его от всего другого, что схоже с ним или имеет обобщающие черты, фокусируйтесь на единственном определенном понятии, не учитывая остальные свойства, характеристики.
  • Группируем и обобщаем. В данном случае все внимание концентрируется как раз непосредственно на свойствах, которые характерны для определенного понятия. При такой систематизации создаются некие группы, независимые и отличающиеся как друг от друга, так и от других. Но, даже имея свои ключевые моменты, данные группы все же обладают схожими признаками и понятиями других подобных ему групп.

Абстрагирование похоже на медитацию: нужно отбросить всё лишнее и сконцентрироваться на чем-то одном

Учимся абстрагироваться

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

  • Попав в затруднительную ситуацию, человек теряется, мысли путаются, тяжело сконцентрироваться. И вы, наверняка, ни раз замечали, что спустя время до вас доходит, как лучше было поступить или сказать в тот момент. Дело в том, что вы спустя время, рассматриваете ситуацию со стороны. А чтобы вовремя суметь абстрагироваться в сложной ситуации, рассматривайте ее под таким углом, будто происходящее – происходит не с вами, а с другим человеком, или представьте, что вы смотрите фильм. Мысли встанут на свои места, и решение придет само.
  • Отключайтесь от внешних раздражителей. На деле это не так сложно. Представьте мешающие вам явление не как действие, которое можно прекратить, а в виде фонового шума, которое никуда не денется, и тогда мозг сам перестанет реагировать на них.
  • Всегда и во всех ситуациях выделяйте только важные моменты и аспекты. Для начала помечайте себе что-то в блокнотике, со временем вы научитесь систематизировать и классифицировать поток, и выделять основное мысленно, без записей.
  • Можно использовать таблицы и схемы, которые помогут систематизировать данные и научат выделять главное.
  • Чтобы сконцентрироваться на чем-то одном было проще, мысленно проговаривайте важный аспект или действие.
  • Научитесь ставить четкие и понятные цели. Это не должно быть что-то витиеватое или вокруг да около. Не думайте о способах достижения цели, лучше рассматривайте четко обозначенный итоговый результат, исходя от которого будет проще двигаться по направлению к желаемому.
  • Не выполняйте одновременно много задач и дел. Решайте проблемы по мере поступления, отделяйте важное от посредственного. Выполняйте любое действие последовательно.
  • Умение абстрагироваться заключается и в дисциплине, и четком режиме.

Знание, как абстрагироваться от ситуации поможет вам решить сложные дела за короткие сроки, видя суть самого вопроса.

Ниже предлагаем вам посмотреть интересное видео по теме: это русская версия видео «Abstract-ness» Академии Хана (некоммерческая образовательная организация, созданная в 2008 году выпускником MIT и Гарварда Салманом Ханом)

Абстракция — Карта знаний

  • Абстра́кция (лат. abstractio — отвлечение) — теоретическое обобщение как результат абстрагирования.

    Абстрагирование — отвлечение в процессе познания от несущественных сторон, свойств, связей объекта (предмета или явления) с целью выделения их существенных, закономерных признаков. Результат абстрагирования — абстрактные понятия, например: цвет, кривизна, красота и т. д.

    В европейской философии и логике абстрагирование трактуется как способ поэтапного продуцирования понятий, которые образуют всё более общие модели — иерархию абстракций. Наиболее развитой системой абстракций обладает математика. Степень отвлечённости обсуждаемого понятия называется уровнем абстракции. В зависимости от целей и задач, можно рассуждать об одном и том же объекте на разных уровнях абстракции.

Источник: Википедия

Связанные понятия

Абстра́ктный объе́кт — объект, созданный какой-либо абстракцией или при посредстве какой-либо абстракции; когнитивно представленный объект познания, репрезентирующий те или иные сущностные аспекты, свойства, отношения вещей и явлений окружающего мира. Абстрактные объекты делятся на реальные и идеальные, различающиеся постановкой и решением проблемы существования. Для реальных имеется её конструктивное решение; идеальные же выходят за пределы эффективной проверки (например, континуум). В философии…

Абстрактное мышление — один из видов человеческого мышления, который заключается в образовании абстрактных понятий и оперировании ими. При абстрактном мышлении человек выходит за рамки привычной системы координат и правил мировосприятия, абстрагируясь от внешней действительности и пытаясь сконцентрироваться исключительно на донесении-восприятии мысли или идеи. В таком виде мышления часто используются образы и символы как общеизвестные, так и такие, которые получают своё значение исходя только из…

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

Математическая абстракция — абстракция в математике, мысленное отвлечение. Типы абстрагирования, применяемых в математике: «чистое» отвлечение, идеализация и их различные вариации.

Но́эма (греч. νόημα — «мысль»; прил. «ноэматический») — мысленное представление о предмете, или, другими словами, предметное содержание мысли; представленность предмета в сознании. Понятие феноменологии Э. Гуссерля, означающее содержание переживания сознания, когда мы рассматриваем последнее как сопряженное с чем-то трансцендентным самому реальному составу переживания, то есть ноэзису.

Упоминания в литературе

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

Абстрактная картина мира может быть описана посредством самых общих понятий, не содержащих ничего конкретного. Эти понятия принято называть категориями. Самодвижение мира проявляется в виде единства и борьбы противоположностей (противоречий). Поэтому категории всегда парные и противоречивые. Например, непрерывность и дискретность, свобода и необходимость, закономерность и случайность, причина и следствие и т. д. Логическими рассуждениями из этого рода абстракций можно вывести только новые абстракции и ничего конкретного. Поэтому обосновать что-либо конкретное посредством абстрактных категорий невозможно.

Попытаемся теперь сделать некоторое обобщение всех рассмотренных подходов к проблеме смысла в зарубежной психологии личности. Сложность этой задачи обусловлена тем, что представления о смысле во всех рассмотренных подходах разрабатывались независимо друг от друга, если не считать некоторых отдельных эксплицитных связей и влияний: Левин – Толмен – Левин; Левин – Нюттен; Фрейд – Нюттен; Фрейд – Клейн – Петерфройнд; Келли – Магнуссон; Харре – Шоттер. Сравнительно недавно исследователи стали рефлексировать многозначность понятия «смысл». «С замечательной ясностью обнаружилось, что слово “смысл” (meaning) относится к такому количеству разных понятий, конструктов, функциональных систем, процессов и областей “опыта”, что требуется сноровка горной козы, чтобы скакать с одного уровня на другой» (Creelmcm, 1966, р. 209). Автор основанного на идее смыслообразования подхода к психотерапии М.Б.Карлсен характеризует смысл как «…процесс и идеал, структуру и последовательность, возможность и ограничение, достижение и намерение, существительное и глагол, формирующиеся и трансформирующиеся на протяжении всех стадий жизни взрослого человека» (Carlsen, 1988, р. 5). Она различает три взгляда на смысл: под углом зрения частей, процесса и целого, отмечая искусственность этого разделения, которое, однако, полезно для лучшего понимания. Основной характеристикой смысла является указание на его источник. В понятие смысла М.Б.Карлсен включает системы всех уровней абстракции, отмечая теснейшую связь смыслообразования с аффективными процессами. В общем, в это понятие входит почти все. «Смысл как существительное включает элементы конструктов, систем слов, когнитивные схемы, матрицы убеждений, ориентировочные механизмы, паттерны значимости… Предикативные качества смысла – процесс, движение, рост, намерение, эволюция личностных синергий, рост и развитие “от – к”… Таким образом, “смысл” есть одновременно смысл и осмысление, интенция и интендирование, существо и существование» (там же, р. 23).

Но и здесь речь, как всегда, не идет у Иванова о простой «бихевиористской» связи метафизического принципа с реальной языковой практикой. Если вернуться от уровня лингвистических абстракций к конкретным грамматическим формам «облачения» субъекта и предиката, то окажется, что наряду с отрицанием контрастности в области символических референтов и с одновременной оценкой принципа семантической контрастности как основного способа символической референции, Иванов тем не менее не мыслил в качестве адекватного способа такой референции простые ряды параллельных и парадоксально отождествляемых суждений, в которых субъект и предикат облекались бы в одинаковые грамматические формы, сопрягались бы связкой «есть» и «спокойно» бы при этом взаимообращались. Таков лишь фундаментальный, а значит и абстрактный принцип; на практике он может выражаться у Иванова в самых разнообразных формах.

Исследование языка ИСС К. Мартиндейл (см. п. 3.8 «Измерение состояния сознания» в его работе, включенной в данную хрестоматию) проводил с позиций психоаналитического подхода (хотя его теория сознания и ИСС интегрирует две парадигмы – психоаналитическую и когнитивно-психологическую). Рассматривая содержание языка как отражение процессов, происходящих в мышлении и сознании в целом, он предположил, что по данному содержанию можно судить о преобладании типа мышления, характерного для первичного или вторичного процессов, т. е. о степени регрессии сознания [10; 26]. Он составил список категорий и относящихся к ним слов, исходя из психоаналитических представлений о характеристиках мышления, которое специфично для первичного и для вторичного процессов. Характеристики этих двух типов мышления противоположны друг другу. Например, мышление вторичного процесса характеризуется абстрактностью (поэтому Мартиндейл выделяет категорию «Абстракция», которая проявляется в таких словах, как «знать», «мочь», «мысль»), опосредованным характером (категория «орудийное поведение», выражающаяся в словах «делать», «обнаруживать», «работать»), ориентацией во времени и т. д. Наоборот, мышление, характерное для первичного процесса, является образным, не выходящим на уровень абстракции (поэтому в речи много ссылок на ощущения), дезорганизованным, диффузным и неконтролируемым (этому соответствуют категории «диффузия», «хаос», «пассивность», «случайное движение» и др.), не предполагает ориентацию во времени (категория «безвременность», отражаемая словами «вечный», «навечно», «бессмертный») и др.

Связанные понятия (продолжение)

О́пытное знание (опыт) — совокупность знаний и навыков (умений), приобретённых в течение жизни, профессиональной деятельности, участия в исторических событиях и т. п.

Формирова́ние поня́тий (образование понятий) — усвоение или выработка человеком новых для него понятий на основе опыта.

Концептуализация — это процесс определения набора когнитивных признаков (в том числе — и категориальных) какого-либо явления реального или воображаемого мира, которые позволяют человеку хранить в сознании и пополнять новой информацией сколько-нибудь очерченное понятие и/или представление об этом явлении и отличать его от других феноменов. Этот фрагмент знания человека о мире в когнитивной лингвистике принято называть концептом, который когнитологами определяется как «дискретное образование, являющееся…

Сравнение в ряде социальных наук (психологии, социологии и др.) и в философии— 1) научно-философский метод, направленный на способ познания единичного, особенного и всеобщего; играет роль в познании движения и изменения вещей, а также в раскрытии причин отдельных явлений; является способом классификации и систематизации предметов и явлений, необходимой составляющей любого умозаключения, одним из средств доказательства 2) предмет исследования конкретных дисциплин (в логике, лингвистике, психологии…

Мышление — психический процесс моделирования закономерностей окружающего мира на основе аксиоматических положений. Однако в психологии существует множество других определений.

Понима́ние — универсальная операция мышления, связанная с усвоением нового содержания, включением его в систему устоявшихся идей и представлений.

Мышле́ние — это познавательная деятельность человека. Оно является опосредованным и обобщённым способом отражения действительности.

«Логические исследования» (нем. Logische Untersuchungen, 1900, 1901) — философское сочинение Э. Гуссерля. Хотя в «Логических исследованиях» ещё не развёрнуты все характерные для феноменологии темы, это — исходная для феноменологического движения работа, о которой сам Гуссерль сказал позднее, что она стала для него «произведением прорыва».

Абстрагирование — Гуманитарный портал





Абстрагирование — это мыслительная деятельность, направленная на получение абстракций — идеальных (не существующих в действительности) предметов, которыми могут быть как отдельно взятые представления, категории, понятия, теории и другие, так и их системы (см. Абстракция). Абстрагирование представляет собой одну из наиболее важных операций мышления (см. Мышление) и необходимое условие познания мира путём формирования «вторичных образов» действительности (которыми могут быть как отдельно взятые представления, категории, понятия, теории, модели и другие абстрактные сущности, так и их системы).

Абстрагирование — универсальный приём познания, без которого немыслимы как научное, так и обыденное познание. Вместе с тем, будучи широко представленным в человеческом познании вообще, он приобретает статус метода только в научно-познавательной деятельности, наряду с другими методами научного познания (см. Методы научного познания). В европейской философии, науке и логике абстрагирование трактуется как логическая операция поэтапного мысленного членения рассматриваемого объекта или явления, продуцирующая понятия, которые, в свою очередь, образуют всё более общие образы действительности. В методологии науки процесс абстрагирования понимается как теоретическое обобщение, образуемое в результате отвлечения от несущественных сторон рассматриваемого объекта или явления для выявления наиболее существенных его черт. Абстрагирование лежит в основе процессов обобщения, образования понятий и категоризации (см. Категоризация).

В процедуре абстрагирования очевидны две ипостаси процесса познания: первая отражает направленность внимания на то, что именно вычленяется; вторая — на то, от чего именно осуществляется отвлечение. Акцент на той или другой стороне указанного процесса (при их взаимодополнительности) часто приводит к полярным выводам относительно роли абстрагирования: либо оно рассматривается как значимый источник поступления знаний о мире, либо как процедура, приводящая к их искажению и обеднению. Уяснение того, какие именно из свойств предмета или явления являются для них «посторонними» — по сути главный вопрос оперирования с абстракциями.

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

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

  1. изолирующая абстракция соответствует цели вычленения и чёткой фиксации исследуемого явления;
  2. обобщающая абстракция соответствует цели получения общей картины явления;
  3. идеализация соответствует цели замещения реальной, эмпирически данной ситуации идеализированной схемой для упрощения изучаемой ситуации и более эффективного использования существующих методов и средств исследования.

Реализация процесса абстрагирования включает два типа операций:

  1. оценка возможности и целесообразности замещения;
  2. акт замещения.

Продуктами процесса абстрагирования являются соответствующим образом преобразованные представления об исследуемом объекте или явлении. Обоснование абстракции осуществляется как с точки зрения её правомерности (это достигается установлением несущественности отдельных явления), так и с точки зрения её целесообразности (которая определяется поставленной задачей).




Simple English Wikipedia, бесплатная энциклопедия

Abstraction хранит только самую важную информацию о чем-либо, чтобы упростить повторное использование.

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

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

Первые символы абстрактного мышления у людей восходят к ископаемым объектам, датируемым 50–100 тыс. Лет назад в Африке. [1] [2]

В философской терминологии абстракция — это мыслительный процесс, в котором идеи [3] отделены от объектов.

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

Например, красным может быть много разных вещей.Точно так же многие вещи находятся на поверхностях (как на рисунке , рисунок 1 , справа). Таким образом, свойство покраснение и отношение сидя являются абстракциями этих объектов. В частности, концептуальная диаграмма график 1 идентифицирует только три прямоугольника, два эллипса и четыре стрелки (и их шесть меток), тогда как рисунок 1 показывает гораздо больше графических деталей, с оценками подразумеваемых взаимосвязей, неявных на рисунке а не с девятью явными деталями на графике.

График 1 подробно описывает некоторые явные отношения между объектами диаграммы. Например, стрелка между агентом и CAT: Elsie показывает пример отношения is-, как и стрелка между местоположением и MAT . Стрелки между герундий SITTING и существительными agent и location выражают основную взаимосвязь на диаграмме; «агент СИДЕТСЯ на месте» ; Elsie является экземпляром CAT .

Хотя описание сидя на (диаграмма 1) более абстрактно, чем графическое изображение кошки, сидящей на циновке (рисунок 1), отделение абстрактных вещей от конкретных вещей несколько неоднозначно; эта двусмысленность или расплывчатость характерны для абстракции. Таким образом, такая простая вещь, как газета, может быть определена на шести уровнях, как в иллюстрации этой двусмысленности Дугласом Хофштадтером, с переходом от абстрактного к конкретному в Gödel, Escher, Bach (1979):

(1) публикация

(2) газета

(3) Хроники Сан-Франциско

(4) издание Летописи от 18 мая

(5) моя копия издания Хроники от 18 мая

(6) моя копия издания Хроника от 18 мая в том виде, в каком она была, когда я впервые поднял ее (в отличие от моей копии, которая была несколько дней спустя: в моем камине горит)

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

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

Создание экземпляра [изменить | изменить источник]

Вещи, которые не существуют в определенном месте и времени, часто считаются абстрактными. Напротив, экземпляры или члены такой абстрактной вещи могут существовать во многих разных местах и ​​в разные времена. Эти абстрактные вещи затем называются экземплярами умножения в смысле изображение 1 , изображение 2 и т. Д., Показанных выше.

Недостаточно, однако, определить абстрактных идей как те, которые могут быть реализованы, и определить абстракцию как движение в направлении, противоположном реализации.Это сделало бы понятия «кошка» и «телефон» абстрактными идеями, поскольку, несмотря на их различный внешний вид, конкретная кошка или конкретный телефон является экземпляром понятия «кошка» или понятия «телефон». Хотя понятия «кошка» и «телефон» являются абстракциями , они не являются абстрактными в смысле объектов на диаграмме выше.

Мы могли бы посмотреть на другие графики, в прогрессии от кошка до млекопитающее до животное , и увидеть, что животное более абстрактно, чем млекопитающее ; но, с другой стороны, млекопитающее — сложнее выразить идею, определенно в отношении сумчатых или монотремных .

Физическое состояние [изменить | изменить источник]

Физический объект (возможный референт понятия или слова) считается конкретным (не абстрактным), если это конкретный человек , который занимает определенное место и время.

Абстрактные вещи иногда определяют как те вещи, которые не существуют в действительности или существуют только как чувственные переживания, например красный цвет. Это определение, однако, страдает от трудности определения того, какие вещи реальны (т.е. какие вещи существуют на самом деле). Например, трудно согласиться с тем, являются ли такие концепции, как Бог , число три и добродетелью , реальными, абстрактными или и тем, и другим.

Подход к решению такой трудности состоит в использовании предикатов в качестве общего термина для определения того, являются ли вещи по-разному реальными, абстрактными, конкретными или относящимися к определенному свойству (например, хорошо ). В таком случае вопросы о свойствах вещей становятся суждениями о предикатах, которые предстоит оценить исследователю.В приведенном выше графике 1 графические взаимосвязи, такие как стрелки, соединяющие прямоугольники и эллипсы, могут обозначать предикаты. Различные уровни абстракции могут быть обозначены последовательностью стрелок, соединяющих прямоугольники или эллипсы в нескольких строках, где стрелки указывают от одной строки к другой, в серии других графиков, скажем, графика 2 и т. Д.

Абстракция в философии — это процесс (или, для некоторых, предполагаемый процесс) в формировании концепции признания некоторого набора общих черт у людей и на этой основе формирования концепции этой особенности.Понятие абстракции важно для понимания некоторых философских споров, окружающих эмпиризм и проблему универсалий. Это также недавно стало популярным в формальной логике при абстракции предикатов. Еще один философский инструмент для обсуждения абстракции — пространство мысли.

Онтологический статус [изменить | изменить источник]

То, как физические объекты, такие как камни и деревья, имеют как , отличается от того, как свойства абстрактных понятий или отношений имеют как .Например, способ существования конкретных, в частности людей, изображенных на рисунке , рисунок 1 , отличается от того, как существуют концепции, проиллюстрированные на рисунке , рисунок 1 . Это различие объясняет онтологическую полезность слова «абстрактный». Это слово применяется к свойствам и отношениям, чтобы обозначить тот факт, что, если они существуют, они не существуют в пространстве или времени, но их экземпляры могут существовать, потенциально, во многих разных местах и ​​в разные времена.

Возможно, что сбивает с толку, некоторые философские концепции относятся к тропам (экземплярам свойств) как к абстрактным частностям .Например, особая краснота конкретного яблока — это абстрактная особенность . Сродни квалиа и сумбебекос.

В лингвистике [изменить | изменить источник]

Если абстрактное понятие, такое как «общество» или «технология», рассматривается как конкретный объект, это является ошибкой (ошибкой). В лингвистике может случиться так, что абстрактные понятия используются, как если бы они были существительными, обозначающими конкретные объекты:

1805: Горацио Нельсон (Битва при Трафальгаре) — « Англия ожидает, что каждый человек выполнит свой долг»

Это называется метонимия .Он может стирать грань между абстрактными и конкретными вещами.

Сжатие [изменить | изменить источник]

Абстракция может рассматриваться как процесс сопоставления нескольких различных частей составляющих данных с одной частью абстрактных данных на основе сходства составляющих данных, например, множество различных физических кошек отображаются на абстракцию «CAT». Эта концептуальная схема подчеркивает неотъемлемое равенство как составляющих, так и абстрактных данных, что позволяет избежать проблем, возникающих из-за различия между «абстрактным» и «конкретным».В этом смысле процесс абстракции влечет за собой идентификацию сходства между объектами и процесс связывания этих объектов с абстракцией (которая сама по себе является объектом).

Например, изображение 1 выше иллюстрирует конкретную взаимосвязь «Кошка сидит на циновке».

Таким образом, можно построить цепочки абстракций, двигаясь от нейронных импульсов, возникающих в результате сенсорного восприятия, к базовым абстракциям, таким как цвет или форма, к эмпирическим абстракциям, таким как конкретная кошка, к семантическим абстракциям, таким как «идея» CAT, и классам объектов. такие как «млекопитающие» и даже такие категории, как «объект», а не «действие».

Например, график 1 выше выражает абстракцию «агент находится на месте».

Эта концептуальная схема не влечет за собой какой-либо конкретной иерархической таксономии (например, упомянутой с участием кошек и млекопитающих), только постепенное исключение деталей.

Недавний метаанализ предполагает, что вербальная система больше задействует абстрактные концепции, когда перцептивная система больше задействована для обработки конкретных концепций. Это потому, что абстрактные концепции вызывают большую активность мозга в нижней лобной и средней височной извилинах, по сравнению с конкретными концепциями, когда конкретные концепции вызывают большую активность в задней поясной извилине, предклинье, веретенообразной извилине и парагиппокампальной извилине. [4]

Другое исследование человеческого мозга предполагает, что левое и правое полушария мозга по-разному воспринимают абстракцию. Например, один метаанализ, посвященный поражениям головного мозга человека, показал смещение левого полушария при использовании инструментов. [5]

Обычно абстракция используется в искусстве как синоним абстрактного искусства в целом. Строго говоря, это относится к искусству, не имеющему отношения к буквальному изображению вещей из видимого мира [6] — однако это может относиться к объекту или изображению, извлеченным из реального мира, или к другому произведению искусства. Изобразительное искусство.Произведения искусства, изменяющие естественный мир для выразительных целей, называются абстрактными; то, что происходит от узнаваемого субъекта, но не имитирует его, называется необъективной абстракцией. В 20-м веке тенденция к абстракции совпала с достижениями науки и техники и изменениями в городской жизни, что в конечном итоге отразило интерес к психоаналитической теории. [7] Еще позже абстракция проявилась в более чисто формальных терминах, таких как цвет, свободный от объективного контекста, и сокращение формы до основных геометрических узоров. [8]

В музыке термин абстракция может использоваться для описания импровизационных подходов к интерпретации и иногда может указывать на отказ от тональности. Атональная музыка не имеет ключевой сигнатуры и характеризуется исследованием внутренних числовых отношений. [9]

Определение абстракции, данное Карлом Юнгом, расширило его рамки за пределы мыслительного процесса, включив в него ровно четыре взаимоисключающих, противоположных дополнительных психологических функции: ощущение, интуицию, чувство и мышление.Вместе они образуют структурную совокупность дифференцирующего процесса абстракции. Абстракция действует в одной из этих противоположных функций, когда она исключает одновременное влияние других функций и других несоответствий, таких как эмоции. Абстракция требует избирательного использования этого структурного разделения способностей психики. Противоположность абстракции — конкретизм. Абстракция — одно из 57 определений Юнга в главе XI книги Психологические типы .

Существует абстрактное мышление , так же как есть абстрактное чувство , ощущение и интуиция .Абстрактное мышление выделяет рациональные, логические качества … Абстрактное чувство делает то же самое с … своими чувственными ценностями. … Я ставлю абстрактные чувства на один уровень с абстрактными мыслями. … Абстрактное ощущение было бы эстетическим в противоположность чувственному ощущению , а абстрактная интуиция была бы символической в ​​противоположность фантастической интуиции . (Юнг, [1921] (1971): пар. 678).

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

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

Преимущества абстракции в математике:

  • он раскрывает глубокие связи между разными областями математики
  • известных результатов в одной области могут наводить на предположения в смежной области
  • приемов и методов из одной области могут быть применены для подтверждения результатов в связанной области

Главный недостаток абстракции состоит в том, что очень абстрактные концепции труднее усвоить и требуют определенной степени математической зрелости и опыта, прежде чем они могут быть усвоены .

абстракция — Викисловарь

Английский [править]

Этимология [править]

из среднеанглийского abstraccyone ; либо от среднефранцузского абстракция , либо от средневековой латыни abstrāctiō («разделение»), от латинского abstrahō («уводить»). Эквивалентно abstract + -ion .

Произношение [править]

Существительное [править]

абстракция ( счетных и несчетных , множественных абстракций )

  1. Акт абстрагирования, отделения, изъятия или удаления; вывод; состояние забираемого.[Впервые засвидетельствовано около 1350–1470 гг.] [1]
    • 1848 , Дж. С. Милль, Принципы политической экономии с некоторыми их приложениями к социальной философии :
      Аннулирование долга означало бы не уничтожение богатства, а его передачу: неправомерное изъятие богатства у определенных членов общества в интересах правительства или налогоплательщиков.
    1. (эвфемистический) Тайное изъятие для личного пользования части собственности другого лица; похищение.[Впервые засвидетельствовано около 1350–1470 гг.] [1]
    2. (инженерное дело) Удаление воды из реки, озера или водоносного горизонта.
  2. Отделение от мирских объектов; жизнь отшельника; уход из чувств. [Впервые засвидетельствовано около 1350–1470 гг.] [1]
    абстракция отшельника
  3. Акт сосредоточения внимания на одной характеристике объекта, а не на объекте как целой группе характеристик; акт отделения указанных качеств от объекта или идей.[Впервые засвидетельствовано в конце 16 гг. гг.] [1]
    • ок. 1837 , У. Гамильтон, в Лекциях по метафизике и логике (1860), Лекция XXXV, стр. 474:
      Абстракция — это не позитивный акт: это просто негатив внимания.
    Абстракция необходима для классификации вещей по родам и видам.
  4. Любая характеристика отдельного объекта, когда эта характеристика была отделена от объекта и рассматривается отдельно как качество, имеющее независимое существование.
  5. Член идеализированной подгруппы, если рассматривать ее в соответствии с абстрактным качеством, которое определяет подгруппу.
  6. Акт сравнения общности между отдельными объектами и организация с использованием этих сходств; акт обобщающей характеристики; продукт упомянутого обобщения. [Впервые засвидетельствовано в конце 16 гг. гг.] [1]
  7. Идея или понятие абстрактного или теоретического характера. [Впервые засвидетельствовано в конце 16 -го века.] [1]
    , чтобы бороться всего за абстракций .
  8. Отсутствие или поглощенность ума; невнимание к подаркам; озабоченность. [Впервые засвидетельствовано в конце 18 гг. гг.] [1]
  9. (искусство) Абстрактное творение, или пи

Лекция 6: Определение абстракций

Лекция 6: Определение абстракций

Мы строим очень маленькие программы. Когда программа достаточно мала, мы
можем держать в голове сразу все детали программы.Реальные программы
в 100–10 000 раз больше, чем любая программа, которую вы, вероятно, написали; они есть
просто слишком большие и сложные, чтобы держать в голове все их детали. Для создания больших программ
эта работа мы должны использовать абстракцию
чтобы можно было думать о программе. Абстракция — это просто удаление
деталь. Хорошо написанная программа обладает тем свойством, что мы можем думать о ее
компоненты (например, функции) абстрактно, не заботясь обо всех
подробности того, как эти компоненты реализованы.

Механизмы абстракции

Мы будем рассматривать два вида
абстракции:

  • Абстракция с помощью параметризации. Вместо того, чтобы писать код,
    упоминает конкретные значения, на которых должны выполняться вычисления, мы пишем
    функции. Функции описывают вычисление, которое работает со всеми допустимыми значениями
    соответствующие типы. Таким образом, детали того, какие конкретные ценности должны быть
    б / у удален. Параметризованные типы — еще один пример абстракции
    параметризация, хотя там параметры типа а не
    значений .
  • Абстракция по спецификации . Хорошо продуманная спецификация устраняет
    ненужные подробности об указанном фактическом типе или значении. В
    спецификация служит контрактом между разработчиком и пользователем
    (клиент), что упростит работу обеих сторон и сделает код более удобным.
    расширяемый и ремонтопригодный. Эта идея также известна как информация .
    скрытие
    или инкапсуляции в объектно-ориентированном мире.

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

Предположим, что мы видим определения функций для функций с именем sqr
и находят :

fun sqr (x: real): real = ...
весело найти (lst: список строк, x: строка): int =...

Мы можем написать код, который проверяет типы, не видя определения этих
функций, но мы не можем быть уверены, что это сработает, потому что мы недостаточно знаем
о том, что функции делают . Например, мы можем предположить, что sqr — функция квадратного корня, но
возможно, он возводит в квадрат его вход. Даже если предположить, что он вычисляет квадратный корень,
пользователь не может сказать, насколько точен результат функции и можно ли вызвать функцию, когда аргумент отрицательный (и какой
бывает в таком случае).Точно так же мы можем предположить, что найдет возвратов
позиция x находится в списке lst , но мы
не знаем, начинаются ли позиции с 0 или 1, и мы не знаем, что произойдет, если
x отсутствует в списке.

Таким образом, информации о типе функции недостаточно для написания кода с ее использованием.
функция. Очевидное решение — добавить комментарий или комментарии, которые предоставляют
необходимая информация. Вопрос только в том, что писать в этом
комментарий.Программистов часто просят писать комментарии в своем коде; слишком
часто это увещевание приводит к бесполезным комментариям, которые просто скрывают код
в дальнейшем. Особенно неприятно читать код, содержащий много вкраплений
комментарии (обычно сомнительной ценности), например:

 let val y = x + 1 (* сделать y на единицу больше x *) 

Другая распространенная практика, которая не очень полезна — это выбор длинных,
описательные имена для всех переменных, как в следующем подробном коде:

 пусть val number_of_zeros =
   foldl (fn (list_element: int, аккумулятор: int) =>
          аккумулятор + (если list_element = 0, то 1, иначе 0)) 0 the_list
в ... 

Лучше выбирать короткие имена, а при необходимости добавить комментарий
объясняя назначение переменной.

Характеристики функций

Таким образом, наша цель — дать краткий комментарий, описывающий достаточно
поведение функции, позволяющее программисту использовать функцию без
посмотреть, как это реализовано. Этот комментарий вместе с машиночитаемым типом
функции — это спецификация функции.

Спецификация — это договор между пользователем и
исполнитель функции. Он сообщает пользователю, на что можно положиться, когда
вызов функции. Пользователь не должен ничего предполагать о поведении
функция, не описанная в спецификации. Спецификация также
сообщает разработчику функции, какое поведение необходимо обеспечить. В
Исполнитель должен соответствовать спецификации.

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

Хорошо написанная спецификация обычно состоит из нескольких
разные части. Если вы знаете, каковы обычные ингредиенты спецификации,
у вас меньше шансов забыть записать что-то важное. Мы сейчас
посмотрите рецепт написания спецификации.

Пункт о возврате

Как мы можем добавить спецификацию к sqr , предполагая, что это
функция квадратного корня? Сначала нужно описать его результат.Мы
будет называть это описание пунктом , возвращаемым в , поскольку оно является частью
спецификация, описывающая результат вызова функции. Он также известен как
постусловие : описывает условие, которое выполняется после
функция называется . Вот пример предложения о возврате:

 (* Возвращает: sqr (x) - квадратный корень из x. ... 

Для численного программирования нам, вероятно, следует добавить некоторую информацию о том, как
это точно.-6.
*)

Точно так же мы могли бы написать предложение возврата для find
функция. Вводную « возвратов: » можно оставить.
неявный:

 (* find (lst, x) - это индекс x в списке lst, начиная с
 * с нуля.
 *) 

Что не так с этой спецификацией?

Хорошая спецификация кратка, но ясна — достаточно сказать, что
читатель понимает, что делает функция, но без лишнего словоблудия
через и, возможно, заставят читателя упустить суть.Иногда бывает
баланс между краткостью и ясностью.

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

Требуется статья

Спецификация sqr не совсем понятна, потому что квадратный корень не
существуют для некоторых x типа real .Математический квадрат
корневая функция — это частичная функция , которая определена только на части своего
домен. Хорошая функциональная спецификация завершена с учетом возможных
входы; он дает пользователю понимание того, какие входы разрешены
и каковы будут результаты для разрешенных входов.

У нас есть несколько способов
иметь дело с частичными функциями. Простой подход — ограничить
домен, чтобы было ясно, что функция не может законно использоваться на некоторых
входы.-6.
* Требуется: x> = 0
*)

В этой спецификации не говорится, что происходит, когда x <0 , ни
это должно быть. Помните, что спецификация - это контракт. Этот контракт облегчает бремя показа
что квадратный корень существует на пользователя. Если предложение требует не
удовлетворен, реализации разрешено делать все, что угодно: например,
перейти в бесконечный цикл или выбросить исключение. Преимущество такого подхода
заключается в том, что разработчик может разработать алгоритм без ограничения
необходимость проверки недопустимых входных параметров, что может быть утомительным и замедляющим
программа.Недостатком является то, что отладка может быть затруднена, если
функция вызывается неправильно, потому что функция может вести себя неправильно, и пользователь
не понимает, как это может плохо себя вести.

Чтобы упростить отладку функции, мы можем гарантировать, что
нарушения предусловия будут обнаружены во время выполнения, и что функция
в этом случае вызовет исключение. Мы
напишите проверяет пункт , а не требует, чтобы пункт указывал
что предварительное условие проверено явно и что Fail
в противном случае возникает исключение.-6.
* Проверяет: x> = 0
*)

Если предоставляется условие проверки, пользователь знает, что нарушение предварительного условия
будет пойман; есть соответствующее договорное обязательство по
разработчик, чтобы проверить предварительное условие. Обратите внимание, что
самой функции не нужно поднимать Fail; он может удовлетворить чеков
предложение путем вызова других функций, чьи проверенные предварительные условия подразумевают проверенные
предварительные условия этой функции.

Это совершенно нормально для функции, спецификация которой включает , требует
предложение все еще может быть реализовано, проверив предложение require и бросив
исключение, если это не удается, как если бы
спецификация содержала соответствующий пункт проверок.Почему это в
в соответствии со спецификацией?

В некоторых программных средах можно написать код, который можно
выкл в производственной версии программы. Для производительности код, который
реализует пункты проверки, могут быть помечены как таковые, если предполагается, что программа
быть достаточно свободным от ошибок.

Исключения

Другой способ справиться с частичными функциями - преобразовать их в всего функции (функции
определены во всей их области).Этот подход, возможно, проще для пользователя, потому что
поведение функции всегда определено; у него нет предварительных условий. Однако это
перекладывает работу на исполнителя и может привести к более медленной реализации.

Как преобразовать sqr в
общая функция? Один из подходов, который (слишком) часто используется, - это определение некоторого значения, которое
возвращается в тех случаях, когда требует, чтобы пункт был бы принят; за
пример:

 (* sqr (x) - квадратный корень из x, если x> = 0,
 * с относительной точностью не хуже 1.-6.
 * В противном случае возвращается отрицательное число.
 *) 

Эта практика не рекомендуется, потому что она способствует нарушению
трудночитаемый пользовательский код. Практически любой правильный пользователь этой абстракции напишет
код, подобный этому, если нельзя утверждать, что предварительное условие выполняется:

 если sqr (a) <0,0, то ... иначе ... 

Ошибка должна быть обработана в , если (или в случае )
оператор, поэтому работа пользователя этой абстракции ничуть не проще, чем с
предложение требует: пользователю все еще нужно обернуть явный тест вокруг
вызов в случаях, когда он может выйти из строя.Если тест опущен, компилятор
не будет жаловаться, а результат отрицательного числа будет обрабатываться молча, как если бы он
были действительным квадратным корнем, что могло вызвать ошибки позже во время выполнения программы.
Этот стиль кодирования был источником бесчисленных ошибок и проблем с безопасностью.
в операционных системах Unix и их потомках (например, Linux).

Лучший способ сделать функции полными - заставить их вызывать исключение, другое
чем Ошибка , когда ожидаемое условие ввода не выполняется.-6.
* Повышает отрицательное значение, если x <0. *) исключение отрицательное весело sqr (x: real): real = ...

Обратите внимание, что реализация этой функции sqr должна проверять
x> = 0 , даже в производственной версии кода,
потому что какой-то клиент может полагаться на чек.

Примеры

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

 (* find (lst, x) - это индекс x в списке lst, начиная с
 * с нуля.* Пример: find (["b", "a", "c"], "a") = 1 *) 

Недетерминизм

Давайте еще раз посмотрим на функцию найти . Вот попытка
по спецификации:

 (* find (lst, x) - это индекс, по которому x
 * находится в lst, начиная с нуля.
 * Требуется: x находится в lst *)
val find: список строк * строка -> int 

Обратите внимание, что мы включили пункт требует, чтобы гарантировать, что x
можно найти в
список вообще.Однако с этой спецификацией все еще есть проблемы. Фраза
«позиция» означает, что x имеет уникальную позицию. Мы могли бы
усилить предварительное условие, требуя, чтобы было ровно , одна копия
x
в списке, но, вероятно, мы хотели бы, чтобы эта функция выполняла что-то полезное в
случай, когда
x
дублируется. Хорошая альтернатива - исправить спецификацию
так что он не говорит, какая позиция
x
, если их более одного:

 (* find (lst, x) - это индекс в lst, где x равен
 * найденный; то есть nth (lst, find (lst, x)) = x.* Требуется: x находится в lst *)
val найти: список int * int -> int 

Это пример недетерминированной спецификации . В нем говорится, что некоторые
полезные свойства результата, который возвращает функция, но не
полностью определить, каким должен быть этот результат. Сила недетерминированных спецификаций
пользователь абстракции пишет код, который работает независимо от способа
в котором реализована функция. Их иногда называют слабыми
спецификации, потому что они не ограничивают реализацию (и
исполнители).Пользователь не может ничего предполагать о результате
сверх того, что указано в спецификации. Это означает, что у разработчиков есть
свобода изменять их реализацию, чтобы возвращать разные результаты, пока
поскольку новая реализация по-прежнему соответствует спецификации. Недетерминированный
спецификации упрощают разработку реализаций.

Насколько уместен недетерминизм? Хорошая спецификация должна ограничивать
поведение указанной функции достаточно, чтобы любая реализация
обеспечивать функциональность, необходимую клиентам функции.С другой
стороны, он должен быть достаточно общим (слабым), чтобы можно было найти
приемлемые реализации. Очевидно, что эти два критерия противоречат друг другу. И из
Конечно, хорошая спецификация кратка, точна и понятна.

Спецификации Equational

Спецификация find фактически говорит об одном и том же двумя разными способами; первый,
на английском языке, а во-вторых, через спецификацию equational nth (lst, find (lst, x)) = x .Любая реализация, которая всегда удовлетворяет
это уравнение
ведет себя так, как описано на неформальном языке. Уравнительные спецификации
часто являются компактным и понятным инструментом для написания предложений возврата, независимо от того, являются ли они детерминированными
или недетерминированный.

Здесь мы полагаемся на соглашение, данное ранее: когда уравнение
учитывая несвязанные переменные, уравнение должно выполняться для всех возможных
значения этих переменных. Это еще один способ написать предложение возврата, которое
дается ранее, хотя, вероятно, более ранняя версия более читабельна для большинства
программисты.

Уточнение

Иногда одна спецификация сильнее другой.
Например, рассмотрим две возможные спецификации для найти :

 A: (* find (lst, x) - это индекс, по которому x
    * находится в lst; то есть nth (lst, find (lst, x)) = x
    * Требуется: x находится в lst *) 
 B: (* find (lst, x) - это первый индекс, по которому x
    * находится в lst, начиная с нуля
    * Требуется: x находится в lst *) 

Здесь спецификация B строго на сильнее , чем спецификация A:
конкретный вход для функционирования, как указано B, набор возможных результатов или
результатов меньше, чем для A.По сравнению с A, спецификация B снижает
количество недетерминизма. В этом случае мы говорим, что спецификация B уточняет
спецификация A.

Есть и другие способы уточнить спецификацию. Например, если спецификация
A содержит предложение required, а спецификация B идентична, но меняет
требует предложения к предложению проверок, B уточняет A: он более точно описывает
поведение указанной функции.

Мы можем думать о реальном коде, реализующем функцию, как о другом
спецификация выполняемого вычисления.Этот производный от реализации
спецификация должна быть по крайней мере такой же строгой, как и спецификация, написанная в
комментарий; в противном случае реализация может делать то, что
запрещает. Другими словами, любая правильная реализация должна улучшать
спецификация
.

Автоматическая проверка

Мы изучали, как писать удобочитаемые спецификации. это
можно писать спецификации на формальном языке, который позволяет компьютеру
читать их.Эти машиночитаемые спецификации могут использоваться для выполнения формальных
проверка
программы. Примеры систем, которые это делают, включают ESC Java и Larch-C.
Используя формальную спецификацию,
автомат доказательства теорем может доказать , что программа как
Целое действительно делает то, что говорит. Официальная проверка программы - это
привлекательная технология, поскольку с ее помощью можно гарантировать, что программы не
содержат ошибки! Однако это не доказало
популярен среди программистов, потому что сложно формально доказать программы
правильно, и потому что спецификации утомительно писать в форме, чтобы
машину можно понять.На практике машиночитаемые спецификации типа
очень полезно, но, кажется, лучше поместить остальную часть спецификации в
удобочитаемая форма. Мы скоро увидим, что спецификации, которые мы
разговор о письме может быть использован для ручного построения доказательств того, что программы
тоже работать.

Как написать реферат

Реферат - это краткое изложение более длинной работы (например, диссертации или исследовательской работы). В аннотации кратко изложены цели и результаты вашего исследования, чтобы читатели точно знали, о чем идет речь.

Напишите аннотацию в самом конце, когда закончите остальной текст. Вам нужно включить четыре вещи:

  1. Задача и цели вашего исследования
  2. Ваши методы
  3. Ваши ключевые результаты или аргументы
  4. Ваше заключение

Аннотация обычно состоит из 150–300 слов, но часто бывает строгое ограничение на количество слов, поэтому обязательно ознакомьтесь с требованиями университета или журнала.

В диссертации или диссертации размещайте реферат на отдельной странице после титульного листа и благодарностей, но перед оглавлением.

Абстрактный пример

Наведите курсор на различные части аннотации, чтобы увидеть, как она построена.

Пример аннотации

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

Чтобы проверить гипотезу о том, что меньшая социальная дистанция ведет к более высокому намерению пожертвовать , , среди потенциальных доноров из Великобритании был распространен онлайн-опрос.Респондентов случайным образом разделили на два условия (большая и малая социальная дистанция) и попросили ответить на один из двух наборов материалов по сбору средств. Ответы анализировали с помощью двухвыборочного t-критерия. Результаты показали небольшой эффект в противоположном направлении, чем предполагалось: большая социальная дистанция была связана с более высоким намерением пожертвовать, чем малая социальная дистанция.

Эти результаты показывают, что потенциальные доноры с большей вероятностью будут реагировать на кампании, изображающие жертв, которых они считают социально далекими от себя.Исходя из этого, концепция социальной дистанции должна быть принята во внимание при разработке экологических кампаний по сбору средств.

Когда писать реферат

Вам почти всегда придется включать реферат при написании диссертации, диссертации, исследовательской работы или при отправке статьи в академический журнал.

Во всех случаях аннотация - это последнее, что вы пишете. Это должен быть полностью независимый, самодостаточный текст, а не отрывок, скопированный из вашей статьи или диссертации.Аннотация должна быть полностью понятной сама по себе для тех, кто не читал всю статью или связанные источники.

Самый простой подход к написанию реферата - это имитировать структуру более крупной работы - думать о ней как о миниатюрной версии вашей диссертации или исследовательской работы. В большинстве случаев это означает, что реферат должен содержать четыре ключевых элемента.

Что вычитка может сделать для вашей статьи?

Редакторы

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

См. Пример редактирования

Цели

Начните с четкого определения цели вашего исследования. На какую практическую или теоретическую проблему отвечает исследование или на какой исследовательский вопрос вы стремились ответить?

Вы можете включить краткий контекст социальной или академической значимости вашей темы, но не вдавайтесь в подробную справочную информацию.

После определения проблемы сформулируйте цель вашего исследования.Используйте глаголы типа , исследовать , , проверить , , проанализировать, или , оценить , чтобы точно описать, что вы собираетесь делать.

Эта часть аннотации может быть написана в настоящем или прошедшем простом времени, но никогда не должна относиться к будущему, поскольку исследование уже завершено.

  • В этом исследовании будет изучена взаимосвязь между потреблением кофе и производительностью.

Абстрактные типы данных - GeeksforGeeks

Абстрактный тип данных (ADT) - это тип (или класс) для объектов, поведение которых определяется набором значений и набором операций.

В определении ADT упоминаются только операции, которые должны быть выполнены, но не то, как эти операции будут реализованы. Он не определяет, как данные будут организованы в памяти и какие алгоритмы будут использоваться для реализации операций. Он называется «абстрактным», потому что дает представление, независимое от реализации. Процесс предоставления только самого необходимого и сокрытия деталей известен как абстракция.

Пользователю типа данных не нужно знать, как реализован этот тип данных, например, мы использовали примитивные значения, такие как int, float, char, только с учетом того, что этот тип данных может работать и выполняться без любое представление о том, как они реализованы.Таким образом, пользователю нужно знать только то, что может делать тип данных, но не то, как он будет реализован. Думайте о ADT как о черном ящике, который скрывает внутреннюю структуру и дизайн типа данных. Теперь мы определим три ADT, а именно List ADT, Stack ADT, Queue ADT.

  1. Список ADT
    • Данные обычно хранятся в ключевой последовательности в списке, который имеет структуру заголовка, состоящую из счетчика , указателя и адреса функции сравнения , необходимой для сравнения данных в списке.
    • Узел данных содержит указатель на структуру данных и самореферентный указатель , который указывает на следующий узел в списке.
    • typedef struct узел

      {

      аннулировано * DataPtr;

      struct узел * ссылка;

      } Узел;

      typedef struct

      {

      внутр количество;

      Узел * поз;

      Узел * голова;

      Узел * задний;

      int (* сравнить) ( void * аргумент1, void * аргумент2)

      } СПИСОК;

    • Список функций ADT приведен ниже:

    Список содержит элементы одного типа, расположенные в последовательном порядке, и в списке могут выполняться следующие операции.

    • get () - Возвращает элемент из списка в любой заданной позиции.
    • insert () - Вставляет элемент в любую позицию списка.
    • remove () - Удаляет первое вхождение любого элемента из непустого списка.
    • removeAt () - Удалить элемент в указанном месте из непустого списка.
    • replace () - Заменить элемент в любой позиции другим элементом.
    • size () - возвращает количество элементов в списке.
    • isEmpty () - Возвращает истину, если список пуст, иначе возвращает ложь.
    • isFull () - Возвращает истину, если список полон, в противном случае возвращает ложь.
  2. Стек ADT

    • В реализации Stack ADT вместо данных, хранимых в каждом узле, сохраняется указатель на данные.
    • Программа выделяет память для данных и адрес передается в стек ADT.
    • Головной узел и узлы данных инкапсулируются в ADT. Вызывающая функция может видеть только указатель на стек.
    • Структура заголовка стека также содержит указатель на верхний и счетчик количества записей, находящихся в настоящее время в стеке.
    • typedef struct узел

      {

      аннулировано * DataPtr;

      struct узел * ссылка;

      } StackNode;

      typedef struct

      {

      внутр количество;

      StackNode * верхний;

      } СТЕК;

    Стек содержит элементы одного типа, расположенные в последовательном порядке.Все операции выполняются на одном конце, который является вершиной стека, и могут выполняться следующие операции:

    • push () - Вставляет элемент в один конец стека, называемый вершиной.
    • pop () - Удалить и вернуть элемент наверху стека, если он не пустой.
    • peek () - Вернуть элемент вверху стека, не удаляя его, если стек не пуст.
    • size () - возвращает количество элементов в стеке.
    • isEmpty () - Возвращает истину, если стек пуст, иначе возвращает ложь.
    • isFull () - Возвращает истину, если стек заполнен, в противном случае возвращает ложь.
  3. ADT очереди

    • Абстрактный тип данных очереди (ADT) соответствует базовой конструкции абстрактного типа данных стека.
    • Каждый узел содержит пустой указатель на данные и указатель ссылки на следующий элемент в очереди. Программа отвечает за выделение памяти для хранения данных.
    • typedef struct узел

      {

      аннулировано * DataPtr;

      struct node * next;

      } QueueNode;

      typedef struct

      {

      QueueNode * передний;

      QueueNode * задний;

      внутр количество;

      } ОЧЕРЕДЬ;

    Очередь содержит элементы одного типа, расположенные в последовательном порядке.Операции выполняются на обоих концах, вставка выполняется в конце, а удаление выполняется спереди. Возможны следующие операции:

    • enqueue () - Вставляет элемент в конец очереди.
    • dequeue () - Удалить и вернуть первый элемент очереди, если очередь не пуста.
    • peek () - Вернуть элемент очереди, не удаляя его, если очередь не пуста.
    • size () - возвращает количество элементов в очереди.
    • isEmpty () - Возвращает true, если очередь пуста, в противном случае возвращает false.
    • isFull () - Возвращает true, если очередь заполнена, в противном случае возвращает false.

Из этих определений мы можем ясно видеть, что в определениях не указано, как эти ADT будут представлены и как будут выполняться операции. Могут быть разные способы реализации ADT, например, List ADT может быть реализован с использованием массивов, односвязного или двусвязного списка. Аналогичным образом ADT стека и ADT очереди могут быть реализованы с использованием массивов или связанных списков.

Ссылка: https://en.wikipedia.org/wiki/Abstract_data_type

Автор статьи Анудж Чаухан . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на [email protected] Смотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогайте другим гикам.

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

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями DSA с помощью курса DSA Self Paced Course по доступной для студентов цене и станьте готовым к работе в отрасли.

Создание функций

Что такое абстракция?

Определение

Абстракция - это упрощенное представление чего-то более сложного. Абстракции позволяют скрывать детали, чтобы помочь вам управлять сложностью, сосредоточиться на соответствующих концепциях и рассуждать о проблемах на более высоком уровне.

Использование абстракций в повседневной жизни

Современная жизнь наполнена сложными системами. Подумайте, например, о системе поездов. Теоретически можно узнать точные размеры и повороты каждой направляющей в системе. Однако, если вы просто хотите добраться из одного места в другое, эти детали бесполезны и даже отвлекают. Нам нужны более простые представления этой сложной системы, такие как эта карта (источник), чтобы помочь нам осмыслить и использовать ее. Другими словами, нам нужна абстракция.

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

drawRectangle () и right () являются примерами абстракции, поскольку они захватывают код для более сложного поведения и упрощают представление этого поведения, давая ему одно имя.

Что это означает в информатике

Информатика также занимается сложными системами. Подумайте о невероятной сложности такой системы, как Интернет. Люди просто не могут держать в голове все эти мелкие детали!

В информатике мы справляемся со сложностью, «упаковывая ее» и давая ей имя.Например, мы разрабатываем протокол для надежной отправки информации от одного человека в Интернете к другому. Сам протокол может быть сложным, но когда мы говорим об этом, мы можем просто назвать его «TCP». Упрощенные высокоуровневые представления сложного поведения позволяют говорить и рассуждать о сложных системах, которые мы используем и создаем в информатике. Мы называем эти представления Абстракциями .

Что это значит в программировании

Программы - это сложные системы.Отдельные команды могут быть легкими для понимания, но быстро становится трудно понять логику и взаимосвязь между ними. Вам нужны абстракции в программном коде, чтобы вы могли «упаковать» эти детали, чтобы вы могли сосредоточиться на более крупной проблеме, которую пытаетесь решить.

Процедуры (функции) - это абстракции, которые вы создаете

Процедуры (называемые в JavaScript «функциями») - это создаваемые вами абстракции. Например, написав функцию с именем drawRectangle () , вы можете «упаковать» и назвать код, необходимый для рисования прямоугольника.После того, как вы протестировали эту функцию и она заработала, вам больше не нужно беспокоиться о деталях того, как она работает. Теперь вы можете просто использовать простое описательное имя, которое вы дали этому сложному базовому коду (имя вашей функции). Создание подобных абстракций помогает вам думать о своем коде на более высоком уровне и гарантирует, что вы не потеряетесь во всех мелких деталях.

Абстракция, модуль 3 и экзамен AP

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

Как вы увидите в этом модуле, лучший способ создавать сложные программы - это создавать абстракции.Если вы решили построить сложный рисунок черепахи (например, тот, что справа), вы на самом деле не будете записывать все отдельные движения и повороты, необходимые для его рисования. Вместо этого вы создадите абстракции (опять же, обычно функции), которые позволят вам быстро выразить это сложное поведение. Этот блок в основном предназначен для обучения вас:

  • использовать абстракцию как метод решения проблем
  • для создания и использования абстракций в программах, которые вы пишете
  • , чтобы сообщить о том, как абстракция помогает управлять сложностью

Принципы абстракции и компьютерных наук

(1) Абстракция - одна из семи основных идей AP Computer Science Principles.

(2) Для задания производительности AP Create вам необходимо ...

[определить] сегмент кода, содержащий разработанную вами абстракцию ... [и] ... объяснить, как эта абстракция помогла управлять сложностью вашей программы.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *