Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
определения калабин.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
108.03 Кб
Скачать
  1. LL(1)-грамматика

LL(1)-грамматика является обобщением s-грамматики, и принцип ее обобщения все еще позволяет строить нисходящие детерминированные анализаторы.

Две буквы L в LL(1) означают, что строки разбираются слева направо (Left) и используются самые левые выводы (Left), а цифра 1 – что варианты порождающих правил выбираются с помощью одного предварительно просмотренного символа.

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

Кстати, если речь идет, например, о LL(k)-грамматике, это значит, что строки разбираются слева направо и используются самые левые выводы, а варианты порождающих правил выбираются с помощью k предварительно просмотренных символов.

  1. LR(1)-грамматика

Аналогично, термин LR(1)-грамматика подразумевает, что строки

разбираются слева направо (Left), используются самые правые выводы (Right), а варианты порождающих правил выбираются с помощью одного предварительно просмотренного символа.

  1. LR(k)-грамматика

Аналогично, термин LR(k)-грамматика подразумевает, что строки

разбираются слева направо (Left), используются самые правые выводы (Right), а варианты порождающих правил выбираются с помощью k предварительно просмотренного символа.

  1. S-грамматика

КС-грамматика называется S-грамматикой (а также раздельной, или простой) тогда и только тогда, когда выполняются два условия:

  1. Правая часть каждого правила начинается терминалом Ti.

  2. Если два правила имеют совпадающие левые части, то правые части этих правил должны начинаться различными терминальными символами.

  1. Автоматы магазинного типа

автомат магазинного типа, эквивалентный конечному автомату, к которому

добавлена память магазинного типа (стек). В функции автомата магазинного

типа входит:

а) чтение входного символа, замещение верхнего символа стека

строкой символов (возможно, пустой) и изменение состояния или

б) все то же самое, но без чтения входного символа.

  1. Алфавит

Алфавитом V называется конечное множество символов.

  1. Атрибутивные грамматики

Атрибутивные грамматики. Атрибуты применяются для описания КЗ

(точнее К-несвободных) аспектов языка.

Преимущество атрибутивных грамматик в том, что они выглядят

как КС, но могут специфицировать КЗ конструкции языка. Фактически

любой язык типа 0 можно описать с помощью атрибутивной грамматики. Так

как языки программирования представляется как КС, к которым добавляются

контекстные ограничения, атрибутивные грамматики хорошо подходят для

их описания.

  1. Блок сканирования

Блок сканирования считывает исходную программу и представляет ее в

форме файла лексем.

  1. Бэкуса–Наура форма (бнф)

синтаксические единицы

<предложение>, <подлежащее> и <сказуемое> называются

нетерминальными символами, слова "кошки", "собаки", "спят", "едят" –

терминальными символами, а правила – порождающими правилами.

Символы “::=”, “|”, а также скобки нетерминальных символов “<>” – это

метасимволы языка БНФ (метасимволы не принадлежат описываемому языку, а относятся к языку описания).

  1. Восходящий синтаксический анализ

анализ пытается строить дерево разбора для входной строки,

начиная с листьев (снизу) и работая по направлению к корню дерева (вверх).

Этот процесс можно рассматривать как свертку строки w к стартовому

символу грамматики.

  1. Генератор кода машинных команд

Создает объектный код программы

  1. Генерирование кода

  2. Грамматика

Грамматика определяется как четверка (Vt, Vn, P, S), где Vt – алфавит,

символы которого называются терминальными (терминалами), из них

строятся цепочки порождаемые грамматикой. Vn – алфавит, символы

которого называется нетерминальными (нетерминалами), используются

при построении цепочек; они могут входить в промежуточные цепочки, но не

должны входить в результат порождения. Vt и Vn не имеют общих символов,

т.е. Vt ∩Vn = Ø, полный алфавит (словарь) грамматики V определяется как Vt

∪ Vn. P – набор порождающих правил, каждый элемент которых состоит из

пары (α, β), где α находится в V+, а β в V*. α – левая часть правила, а β –

правая, т.е. цепочки, построенные из символов алфавита V. Правило

записывается α → β. S принадлежит Vn и называется начальным символом

(аксиомой). Этот символ – отправная точка в получении любого

предложения языка.

  1. Грамматика типа 0.

неограниченные грамматики — возможны любые правила

  1. Грамматика типа 1, или контекстно-зависимая (КЗ).

контекстно-зависимые грамматики — левая часть может содержать один нетерминал, окруженный «контекстом» (последовательности символов, в том же виде присутствующие в правой части); сам нетерминал заменяется непустой последовательностью символов в правой части.

  1. Грамматика типа 2, или контекстно-свободная (КС).

контекстно-свободные грамматики — левая часть состоит из одного нетерминала.

  1. Грамматика типа 3, или регулярная

Грамматика называется грамматикой типа 3, или регулярной, если

каждое правило грамматики имеют одну из следующих форм.

В случае грамматики, выровненной вправо, в правой части грамматики

имеется не более одного нетерминала, который может быть только самым

правым символом:

A → a

A → aB

B случае грамматики, выровненной влево, в правой части грамматики

имеется не более одного нетерминала, который может быть только самым

левым символом:

A → a

A → Ba