Лекция
Привет, Вы узнаете о том , что такое формальные языки, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое формальные языки, формальные грамматики, аналитические грамматики , настоятельно рекомендую прочитать все из категории Компьютерная лингвистика.
Формальная грамматика или просто грамматика в теории формальных языков — способ описания формального языка, то есть выделения некоторого подмножества из множества всех слов некоторого конечного алфавита. Различают порождающие и распознающие (или аналитические) грамматики — первые задают правила, с помощью которых можно построить любое слово языка, а вторые позволяют по данному слову определить, входит ли оно в язык или нет.
В теории языков рассматриваются принципы и особенности построения различных языков. До начала XX века существовали только естественные (разговорные языки). При этом под языком понималось средство общения между людьми. С развитием лингвистики было установлено, что средства общения присущи не только человеку. В настоящее время под языком понимается любое средство общения.
Язык включает следующие составные части:
В качестве знаков языка могут выступать:
Отметим, что в информационных технологиях вся информация представляется в виде строк. Таким образом, любое преобразование данных в ЭВМ заключается в преобразовании одних строк в другие.
Семантика языка зависит от происхождения и характера языка, т.е. от характера объектов, описываемых языком. Синтаксис языка меньше зависит от характера языка. Поэтому при изучении синтаксиса можно использовать формальный подход.
Суть формального подхода заключается в том, что язык рассматривается как множество формальных объектов, построенных по определенным правилам. В качестве формальных объектов выступают последовательности символов. При построении таких последовательностей их смысл не учитывается. Появление и развитие формального подхода связано с необходимостью решения задач следующего типа:
В зависимости от происхождения и степени универсальности языки можно разделить на типы, представленные на рис.12.1
Естественные языки возникают и развиваются постепенно с развитием общества в течение длительного времени.
Искусственные языки разрабатываются специально для определенной области применения за относительно короткий период времени.
Универсальные языки используются для общения людей в повседневной жизни.
Специализированные языки являются средством общения достаточно узкого круга людей при обмене информацией в некоторой специальной области знаний. Примерами специализированных языков могут быть различные профессиональные жаргоны (язык пользователей ЭВМ), язык алгебры, язык алгебры логики и т.д.
Особенности естественных языков вытекают из их происхождения. Основные особенности, затрудняющие формальный подход к изучению естественных языков, перечислены ниже.
* Зависимость синтаксиса от семантики (смысла). Например, окончания слов могут зависеть от того, к каким объектам относятся эти слова, одушевленным или неодушевленным. Для примера рассмотрим две похожих фразы:
"Я увидел пень" (Что?).
"Я увидел оленя" (Кого?).
* Семантическая и синтаксическая неоднозначность. Семантическая неоднозначность возникает из-за того, что некоторые слова могут иметь различный смысл. Например, фраза "Косой шел с косой" может иметь различный смысл в зависимости от контекста. Синтаксическая неоднозначность возникает из-за недостаточной строгости синтаксических правил. Например, фраза "Бытие определяет сознание" может быть истолкована различным образом. Если считать, что базовым элементом является бытие, то исходную фразу можно заменить на фразу " Бытие является главным и оно определяет сознание". Но исходная фраза может быть истолкована и так: "Бытие определяется сознанием".
* Возможность появления парадоксальных предложений. Парадоксальные предложения построены так, что их нельзя отнести ни к истинным, ни к ложным. Примером парадоксального предложения является фраза: "Данное предложение является ложным".
12.3. формальные языки и их особенности.
Большинство искусственных языков использует при построении предложений формальные, т.е. не зависящие от смысла, правила. Такие языки называются формальными. Синтаксис формальных языков должен обеспечивать возможность формального подхода к построению предложений. Поэтому формальные языки имеют следующие особенности
Формальные языки, как и естественные, могут со временем изменяться. Но в отличие от естественных языков эти изменения проявляются не постепенно, а путем появления новых версий языков. При этом различные версии одного и того языка можно рассматривать как различные языки.
Наименьшей синтаксической единицей формального языка является символ. Символ (буква) - это простой неделимый знак. Множество символов языка составляют алфавит.
Словами языка, заданного грамматикой, являются все последовательности терминалов, выводимые (порождаемые) из начального нетерминала по правилам вывода.
Итак, грамматика определяется следующими характеристиками:
Выводом называется последовательность строк, состоящих из терминалов и нетерминалов, где первой идет строка, состоящая из одного стартового нетерминала, а каждая последующая строка получена из предыдущей путем замены некоторой подстроки по одному (любому) из правил. Конечной строкой является строка, полностью состоящая из терминалов, и следовательно являющаяся словом языка.
Существование вывода для некоторого слова является критерием его принадлежности к языку, определяемому данной грамматикой.
По иерархии Хомского, грамматики делятся на 4 типа, каждый последующий является более ограниченным подмножеством предыдущего (но и легче поддающимся анализу):
Кроме того, выделяют:
Терминальный алфавит:
= {'0','1','2','3','4','5','6','7','8','9','+','-','*','/','(',')'}
Нетерминальный алфавит:
{ ФОРМУЛА, ЗНАК, ЧИСЛО, ЦИФРА }
Правила:
1. Об этом говорит сайт https://intellect.icu . ФОРМУЛАФОРМУЛА ЗНАК ФОРМУЛА (формула есть две формулы, соединенные знаком) 2. ФОРМУЛА
ЧИСЛО (формула есть число) 3. ФОРМУЛА
( ФОРМУЛА ) (формула есть формула в скобках) 4. ЗНАК
+ | - | * | / (знак есть плюс или минус, или умножить, или разделить) 5. ЧИСЛО
ЦИФРА (число есть цифра) 6. ЧИСЛО
ЧИСЛО ЦИФРА (число есть число и цифра) 7. ЦИФРА
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 (цифра есть 0 или 1, или ... 9 )
Начальный нетерминал:
ФОРМУЛА
Вывод:
Выведем формулу (12+5) с помощью перечисленных правил вывода. Для наглядности, стороны каждой замены показаны попарно, в каждой паре заменяемая часть подчеркнута.
ФОРМУЛА (ФОРМУЛА)
(ФОРМУЛА) (ФОРМУЛА ЗНАК ФОРМУЛА)
(ФОРМУЛА ЗНАК ФОРМУЛА) (ФОРМУЛА + ФОРМУЛА)
(ФОРМУЛА + ФОРМУЛА) (ФОРМУЛА + ЧИСЛО)
(ФОРМУЛА + ЧИСЛО) (ФОРМУЛА + ЦИФРА)
(ФОРМУЛА + ЦИФРА) (ФОРМУЛА + 5)
(ФОРМУЛА + 5) (ЧИСЛО + 5)
(ЧИСЛО + 5) (ЧИСЛО ЦИФРА + 5)
(ЧИСЛО ЦИФРА + 5) (ЦИФРА ЦИФРА + 5)
(ЦИФРА ЦИФРА + 5) (1 ЦИФРА + 5)
(1 ЦИФРА + 5) (1 2 + 5)
Порождающие грамматики — не единственный вид грамматик, однако наиболее распространенный в приложениях к программированию. В отличие от порождающих грамматик, аналитическая (распознающая) грамматика задает алгоритм, позволяющий определить, принадлежит ли данное слово языку. Например, любой регулярный язык может быть распознан при помощи грамматики, задаваемой конечным автоматом, а любая контекстно-свободная грамматика — с помощью автомата со стековой памятью. Если слово принадлежит языку, то такой автомат строит его вывод в явном виде, что позволяет анализировать семантику этого слова.
В теории моделей язык строится из множеств символов, функций и отношений вместе с их арностью, а также множества переменных. Каждое из этих множеств может быть бесконечным. Из языка вместе с универсальными логическими символами составляются логические высказывания.
Формальный язык может быть определен по-разному, например:
Например, если алфавит задан как , а язык
включает в себя все слова над ним, то слово
принадлежит
. Пустое слово (то есть строка нулевой длины) допускается и часто обозначается как
,
или
.
Некоторые другие примеры формальных языков:
Некоторые операции могут быть использованы для того, чтобы порождать новые языки из данных. Предположим, что и
являются языками, определенными над некоторым общим алфавитом.
Формальная семантика — дисциплина, изучающая семантику (интерпретации) формальных и естественных языков путем их формального описания в математических терминах.
Формальный язык может быть задан без какой-либо интерпретации. Это достигается заданием множества символов (также называемого алфавитом) и множества правил вывода (также называемого формальной грамматикой), которые определяют, какие строки символов являются правильно построенными формулами. При добавлении правил преобразования и принятии некоторых предложений за аксиомы (что вместе называется дедуктивной системой), формируется логическая система. Интерпретация — это задание смысла ее символам и значений истинности ее предложениям.
До становления современной логики, в «Органоне» Аристотеля, а именно в работе «Об истолковании» были заданы основы понимания и значения логики. Введение кванторов должно было решить проблему общности множеств, не решаемую в рамках субъектно-предикатного анализа Аристотеля, хотя в логике термов появляется новый интерес, а именно попытки построить исчисление в духе силлогистики Аристотеля, но используя свойства общности кванторов из современной логики.
Основными современными подходами к семантике для формальных языков являются:
Лингвисты редко применяли формальные семантики до тех пор, пока Ричард Монтегю не показал как можно воспринимать английский (или любой другой естественный язык) как формальный язык. Его вклад в лингвистическую семантику, известный как грамматика Монтегю, представляет основу для того, что лингвисты называют формальной семантикой.
Теория моделей
Формальные языки и
формальные грамматики
|
|
---|---|
Общие понятия | |
Тип 0 |
|
Тип 1 |
|
Тип 2 |
|
Тип 3 |
|
Синтаксический анализ |
Данная статья про формальные языки подтверждают значимость применения современных методик для изучения данных проблем. Надеюсь, что теперь ты понял что такое формальные языки, формальные грамматики, аналитические грамматики и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Компьютерная лингвистика
Комментарии
Оставить комментарий
Компьютерная лингвистика
Термины: Компьютерная лингвистика