300.00K
Category: informaticsinformatics

Многоуровневая компьютерная организацияя

1.

Многоуровневая компьютерная
организация
Цифровой компьютер (ЭВМ) – машина, которая может
решать задачи, исполняя данные ей команды.
Программа для ЭВМ – последовательность команд,
описывающих решение задачи.
Программа перед исполнением должна быть превращена
в последовательность простых команд, например:
• + сложить два числа;
• + проверить, не является ли число нулем;
• + скопировать блок данных из одной части памяти
компьютера в другую.

2.

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

3.

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

4.

Языки, уровни и виртуальные машины
Чтобы сделать взаимодействие с компьютером проще для
человека, формируется новый набор команд, более удобный, чем
встроенные машинные команды, = язык Я1, а машинный язык = Я0
• Компьютер может исполнять только программы, написанные на
машинном языке Я0.
Два способа решения проблемы борьбы со сложностью отличаются
тем, каким образом компьютер будет исполнять программы,
написанные на языке Я1.
Первый способ исполнения программы, написанной на языке Я1,
подразумевает замену каждой команды Я1 эквивалентным
набором команд на языке Я0 – трансляция.

5.

Языки, уровни и виртуальные машины
Второй способ создание на языке Я0 программы, получающей в
качестве входных данных программы, написанные на языке Я1.
Каждая команда языка Я1 обрабатывается поочередно, и
исполняется эквивалентный ей набор команд языка Я0.
• не требует составления новой программы на Я0 – интерпретация,
а программа, которая осуществляет интерпретацию, называется
интерпретатором.
Гораздо проще представить существование гипотетического
компьютера или виртуальной машины (М1), для которой
машинным языком является язык Я1.
Можно писать программы для виртуальных машин так, как будто
эти машины реально существуют

6.

Языки, уровни и виртуальные машины

7.

Языки, уровни и виртуальные машины
• Трансляция и интерпретация целесообразны лишь в том
случае, если языки Я0 и Я1 не слишком отличаются друг
от друга. Язык Я1 хотя и лучше, чем Я0, но все же далек
от идеала.
• Решение проблемы – создание еще одного набора
команд, которые в большей степени ориентированы на
человека и в меньшей степени на компьютер, чем Я1.
• Этот набор команд формирует язык Я2, а виртуальная
машина – М2. Программы могут либо транслироваться
на язык Я1, либо исполняться интерпретатором,
написанным на языке Я1.

8.

Языки, уровни и виртуальные машины
• Изобретение ряда языков, каждый из которых более удобен для
человека, чем предыдущий, может продолжаться бесконечно.
• Язык, находящийся в самом низу иерархической структуры –
самый примитивный, а тот, что расположен на ее вершине –
самый сложный.
• Компьютер, у которого машинным языком был бы C или C++,
оказался бы слишком сложным, но в принципе его можно
разработать – такое решение неэффективно по сравнению с
другими.
• Технология должна быть не только осуществимой, но и
рациональной.
• Компьютер с n уровнями можно рассматривать как n разных
виртуальных машин, у каждой из которых есть свой машинный
язык.

9.

Языки, уровни и виртуальные машины
• Термины «уровень» и «виртуальная машина» –
синонимы.
• Термин «виртуальная машина» также имеет и другие
значения.
• Большинству программистов, использующих машину
уровня n, интересен только самый верхний уровень,
который меньше всего сходен с машинным языком.
Чтобы понять, как работает компьютер, необходимо
изучить все уровни.
English     Русский Rules