видати два керівництво по машинній мові, окремо для кожного інтерпретатора.
Наступний рівень зазвичай гібридний. Більшість команд в його мові є також і на рівні архітектури системи команд (команди, що є на одному з рівнів, цілком можуть знаходитися на інших рівнях). У цього рівня є деякі додаткові особливості: набір нових команд, інша організація пам'яті, здатність виконувати дві і більш за програми одночасно і деякі інші. При побудові третього рівня можливі більше варіантів, чим при побудові першого і другого.
Нові засоби, що з'явилися на третьому рівні, виконуються інтерпретатором, який працює на другому рівні. Цей інтерпретатор був колись названий операційною системою. Команди третього рівня, ідентичні командам другого рівня, виконуються мікропрограмою або апаратним забезпеченням, але не операційною системою. Іншими словами, одна частина команд третього рівня інтерпретується операційною системою, а інша частина — мікропрограмою. От чому цей рівень вважається гібридним. Ми називатимемо цей рівень рівнем операційної системи.
Між третім і четвертим рівнями є істотна різниця. Нижні три рівня конструюються не для того, щоб з ними працював звичайний програміст. Вони спочатку призначені для роботи інтерпретаторів і трансляторів, що підтримують вищі рівні. Ці транслятори і інтерпретатори складаються так званими системними програмістами, які спеціалізуються на розробці і побудові нових віртуальних машин. Рівні з четвертого і вищеописані для прикладних програмістів, вирішальних конкретні завдання. Ще одна зміна, що з'явилася на рівні 4, — спосіб, яким підтримуються вищі рівні. Рівні 2 і 3 зазвичай інтерпретуються, а рівні 4, 5 і вище зазвичай, хоч і не завжди, підтримуються транслятором. Інша відмінність між рівнями 1,2,3 і рівнями 4,5 і вище — особливість мови. Машинні мови рівнів 1,2 і З — цифрові. Програми, написані на цих мовах, складаються з довгих лав цифр, які зручні для комп'ютерів, але абсолютно незручні для людей. Починаючи з четвертого рівня, мови містять слова і скорочення, зрозумілі людині.
Четвертий рівень є символічною формою однієї з мов нижчого рівня. На цьому рівні можна писати програми в прийнятній для людини формі. Ці програми спочатку транслюються на мову рівня 1, 2 або 3, а потім інтерпретуються відповідною віртуальною або такою, що фактично існує машиною. Програма, яка виконує трансляцію, називається асемблером.
П'ятий рівень зазвичай складається з мов, розроблених для прикладних програмістів. Такі мови називаються мовами високого рівня. Існують сотні мов високого рівня. Найбільш відомі серед них — BASIC, З, C++, Java, LISP і Prolog. Програми, написані на цих мовах, зазвичай транслюються на рівень 3 або 4. Транслятори, які обробляють ці програми, називаються компіляторами. Відзначимо, що іноді також використовується метод інтерпретації. Наприклад, програми на мові Java зазвичай інтерпретуються. В деяких випадках п'ятий рівень складається з інтерпретатора для такої сфери додатку, як символічна математика. Він забезпечує дані і операції для вирішення завдань в цій сфері в термінах, зрозумілих людям, досвідченим в символічній математиці.
Вивід: комп'ютер проектується як ієрархічна структура рівнів, кожен з яких надбудовується над попереднім. Кожен рівень є певною абстракцією з різними об'єктами і операціями. Розглядаючи комп'ютер так само, ми можемо не приймати до уваги непотрібні нам деталі і звести складний предмет простішому для розуміння.
Набір типів даних, операцій і особливостей кожного рівня називається архітектурою. Архітектура пов'язана з аспектами, які видно програмістові. Наприклад, відомості про те, скільки пам'яті можна використовувати при написанні програми, — частина архітектури. А аспекти розробки (наприклад, яка технологія використовується при створенні пам'яті) не є частиною архітектури. Вивчення того, як розробляються ті частини комп'ютерної системи, які видно програмістам, називається вивченням комп'ютерної архітектури. Терміни «комп'ютерна архітектура» і «комп'ютерна організація» означають по суті одне і те ж.
Розвиток комп'ютерної архітектури
В період розвитку комп'ютерних технологій були розроблені сотні різних комп'ютерів. Багато хто з них давно забутий, але деякі сильно вплинули на сучасні ідеї. У цьому розділі ми дамо короткий огляд деяких ключових історичних моментів, щоб краще зрозуміти, яким чином розробники дійшли до створення сучасних комп'ютерів.
Комп'ютери, які ми розглядатимемо, представлені в табл. 1.
Нульове покоління — механічні комп'ютери (1642-1945)
Першою людиною, що створила рахункову машину, був французький учений Блез Паскаль (1623-1662), на честь якого названа одна з мов програмування. Паскаль сконструював цю машину в 1642 році, коли йому було всього 19 років, для свого отця, складальника податків. Вона була механічна: з шестерінками і ручним приводом. Рахункова машина Паскаля могла виконувати тільки операції складання і віднімання.
Тридцять років через великого німецького математика Готфрід Вільгельм Лейбніц (1646-1716) побудував іншу механічну машину, яка окрім складання і віднімання могла виконувати операції множення і ділення. По суті, Лейбніц три століття назад створив подібність кишенькового калькулятора з чотирма функціями. Ще через 150 років професор математики Кембріджського університету Чарльз Беббідж (1792-1871), винахідник спідометра, розробив і сконструював різницеву машину. Ця механічна машина, яка, як і машина Паскаля, могла тільки складати і віднімати, підраховувала таблиці чисел для морської навігації. У машину був закладений тільки один алгоритм — метод кінцевих різниць з використанням поліномів. У цієї машини був досить цікавий спосіб виведення інформації: результати видавлювалися сталевим штампом на мідній дощечці, що передбачило пізніші засоби введення-виводу — перфокарти і компакт-диски. Хоча цей пристрій працював досить непогано, Беббіджу незабаром наскучила машина, що виконувала тільки один алгоритм. Він витратив дуже багато часу, велику частину свого сімейного стану і ще 17000 фунтів, виділених урядом, па розробку аналітичної машини. У аналітичної машини