Відкрити головне меню

Архітектура з розвинутими засобами інтерпретації

Архітектура з розвинутими засобами інтерпретації (архітектура комп'ютера з високорівневою машинною мовою) — архітектура комп'ютера, у машинний код якого інтегровані[як?] елементи мов високого рівня, або яка на апаратному рівні підтримує деякі складні програмні абстракції.

Зміст

Передумови до створенняРедагувати

Надмірна універсальність фон-нойманівської архітектури (хоча коректніше буде термін «архітектура з низькорівневою машинною мовою») та її «примітивність» в порівнянні з методами високорівневого програмування, які набули серйозного розвитку в 70-ті роки, логічно призвела до бажання забезпечити апаратну підтримку цих високорівневих методів в обчислювальних системах. Та універсальна та низькорівнева парадигма програмування, яку забезпечували класичні архітектури з їх простою машинною мовою та прямим доступом до апаратури, також була причиною частих програмних помилок та низької продуктивності праці.

Інтеграція мов програмування високого рівня та підтримка високорівневих парадигм програмування могли підняти на якісно новий рівень швидкодію ЕОМ, надійність всього програмно-апаратного комплексу, знизити складність та трудомісткість програмування.

Введений тоді ж термін «семантичний розрив» позначував невідповідність між принципами, які покладені в основу мов високого рівня і тими, які реалізуються в класичних ЕОМ з низькорівневою машинною мовою.

Примітивні архітектури ЕОМ критикувались[ким?] за лінійну структуру пам'яті, відсутність апаратної підтримки високорівневих структур даних, таких, як масиви, дерева або зв'язані списки, відсутність засобів апаратного захисту програм та підтримки на рівні архітектури ЕОМ типізації даних.

Об'єктивно така невідповідність призводила до підвищення складності «перекладача» з високорівневої мови на низькорівневу, тобто компілятора. Компілятор в процесі трансляції здійснював підстановки фрагментів коду, які відповідали за перевірку типів, їхнє приведення, роботу з високорівневими структурами тощо. З інтеграцією цих абстракцій в апаратуру, виникала можливість значно спростити складність таких компіляторів.

Тегові архітектуриРедагувати

Як доволі простий приклад можна навести так звану тегову архітектуру, яка відрізнялась від фон-нойманівської тим, що різні типи інформації зберігались разом з додатковими полями, тегами (у типа «число» був один тег, у типа «строка» — інший тощо).

Наявність таких тегів забезпечувала самовизначення даних. На апаратному рівні забезпечувався захист від таких типових помилок програмістів, як складання числа зі строкою тексту — машина відслідковувала сумісність типів. З іншого боку, відпадала необхідність в різних захисних «обрамленнях», які генерувались компіляторами для забезпечення приведення типів (наприклад, процес складання цілого числа з числом з плаваючою комою потребував перетворення типів, алгоритм якого міг бути досить великим). Це привзодило до підвищення швидкодії.

Архітектури з високорівневими машинними мовамиРедагувати

Великою популярністю користувалась також ідея створення машин з мовами, наближеними до мов високого рівня. Одною з найдивніших з цих архітектур можна вважати систему Intel iAPX432 з апартною підтримкою принципів об'єктно-орієнтованого програмування, функцій операційної системи та витончених методів захисту програм. Але насправді на забезпечення цих високорівневих можливостей, зокрема перевірок, порівнянь ключів, типів даних та іншого витрачалась більша частина машинного часу процесора. Офіційних даних швидкодії щодо цієї машини фірма Intel широко не публікувала, але з деяких джерел відомо, що вони були досить песимістичними.

Але деякі механізми, насамперед механізм дескрипторів для апаратного захисту пам'яті та організації захищеного режиму роботи, був потім інтегрований в процесор i386 та подальшу лінійку архітектур IA-32.

Хоча слід зазначити, що протягом 70-х деякі представники архітектур з мовами високого рівня користувались популярністю, але в обмеженому класі задач, насамперед пов'язаних з керуванням економічними процесами, тобто там де програмування за визначенням завжди було високорівневим, і це істотно полегшувало реалізацію та супровід складних інформаційних систем.

В Україні ЕОМ з розвиненими засобами інтерпретації в радянські часи активно займався Інститут кібернетики НАН України. Було випущено декілька успішних моделей ЕОМ з високорівневою мовою програмування, зокрема серія інженерних систем «МИР».

Див. такожРедагувати