Уровни абстракции

Уровни абстракции

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

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

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

Для большинства программистов язык ассемблера — также не вполне естественный, поэтому был создан еще более высокий уровень абстракции — язык программирования высокого уровня (ЯВУ). В настоящее время насчитываются сотни таких языков; наиболее известные из них — Basic, C, C++, Cobol и RPG. Программа, принимающая на входе текст на одном из языков высокого уровня и транслирующая его в операторы языка ассемблера, называется компилятором.

Иллюстрация многоуровневой абстракции — написание программы на языке высокого уровня. Компилятор выполняет преобразование программы на ЯВУ в язык ассемблера, который затем переводит свои команды в двоичный код, понятный процессору. Замечу, что некоторые компиляторы генерируют команды непосредственно на машинном языке, минуя уровень ассемблера.

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

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

Похожа на эмуляцию интерпретация программ. Программа-интерпретатор выбирает инструкции по одной и исполняет эквивалентную им последовательность команд более низкого уровня. Некоторые из новейших ЯВУ, используемых в распределенных вычислениях, например Java, разработаны так, чтобы их было легко интерпретировать. Большинство командных языков также интерпретируемы. Введите «dir» в командной строке DOS на любом ПК и на экране появится содержимое каталога. Если после этого нажать клавишу Enter, интерпретатор командной строки DOS считает введенную команду, а затем выполнит последовательность инструкций, необходимых для ее выполнения. Такой интерпретатор команд есть в большинстве операционных систем. В микропрограммируемой машине интерпретация обычно поддерживается специальным оборудованием. Микропрограмма для различения такой аппаратной формы интерпретации называется эмулятором.

Обычно архитектура набора команд вычислительной системы рассматривается как интерфейс между аппаратурой и программным обеспечением самого нижнего уровня. В те времена, когда Хассон сформулировал упоминавшееся выше определение архитектуры компьютера, программирование еще не использовало ЯВУ. Сегодня, более подходящим определением этого понятия было бы «характеристики системы с точки зрения компилятора», так как из нынешних программистов лишь немногие имеют дело с программами в машинных кодах.

С учетом многих уровней абстракции, более точно было бы говорить, что компьютер имеет несколько архитектур, хотя архитектура двоичного набора команд в большинстве случаев по-прежнему играет основную роль. Когда говорят, что один компьютер способен выполнять программы, написанные для другого компьютера без изменений, то обычно имеют в виду, что первый может выполнять двоичные коды (binaries) другого, и следовательно, для переноса программ с первого на второй их повторная компиляция не требуется. Иначе говоря, двоичный машинный язык одного компьютера непосредственно поддерживается другим компьютером.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Доступ на все уровни

Из книги автора

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


Уровни защиты

Из книги автора

Уровни защиты AS/400 предназначены для широкого применения в различных областях человеческой деятельности. Соответственно, и требования к их защищенности варьируются от уровня ее полного отсутствия до уровня защиты, сертифицированной правительством. Задавая


3.2 Деление на уровни

Из книги автора

3.2 Деление на уровни Для достижения надежности обмена данными между компьютерами необходимо обеспечить выполнение нескольких операций:? Пакетирование данных? Определение путей (маршрутов) пересылки данных? Пересылку данных по физическому носителю? Регулировку


4.14 Уровни в сетях 802

Из книги автора

4.14 Уровни в сетях 802 Ознакомимся со взглядом IEEE на сетевой мир. С появлением локальных сетей 802 IEEE разделил сетевой уровень 2 (уровень связи данных) на два подуровня (см. рис. 4.15). Рис. 4.15. Уровни для локальных сетей 802Подуровень MAC обеспечивает правила доступа к носителю —


4.20.1 Уровни в X.25

Из книги автора

4.20.1 Уровни в X.25 Протокол X.25 имеет три уровня. Уровень связи данных называется балансированным протоколом доступа к связи (Link Access Protocol Balanced — LAPB), а сетевой уровень — уровнем пакетов X.25 (X.25 Packet Level). Владеющий оборудованием DTE пользователь устанавливает связь по X.25 с


6.1.2. Уровни взаимодействия OSI

Из книги автора

6.1.2. Уровни взаимодействия OSI Физический уровень (Physical Layer)Физический уровень передает биты по физическим каналам связи, например, коаксиальному кабелю или витой паре. На этом уровне определяются характеристики электрических сигналов, которые передают дискретную


3.2. Уровни зрелости

Из книги автора

3.2. Уровни зрелости Уровень зрелости представляет собой четко определенную стадию эволюции организации на пути к зрелому производственному процессу, соответствует уровню продуктивности производственного процесса, как это проиллюстрировано на рис. 2.1. Например, при


Уровни BITE

Из книги автора

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


4.3.2. Связующие уровни

Из книги автора

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


4.3.2. Связующие уровни

Из книги автора

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


Уровни

Из книги автора

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


13.1. Levels (Уровни)

Из книги автора

13.1. Levels (Уровни) Чтобы активизировать данную функцию (рис. 13.1), необходимо выполнить команду Image ? Adjustments ? Levels (Изображение ? Настройки ? Уровни) или нажать CtrL+L. Рис. 13.1. Диалоговое окно Levels (Уровни)В этом окне можно увидеть гистограмму яркости изображения. Данная функция не


Функция абстракции

Из книги автора

Функция абстракции Этот раздел требует от читателя определенной математической подготовки.Полезно рассмотреть предшествующее обсуждение в терминах следующего рисунка, навеянного работой [Hoare 1972a], в которой описывается понятие "С является корректной реализацией


Уровни RAID

Из книги автора

Уровни RAID Уровни RAID – способ организации дисков внутри массива. В 1993 году промышленный консорциум по стандартизации RAID (RAID Advisory Board – RAB) определил семь типовых уровней RAID: от 0 до 6. Термин «уровни RAID» (RAID levels) является официальным и прочно вошел в лексику компьютерных


Уровни инфраструктуры

Из книги автора

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