Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen1.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
82.28 Кб
Скачать

49. Опишіть клас граматики, який використовується на етапі створення синтаксичного аналізатора.

- LL(k)-граматики (51)

50. Опишіть lr(k)-граматики.

Детерміновані висхідні розпізнавачі, так само як і спадні , можуть бути побудовані не для всякої КС- граматики , а тільки для певних підкласів таких граматик . Найбільш широким підкласом КС- граматик є LR ( k ) - граматики. Ці граматики забезпечують розпізнавання ланцюжка при перегляді зліва направо , про це говорить буква L ( Left ) у назві граматики , і дозволяють виконати правосторонній згортання , це показує буква R ( Right ) у назві . Параметр k говорить про те , що для визначення того правила граматики , яке потрібно застосувати для згортання ланцюжка , буде потрібно переглянути не більше k ще не прочитав символів вхідного ланцюжка . У загальному випадку алгоритми побудови розпізнавачів дл LR ( k ) - граматик виявляються досить складними і трудомісткими , тому на практиці найчастіше використовують підкласи LR ( k ) - граматик : LR ( 0 ) , або SLR ( 1 ) - прості ( Simple) LR ( 1 ) - граматики , що дозволяють відносно просто виконувати побудову висхідних розпізнавачів . При цьому для кожного підкласу LR ( k ) - граматик використовується свій алгоритм побудови . Якщо задана КС- граматика , то визначити її приналежність до одного з підкласів граматик LR ( k ) можна тільки шляхом аналізу можливості побудови для неї за допомогою певного алгоритму детермінованого розпізнавача . Враховуючи останню обставину , домовимося називати распознаватели по підкласу відповідних граматик : LR ( 0 ) - розпізнавач або SLR ( 1 ) – розпізнавач.

51. Опишіть ll(k)-граматики.

Існує клас граматик, заснований саме на цьому принципі - виборі однієї альтернативи з безлічі можливих на основі декількох чергових символів в ланцюжку. Це так звані LL (k)-граматики. Граматика називається LL ( k ) - граматикою , якщо вона має властивість LL ( k ) для деякого k > 0. Назва « LL ( k ) » несе певний сенс. Перша літера «L» походить від слова « left » і означає , що вхідні ланцюжок символів читається в напрямку зліва направо . Друга літера «L» також походить від слова « left » і означає , що при роботі розпізнавача використовується лівобічний висновок . Замість « k » у назві класу граматики варто деяке число , яке показує , скільки символів треба розглянути, щоб однозначно вибрати одну з безлічі альтернатив .

52. Транслятори, компілятори та інтерпретатори – описати загальну схему роботи.

Транслятор це програма, що переводить вхідну програму на вихідній (вхідній) мові в еквівалентну їй вихідну програму на результуючій (вихідній) мові. Компілятор це транслятор, що здійснює переклад вихідної програми в еквівалентну їй обєктну програму мовою машинних команд або мовою ассемблера. Таким чином, компілятор відрізняється від транслятора лише тим, що його результуюча програма завжди повинна бути написана мовою машинних кодів чи мовою ассемблера. Результуюча програма транслятора, у загальному випадку, може бути написана на будь-якій мові. Відповідно, усякий компілятор є транслятором, але не навпаки не всякий транслятор буде компілятором. Необхідність компіляторів зявилася одночасно з появою мов програмування високого рівня. Інтерпретатор  це програма, що сприймає вхідну програму вихідною мовою і виконує її. Інтерпретатор, так само як і транслятор, аналізує текст вихідної програми. Однак він не породжує результуючої програми, а відразу ж виконує вихідну відповідно до її змісту, заданим семантикою вхідної мови.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]