Формальный язык
В математической логике и информатике формальный язык — это множество конечных слов (строк, цепочек) над конечным алфавитом. Понятие языка чаще всего используется в теории автоматов, теории вычислимости и теории алгоритмов. Научная теория, которая имеет дело с этим объектом, называется теорией формальных языков.
В теории моделей язык соответствует не языку в информатике, а скорее алфавиту. Язык состоит из множеств символов, функций и отношений вместе с их арностью, а также множество переменных. Каждое из этих множеств может быть бесконечным. Из языка вместе с универсальными логическими символами составляются логические высказывания.
Содержание |
Определение [править]
Формальный язык может быть определён по-разному, например:
- Простым перечислением слов, входящих в данный язык. Этот способ, в основном, применим для определения конечных языков и языков простой структуры.
- Словами, порождёнными некоторой формальной грамматикой (см. иерархия Хомского).
- Словами, порождёнными регулярным выражением.
- Словами, распознаваемыми некоторым конечным автоматом.
- Словами, порождёнными БНФ-конструкцией.
Если алфавит задан как {a, b}, а язык L включает в себя все слова над ним, то слово ababba принадлежит L. Пустое слово (то есть строка нулевой длины) допускается и часто обозначается как e, ε или Λ.
Некоторые примеры формальных языков:
- множество всех слов над {a, b}
- множество
, где n — неотрицательное число, а
означает, что a повторяется n раз - множество синтаксически корректных программ в данном языке программирования
Операции [править]
Некоторые операции могут быть использованы для того, чтобы порождать новые языки из данных. Предположим, что
и
являются языками, определёнными над некоторым общим алфавитом.
- Конкатенация (сцепление)
содержит все слова, удовлетворяющие форме
, где
— это слово из
, а
— слово из
. - Пересечение
содержит все слова, содержащиеся и в
, и в
. - Объединение
содержит все слова, содержащиеся или в
, или в
. - Дополнение языка
содержит все слова алфавита, которые не содержатся в
. - Правое отношение
содержит все слова
, для которых существует слово
в
такое, что
находилось в
. - Замыкание Клини
содержит все слова, которые могут быть записаны в форме
, где
содержится в
и
. Следует помнить, что это включает и пустое слово
, так как
допустимо по условию. - Обращение
содержит обращённые слова из
. - Смешение
и
содержит все слова, которые могут быть записаны в форме
, где
и
являются такими словами, что связь
находится в
, а
являются такими словами, что
находятся в
.
См. также [править]
Литература [править]
- Гладкий А. В. Формальные грамматики и языки. — М.: Наука, 1973. — 368 с.
- Хопкрофт, Дж., Мотвани, Р., Дж. Ульман. Введение в теорию автоматов, языков и вычислений. — М.: Вильямс, 2002 (пер. издания Addison Wesley). — 528 с. — ISBN 5-8459-0261-4
- Кревский И. Г., Селивёрстов М. Н., Григорьева К. В. Формальные языки, грамматики и основы построения трансляторов: Учебное пособие / Под ред. А. М. Бершадского. — Пенза: Изд-во Пенз. гос. ун-та, 2002. — 124 с.
- Мартыненко Б. К. Языки и трансляции: Учебное пособие. — СПб.: Издательство С.-Петербургского университета, 2003. — 235 с.
- Серебряков В. А., Галочкин М. П., Гончар Д. Р., Фуругян М. Г. Теория и реализация языков программирования — М.: МЗ-Пресс, 2006 г., 2-е изд. — ISBN 94073-094-9
- Пентус А. Е., Пентус М. Р. Математическая теория формальных языков. — М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2006. — 248 с.
- Фомичёв В. С. Формальные языки, грамматики и автоматы: Курс лекций — Интернет-публикация, 2006.
, где n —
означает, что a повторяется n раз
содержит все слова, удовлетворяющие форме
, где
— это слово из
— слово из
содержит все слова, содержащиеся и в
, и в
содержит все слова, содержащиеся или в
содержит все слова
содержит все слова, которые могут быть записаны в форме
, где
содержится в
. Следует помнить, что это включает и пустое слово
, так как
допустимо по условию.
содержит обращённые слова из
, где
и
являются такими словами, что связь
находится в
являются такими словами, что
находятся в