Лучшие вопросы
Таймлайн
Чат
Перспективы
Формальный язык
исчисление, обычно цепочек, над конечным алфавитом Из Википедии, свободной энциклопедии
Remove ads
Форма́льный язы́к в математической логике, информатике и лингвистике — множество конечных слов (строк, цепочек) над конечным алфавитом. Понятие языка чаще всего используется в теории автоматов, теории вычислимости и теории алгоритмов. Научная теория, которая имеет дело с этим объектом, называется теорией формальных языков.

В теории моделей язык строится из множеств символов, функций и отношений вместе с их арностью, а также множества переменных. Каждое из этих множеств может быть бесконечным. Из языка вместе с универсальными логическими символами составляются логические высказывания.
Remove ads
Определение
Суммиров вкратце
Перспектива
Формальный язык может быть определён по-разному, например:
- Простым перечислением слов, входящих в данный язык. Этот способ, в основном, применим для определения конечных языков и языков простой структуры.
- Словами, порождёнными некоторой формальной грамматикой (см. иерархия Хомского).
- Словами, порождёнными регулярным выражением.
- Словами, распознаваемыми некоторым конечным автоматом.
- Словами, порождёнными БНФ-конструкцией.
Например, если алфавит задан как , а язык включает в себя все слова над ним, то слово принадлежит . Пустое слово (то есть строка нулевой длины) допускается и часто обозначается как , или .
Некоторые другие примеры формальных языков:
- множество , где — неотрицательное число, а означает, что повторяется раз;
- множество синтаксически корректных программ в данном языке программирования.
Remove ads
Операции
Некоторые операции могут быть использованы для того, чтобы порождать новые языки из данных. Предположим, что и являются языками, определёнными над некоторым общим алфавитом.
- Конкатенация (сцепление) содержит все слова, удовлетворяющие форме , где — это слово из , а — слово из .
- Пересечение содержит все слова, содержащиеся и в , и в .
- Объединение содержит все слова, содержащиеся в или в .
- Дополнение языка содержит все слова алфавита, которые не содержатся в .
- Правое отношение содержит все слова , для которых существует слово в такое, что находилось в .
- Замыкание Клини содержит все слова, которые могут быть записаны в форме , где содержится в и . Следует помнить, что это включает и пустое слово , так как допустимо по условию.
- Обращение содержит обращённые слова из .
- Смешение и содержит все слова, которые могут быть записаны в форме , где и являются такими словами, что связь находится в , а являются такими словами, что находятся в .
Remove ads
История
Суммиров вкратце
Перспектива
В XVII веке Готфрид Лейбниц представил и описал идею о «characteristica universalis» — универсальном и формальном языке, использующем пиктограммы. В этот период Карл Фридрих Гаусс также занимался проблемой нотацией Гаусса[1].
Готлоб Фреге попытался воплотить идеи Лейбница в системе обозначений, которая была впервые описана в его работе «Begriffsschrift[нем.]» (1879) и более полно разработана в двухтомнике «Grundgesetze der Arithmetik[нем.]» (1893/1903). Эта система описывала «формальный язык чистой логики»[2].
В первой половине XX века были сделаны несколько разработок, имеющих отношение к формальным языкам. Аксель Туэ опубликовал четыре статьи, связанные с понятиями слов и языка, между 1906 и 1914 годами. В последней из них были представлены теории, которые Эмиль Пост позже назвал системами Туэ, и дал первый пример неразрешимой проблемы — проблемы равенства для полугрупп[3]. Пост позже использовал эту статью в своём доказательстве в 1947 году «о том, что проблема слов для полугрупп является рекурсивно неразрешимой»[4], а также разработал каноническую систему для создания формальных языков.
Ноам Хомский создал абстрактное представление формальных и естественных языков, известное как иерархия Хомского[5]. В 1959 году Джон Бэкус разработал форму для описания синтаксиса языка программирования высокого уровня на основе своей работы по созданию Фортрана. Питер Наур был редактором «Доклада об алгоритмическом языке Алгол 60», в котором он использовал форму Бэкуса — Наура для описания формальной части Алгола 60.
См. также
Примечания
Литература
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads