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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

Передумови до створення[ред. | ред. код]

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

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

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

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

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

Тегові архітектури[ред. | ред. код]

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

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

Архітектури з високорівневими машинними мовами[ред. | ред. код]

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

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

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

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

Див. також[ред. | ред. код]

Література[ред. | ред. код]

  • Wortman, David Barkley (1972). A Study of Language Directed Computer Design (PhD). Department of Computer Science, Stanford University.
  • McKeeman, William M. (November 14–16, 1967). Language directed computer design (PDF). AFIPS '67 (Fall) Proceedings of the November 14–16, 1967, Fall Joint Computer Conference. Т. 31.
  • Keirstead, Ralph E. (March 1968). R68-8 Language Directed Computer Design (PDF). IEEE Transactions on Computers. 17 (3): 298. doi:10.1109/TC.1968.229106. S2CID 41983403. – review
  • Ditzel, David R.; Patterson, David A. (1980). Retrospective on High-Level Language Computer Architecture (PDF). Proceedings of the 7th annual symposium on Computer Architecture - ISCA '80. ISCA '80 Proceedings of the 7th annual symposium on Computer Architecture. ACM. с. 97—104. doi:10.1145/800053.801914. Процитовано 18 листопада 2014.
  • A Baker’s Dozen: Fallacies and Pitfalls in Processor Design Grant Martin & Steve Leibson, Tensilica (early 2000s), slides 6–9
  • Chu, Yaohan; Cannon, R. (June 1976). Interactive High-Level Language Direct-Execution Microprocessor System. IEEE Transactions on Software Engineering. 2 (2): 126—134. doi:10.1109/TSE.1976.233802.
  • Chu, Yaohan (1978). Direct Execution In A High-Level Computer Architecture. Proceedings of the 1978 annual conference on - ACM 78. ACM '78 Proceedings of the 1978 annual conference. с. 289—300. doi:10.1145/800127.804116. ISBN 0897910001.

Посилання[ред. | ред. код]