|
|||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Структура транслятора
Призначення основних компонентів транслятора: 1. Лексичний аналізатор. Вхід: вхідний текст (послідовність літер) програми. Вихід: послідовність лексем програми. Лексема – це ланцюжок літер, що має певний зміст. Всі лексеми мови програмування (їх кількість, як правило, нескінчена) можна розбити на скінчену множину класів. Для більшості мов програмування актуальні наступні класи лексем: - зарезервовані слова; - ідентифікатори; - числові константи (цілі та дійсні числа); - літерні константи; - рядкові константи; - коди операцій; - коментарі. Коментарі безпосередньо не несуть інформації щодо структури програми. В подальшому вони не використовуються, тобто не передаються синтаксичному аналізатору. - дужки та інші елементи програми. 2. Синтаксичний аналізатор. Вхід: послідовність лексем програми. Вихід: - “Так” + синтаксична структура (синтаксичний терм) програми, - “Ні” + синтаксичні помилки в програмі. 3. Семантичний аналізатор. Вхід: Синтаксичний терм програми. Вихід: - “Так” + семантична структура (семантичний терм) програми, - “Ні” + семантичні помилки в програмі. 4. Оптимізація проміжного коду. Вхід: семантичний терм програми. Вихід: оптимізований семантичний терм програми. Оптимізація – це еквівалентне перетворення програми на основі певних критеріїв. Серед критеріїв оптимізації можна виділити оптимізацію по пам’яті та оптимізацію по швидкості виконання результуючої програми. В залежності від підходів по оптимізації програми можна розглядати машиннозалежні та машиннонезалежні методи оптимізації. На відміну від машиннонезалежних методів машиннозалежні методи оптимізації враховують архітектурні особливості ЕОМ, наприклад, наявність апаратного стека, наявність вільних регістрів тощо. 5. Генерація об’єктного коду. Вхід: семантичний терм програми. Вихід: результуючий (об’єктний) код програми.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |