Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзамен (Автосохраненный).docx
Скачиваний:
40
Добавлен:
26.03.2015
Размер:
75.88 Кб
Скачать

29. Формальные языки. Общее понятие, область применения.

В теории моделей язык соответствует не языку в информатике, а скорее алфавиту. Язык состоит из множеств символов, функций и отношений вместе с их арностью, а также множество переменных. Каждое из этих множеств может быть бесконечным. Из языка вместе с универсальными логическими символами составляются логические высказывания. Формальные языки являются математическими объектами, в определённом смысле аналогичными естественным языкам. Формальные языки, в конечном счете, нужны нам как надёжные средства представления информации, допускающие автоматическую её переработку без участия человека, понимающего смысл предложений. Такая переработка информации возможна только путём переработки символьных конструкций, являющихся предложениями. Следовательно, смысл предложений должен однозначно определяться структурой этих предложений, запасённых в системе и привлекаемых в процессе переработки. В конечном счёте, смысл должен определятся формой. Отсюда происходит термин формальный язык. Понятие языка чаще всего используется в теории автоматов, теории вычислимости и теории алгоритмов. Научная теория, которая имеет дело с этим объектом, называется теорией формальных языков.Формальный язык может быть определён по-разному, например:

Простым перечислением слов, входящих в данный язык. Этот способ, в основном, применим для определения конечных языков и языков простой структуры.

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

Словами, порождёнными регулярным выражением.

Словами, распознаваемыми некоторым конечным автоматом.

Словами, порождёнными БНФ-конструкцией.

Если алфавит задан как {a, b}, а язык L включает в себя все слова над ним, то слово ababba принадлежит L. Пустое слово (то есть строка нулевой длины) допускается и часто обозначается как e, ε или Λ.

Некоторые примеры формальных языков:

множество всех слов над {a, b}

множество , где n — неотрицательное число, а означает, что a повторяется n раз множество синтаксически корректных программ в данном языке программирования

30. Формальные грамматики. Общее понятие, классификация.

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

Типы грамматик

По иерархии Хомского, грамматики делятся на 4 типа, каждый последующий является более ограниченным подмножеством предыдущего (но и легче поддающимся анализу):

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

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

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

тип 3. регулярные грамматики — более простые, эквивалентны конечным автоматам.

Применение

Контекстно-свободные грамматики широко применяются для определения грамматической структуры в грамматическом анализе.

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