Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры_Теория информационных процессов и систем.doc
Скачиваний:
2
Добавлен:
08.08.2019
Размер:
950.27 Кб
Скачать
  1. Формальные языки и грамматики. Классификация по Хомскому

Формальная грамматика или просто грамматика в теории формальных языков — способ описания формального языка, то есть выделения некоторого подмножества из множества всех слов некоторого конечного алфавита.

В математической логике и информатике формальный язык — это множество конечных слов над конечным алфавитом.

Согласно Хомскому, формальные грамматики делятся на четыре типа. Для отнесения грамматики к тому или иному типу необходимо соответствие всех её правил (продукций) некоторым схемам.

Тип 0 — неограниченные

К типу 0 по классификации Хомского относятся неограниченные грамматики (также известные как грамматики с фразовой структурой). Это — все без исключения формальные грамматики. Для грамматики G(VT,VN,P,S), V=VTVN все правила имеют вид:

  • , где α — любая цепочка, содержащая хотя бы один нетерминальный символ, а β — любая цепочки символов из алфавита.

Практического применения в силу своей сложности такие грамматики не имеют.

Тип 1 — контекстно-зависимые

К этому типу относятся контекстно-зависимые (КЗ) грамматики и неукорачивающие грамматики. Для грамматики G(VT,VN,P,S), V=VTVN все правила имеют вид:

  • αAβ→αγβ, где α, βV*, γV+, AVN. Такие грамматики относят к контекстно-зависимым.

  • α→β, где α, βV+, |α|<|β|. Такие грамматики относят к неукорачивающим.

Эти классы грамматик эквивалентны. Могут использоваться при анализе текстов на естественных языках, однако при построении компиляторов практически не используются в силу своей сложности.

Тип 2 — контекстно-свободные

К этому типу относятся контекстно-свободные (КС) грамматики. Для грамматики G(VT,VN,P,S), V=VTVN все правила имеют вид:

  • A→β, где βV+ (для неукорачивающих КС-грамматик, βV* для укорачивающих), AVN. То есть грамматика допускает появление в левой части правила только нетерминального символа.

КС-грамматики широко применяются для описания синтаксиса компьютерных языков (см. грамматический анализ).

Тип 3 — регулярные

К третьему типу относятся регулярные грамматики — самые простые из формальных грамматик. Все регулярные грамматики могут быть разделены на два эквивалентных класса, которые для грамматики вида III будут иметь правила следующего вида:

  • A→Bγ или A→γ, где γVT*, AVN (для леволинейных грамматик).

  • A→γB; или A→γ, где γVT*, AVN (для праволинейных грамматик).

Регулярные грамматики применяются для описания простейших конструкций: идентификаторов, строк, констант, а также языков ассемблера, командных процессоров и др.

  1. Регулярные и автоматные грамматики. Конечные автоматы

Регулярные грамматики определяют в точности все регулярные языки, и поэтому эквивалентны конечным автоматам и регулярным выражениям.

Конечный автомат — в теории алгоритмов математическая абстракция, позволяющая описывать пути изменения состояния объекта в зависимости от его текущего состояния и входных данных, при условии что общее возможное количество состояний конечно.

Существуют различные варианты задания конечного автомата. Например, конечный автомат может быть задан с помощью пяти параметров: где:

  • Q — конечное множество состояний автомата;

  • q0начальное состояние автомата ( );

  • F — множество заключительных (или допускающих) состояний, таких что . При достижении одного из этих состояний работа автомата прекращается;

  • Σ — допустимый входной алфавит (конечное множество допустимых входных символов), из которого формируются строки, считываемые автоматом;

  • δ — заданное отображение множества во множество подмножеств P(Q) (иногда δ называют функцией переходов автомата).

Автомат начинает работу в состоянии q0, считывая по одному символу входной строки. Считанный символ переводит автомат в новое состояние из Q в соответствии с функцией переходов.

Диаграмма состояний (или иногда граф переходов) — графическое представление множества состояний и функции переходов.

Таблица переходов — табличное представление функции δ.

Детерминированным конечный автоматом называется такой автомат, в котором при любой данной последовательности входных символов существует лишь одно состояние, в которое автомат может перейти из текущего.

Конечные автоматы широко используются на практике, например в синтаксических и лексических анализаторах.