Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.11


Таненбаум Э.- Архитектура компьютера. стр.11

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

Очевидное решение проблемы — создание еще одного набора команд, которые в большей степени, чем Я 1 ориентированы на человека и в меньшей степени на компьютер. Этот третий набор команд также формирует язык, который мы будем называть Я 2, а соответствующую виртуальную машину — М 2. Человек может писать программы на языке Я 2, как будто виртуальная машина для работы с машинным языком Я 2 действительно существует. Такие программы могут либо транслироваться на язык Я 1, либо выполняться интерпретатором, написанным на языке Я 1.

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

Таненбаум Э.- Архитектура компьютера.

Рис. 1.1. Многоуровневая машина

Между языком и виртуальной машиной существует важная зависимость. Каждая машина поддерживает какой-то определенный машинный язык, состоящий из всех команд, которые эта машина может выполнять. В сущности, машина определяет язык. Сходным образом язык определяет машину, которая может

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

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

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


⇐ Предыдущая страница| |Следующая страница ⇒

.