Кратко о том, что такое компьютер

Обновлено: 21.11.2024

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

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

Techopedia объясняет абстракцию

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

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

Объектно-ориентированное программирование

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

Другими словами, средством абстракции являются объекты в коде, которые берут целую кучу базового кода и делают его переносимым и воспроизводимым.

Класс

Другим средством абстракции в объектно-ориентированном программировании являются классы. Классы объектов дополнительно стратифицируют принцип повторяющегося использования и автоматизированного распространения кода.

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

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

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

И то, и другое — потрясающие возможности, которые ООП привнесли в мир технологий.

Интерфейс прикладного программирования

Еще один современный яркий пример абстракции иллюстрируется интерфейсом прикладного программирования (API), который так распространен в кроссплатформенных системах.

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

Таким образом, API функционирует как ключевой инструмент абстракции, встраивая те объектно-ориентированные принципы, которые показывают "внешней программе", что делает "внутренняя программа".

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

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

Компьютер = Компоненты + Типы данных + Набор инструкций

Компоненты

Компоненты могут быть аппаратными или программными компонентами.

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

Память

Память — это место, где хранятся данные и программы компьютера.

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

Изменчивость означает, что содержимое памяти теряется при выключении компьютера. Это не относится к статической памяти.

На аппаратном уровне память можно рассматривать как огромный массив байтов.

В виртуальной машине память может быть более абстрактной. Вот несколько примеров:

Структуры данных (стеки, очереди, хеш-таблицы, деревья, массивы, списки)

Файлы (текстовые, двоичные, исполняемые)

Процессор

Процессор можно рассматривать как конкретную программу, реализованную в программном или аппаратном обеспечении. Эта программа называется циклом Fetch-Execute:

<р>1. инструкция = извлечь следующую инструкцию из памяти
2. if (instruction == halt) выйти
3. аргументы = выборка необходимых данных из памяти
4. результат = выполнить инструкцию с аргументами
5. сохранить результат в память
6. перейти к 1

Пользовательские интерфейсы (необязательно)

Существует два типа пользовательских интерфейсов.

Пользовательские интерфейсы консоли (CUI)

Цикл чтения-выполнения-печати (REPL):

<р>1. отобразить подсказку/меню
2. прочитать команду
3. если (команда == выйти) выйти
4. результат = выполнить команду
5. распечатать результат
6. перейти к 1

Графические интерфейсы пользователя (GUI)

Графический интерфейс можно рассматривать как дерево окон и элементов управления:

Графический интерфейс управляется циклом событий пользовательского ввода:

<р>1. дождитесь команды пользователя (выбор меню, нажатие кнопки и т.д.)
2. если (команда == выйти) выйти
3. выполнить команду
4. перекрашивать представления
5. перейти к 1

Типы данных

Компьютер можно рассматривать как машину для обработки данных. Формы данных, которые могут быть обработаны, организованы в типы. Вот несколько примеров:

Примитивные данные
�� Биты (0, 1), байты (8 бит), слова (2, 4, 8, . байты)
�� Числа
���� � Точные числа (short, int, long)
����� Неточные числа (float, double)
�� Символы (ASCII, UNICODE)
�� Булевы значения (true, false)
�� Указатели, ссылки
Составные данные
�� Массивы
�� Объекты, записи, структуры
������ Коллекции (наборы, списки)
/>������ Перечисления
Данные, определяемые пользователем
�� Банк, счет, владелец счета, транзакция и т. д.

Наборы инструкций

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

Управление данными (назначение, чтение, запись)
Управление последовательностью (блоки, условные операторы, итерации, переходы)
Арифметика (+, *, -, /, %, , >=, ==)
Логика (&&, ||, !, &, |, ~)
Функции (вызов/возврат)
Объявления (функций, типов данных, переменных и т. д.)

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

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

Techopedia объясняет абстракцию

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

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

Объектно-ориентированное программирование

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

Другими словами, средством абстракции являются объекты в коде, которые берут целую кучу базового кода и делают его переносимым и воспроизводимым.

Класс

Другим средством абстракции в объектно-ориентированном программировании являются классы. Классы объектов дополнительно стратифицируют принцип повторяющегося использования и автоматизированного распространения кода.

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

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

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

И то, и другое — потрясающие возможности, которые ООП привнесли в мир технологий.

Интерфейс прикладного программирования

Еще один современный яркий пример абстракции иллюстрируется интерфейсом прикладного программирования (API), который так распространен в кроссплатформенных системах.

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

Таким образом, API функционирует как ключевой инструмент абстракции, встраивая те объектно-ориентированные принципы, которые показывают "внешней программе", что делает "внутренняя программа".

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

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

Содержание

Определение примеров абстракции [ редактировать ]


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

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

Объясните, почему требуется абстракция [ редактировать ]

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

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

Построить абстракцию [ редактировать ]

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

Мы могли бы создать гигантскую красную кнопку со словами "запустить ракету с арахисовым маслом в друга", которая запускала бы ракету. Однако, как только эта кнопка будет нажата, начнется ОЧЕНЬ СЛОЖНЫЙ процесс запуска ракеты. В этом примере кнопка представляет собой абстракцию запуска ракеты.

Различие между сущностью реального мира и ее абстракцией [ править ]

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

Стандарты [ изменить ]

Эти стандарты взяты из предметного руководства IB Computer Science [2]

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

Ссылки [ изменить ]

Предоставьте подробный отчет, включая причины или причины.

Получите единственно возможный ответ.

Разработайте информацию в виде диаграммы или логической формы.

Разработайте информацию в виде диаграммы или логической формы.

Объясните разницу между двумя или более понятиями или элементами.

Предоставьте ответ из нескольких вариантов. Распознайте и кратко изложите отличительный факт или особенность.

Читайте также: