Формальный язык
Материал из Википедии — свободной энциклопедии
В математической логике и информатике формальный язык — это множество конечных слов (син. строк, цепочек) над конечным алфавитом. Понятие языка чаще всего используется в теории автоматов, теории вычислимости и теории алгоритмов. Научная теория, которая имеет дело с этими объектами, называется теорией формальных языков.
Например, если алфавит задан как {a, b}, а язык L включает в себя все слова над ним, то слово ababba принадлежит L.
Пустое слово (то есть строка нулевой длины) допускается и часто обозначается как e, ε или Λ.
Некоторые примеры формальных языков:
- множество всех слов над {a, b}
- множество {an}, где n — простое число, а an означает, что a повторяется n раз
- множество синтаксически корректных программ в данном языке программирования
Формальный язык может быть определен по-разному, например:
- Простым перечислением слов, входящих в данный язык. Этот способ, в основном, применим для определения конечных языков и языков простой структуры.
- Словами, порождёнными некоторой формальной грамматикой (см. иерархия Хомского)
- Словами, порождёнными регурярным выражением
- Словами, распознаваемыми некоторым конечным автоматом
- Словами, порождёнными БНФ-конструкцией
Некоторые операции могут быть использованы для того, чтобы порождать новые языки из данных. Предположим, что L1 и L2 являются языками, определёнными над некоторым общим алфавитом.
- Конкатенация (сцепление) L1L2 содержит все слова, удовлетворяющие форме vw, где v — это слово из L1, а w — слово из L2.
- Пересечение содержит все слова, содержащихся и в L1, и в L2.
- Объединение содержит все слова, содержащиеся или в L1, или в L2.
- Дополнение языка L1 содержит все слова алфавита, которые не содержатся в L1.
- Правое отношение L1 / L2 содержит все слова v, для которых существует слово w в L2 такое, что vw находидось в L1.
- Замыкание Клини содержит все слова, которые могут быть записаны в форме w1w2...wn, где wi содержится в L1 и . Следует помнить, что это включает и пустое слово ε, так как n = 0 допустимо по условию.
- Обращение содержит обращенные слова из L1.
- Смешение L1 и L2 содержит все слова, которые могут быть записаны в форме v1w1v2w2...vnwn, где и v1,...,vn являются такими словами, что связь v1...vn находится в L1, а w1,...,wn являются такими словами, что w1...wn находятся в L2.
[править] Другие значения
Следует помнить, что мы можем говорить о формальном языке во многих контекстах (научном, юридическом, лингвистическом и других), подразумевая способ выражения более осторожный и аккуратный или же более манерный, чем повседневная речь. Смысл формального языка, подразумеваемый здесь, соответствует его определению в теории формальных языков.
В терминологии теории моделей, язык соответствует не языку в информатике, а скорее алфавиту. Язык состоит из множеств символов, функций и отношений вместе с их арностью, а также множество переменных. Каждое из этих множеств может быть бесконечным. Из языка вместе с универсальными логическими символами составляются логические высказывания.
[править] Список литературы
- Хопкрофт, Дж., Мотвани, Р., Дж. Ульман (2002). Введение в теорию автоматов, языков и вычислений. Addison Wesley. ISBN 5-8459-0261-4