logo search
AOM / Мельник А

3.6. Вплив технологи компілювання на систему команд комп'ютера

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

Структура сучасного компілятора показана на рис. 3.43. Перша процедура передба­чає перехід з мови програмування високого рівня до деякої простої проміжної мови і є залежною від мови програмування та незалежною від апаратних засобів комп'ютера.

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

На третій процедурі виконується глобальна оптимізація з врахуванням базових ар­хітектурних принципів побудови комп'ютера. Тут здійснюється прив'язка до конкрет­них типів комп'ютерних пристроїв. На останній процедурі здійснюється детальний ви­бір команд та машинно-залежна оптимізація.

123