АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Мови, рівні і віртуальні машини

Читайте также:
  1. АБСТРАКТНІ КЛАСИ І ЧИСТІ ВІРТУАЛЬНІ ФУНКЦІЇ_________________________________________
  2. Автоматизоване робоче місце бухгалтера (АРМБ): призначення, функції та його рівні.
  3. Автоматизоване робоче місце бухгалтера (АРМБ): призначення, функції та його рівні.
  4. ВІРТУАЛЬНІ БАЗОВІ КЛАСИ___________________________________________________________
  5. Віртуальні канали і віртуальні шляхи
  6. ВІРТУАЛЬНІ ФУНКЦІЇ_________________________________________________________________
  7. ГИЧКОЗБИРАЛЬНІ МАШИНИ. БУРЯКОНАВАНТАЖУВАЧІ-ОЧИСНИКИ
  8. Гранично допустимі рівні локальної вібрації
  9. Действия машиниста при снятии напряжения в контактной сети
  10. Екстраполяція трендів як один із методів прогнозування рівнів соціально-економічних явищ
  11. ЕТАПИ ІННОВАЦІЙНОГО ПРОЦЕСУ НА МАКРО- ТА МІКРОРІВНІ
  12. Загальний огляд віртуальної машини Java

 

Існує величезна різниця в тому, що зручно для людей, і тому, що зручно для комп'ютерів. Люди хочуть зробити X, але комп'ютери можуть зробити тільки Y. Через це виникають проблеми. Проблему можна вирішити двома способами. Дані способу містять у собі розробку нових команд, що більш зручні для людини, ніж вбудовані машинні команди. Ці нові команди в сукупності формують мову, яку назвемо М1. Вбудовані машинні команди теж формують мову, яку назвемо М0. Комп'ютер може виконувати тільки програми, написані на його машинній мові М0. Згадані два способи рішення проблеми розрізняються тим, яким чином комп'ютер буде виконувати програми, написані мовою М1.

Перший спосіб виконання програми, написаної мовою М1, – заміна кожної команди на еквівалентний набір команд у мові М0. У цьому випадку комп'ютер виконує нову програму, написану мовою М0, замість старої програми, написаної на М1. Ця технологія називається трансляцією.

Другий спосіб – написання програми мовою М0, що бере програми, написані мовою М1, у якості вхідних даних, розглядає кожну команду по черзі і відразу виконує еквівалентний набір команд мови М0. Ця технологія не вимагає складання нової програми на М0. Вона називається інтерпретацією, а програма, що здійснює інтерпретацію, називається інтерпретатором.

Трансляція й інтерпретація подібні. При застосуванні обох методів комп'ютер в остаточному підсумку виконує набір команд мовою М0, еквівалентних командам М1. Розходження лише в тому, що при трансляції вся програма М1 перетворюється в програму М0, програма М1 відкидається, а нова програма на М0 завантажується в пам'ять комп'ютера і потім виконується.

При інтерпретації кожна команда програми на М1 перекодується в М0 и відразу ж виконується. На відміну від трансляції, тут не створюється нова програма на М0, а відбувається послідовне перекодування і виконання команд. Обидва ці методу, а також їхня комбінація широко використовуються.

Звичайно набагато простіше уявити собі існування гіпотетичного комп'ютера або віртуальної машини, для якої машинною мовою є мова М1, ніж думати про трансляцію й інтерпретацію. Назвемо таку віртуальну машину ММ 1, а віртуальну машину з мовою М0 – ММ0. Якби таку машину ММ 1 можна було б сконструювати без великих грошових витрат, мова М0 і машина, що виконує програми мовою М0, були б не потрібні. Можна було б просто писати програми мовою М1, а комп'ютер відразу б їхній виконував. Ці програми можуть транслюватися або інтерпретуватися програмою, написаної мовою М0, яка сама могла б виконуватися фактично існуючим комп'ютером. Іншими словами, можна писати програми для віртуальних машин, начебто вони дійсно існують.

Щоб трансляція й інтерпретація були доцільними, мови М0 і М1 не повинні сильно розрізнятися. Це значить, що мова М1 хоча і краща за М0, але все-таки далека від ідеалу.

Очевидний розв’язок цієї проблеми – створення ще одного набору команд, що у більшому ступені орієнтовані на людину й у меншому ступені на комп'ютер, за М1. Цей третій набір команд також формує мову, яку назвемо М2, а відповідну віртуальну машину – ММ 2. Людина може писати програми мовою М 2, так ніби віртуальна машина з машинною мовою М 2 дійсно існує. Такі програми можуть або транслюватися на мову М1, або виконуватися інтерпретатором, написаним мовою М1.

Винахід цілого ряду мов, кожний з який більш зручний для людини, ніж попередній, може продовжуватися доти, поки ми не дійдемо до зручної людині мови. Кожна така мова використовує попередню як основу, тому комп'ютер можна розглядати у вигляді ряду рівнів, як показано на рис.1.1. Мова, що знаходиться в самому низі ієрархічної структури – найпримітивніша, а найвища – найскладніша.

 

 

Програми на мові Я1 або інтерп-

ретуються програмою-інтерп-

ритатором, яка працює на ма-

рівень n шині більш нижчого рівня, або

. транслюються на машину мову

. машини більш нижчого рівня

.

 
 


рівень 3

 

Програми на мові Я1 або

інтерпретуються

програмами-інтерпритатором,

які працюють на машині M1 чи

рівень 2 M0, або транслюються

наЯ1чи Я0

 
 

 


Програми на мові Я1 або

інтерпретуються

програмами-інтерпритатором,

рівень 1 які працюють на машині M0,

або транслюються на Я0

 
 


 

Програми Я0 безпосередньо

рівень 0 виконуються електронними

схемами

 

 

Рис. 1.1 Багаторівнева машина

 

Між мовою і віртуальною машиною існує важлива залежність. У кожної машини є якась визначена машинна мова, що складається з усіх команд, які ця машина може виконувати. По суті, машина визначає мову. Подібним чином мова визначає машину, що може виконувати всі програми, написані на цій мові.

Комп'ютер з п рівнями можна розглядати як п різних віртуальних машин, у кожної з яких є своя машинна мова. Терміни “рівень” і “віртуальна машина” використовуються як синоніми. Тільки програми, написані на М0, можуть виконуватися комп'ютером без застосування трансляції й інтерпретації. Програми, написані на М1, М2,..., М п, повинні проходити через інтерпретатор більш низького рівня або транслюватися на мову, що відповідає більш низькому рівню.

Людині, що пише програми для віртуальної машини рівня п, не обов'язково знати про транслятори й інтерпретаторів більш низьких рівнів. Машина виконає ці програми, і не важливо, чи будуть вони виконуватися крок за кроком, чи інтерпретатором їх буде виконувати сама машина. В обох випадках результат той самий: програма буде виконана.

Однак тим, хто хоче зрозуміти, як у дійсності працює комп'ютер, або проектує нові комп'ютери, необхідно вивчити всі рівні. Поняття і технічні прийоми конструювання машин як системи рівнів, а також деталі рівнів складають основу архітектури комп’ютерів.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)