Скачать презентацию Формальные языки Формальные языки Формализованный формальный язык Скачать презентацию Формальные языки Формальные языки Формализованный формальный язык

Формальные языки.pptx

  • Количество слайдов: 5

Формальные языки Формальные языки

Формальные языки Формализованный (формальный) язык –– язык, характеризующийся точными правилами построения выражений и их Формальные языки Формализованный (формальный) язык –– язык, характеризующийся точными правилами построения выражений и их понимания. Он строится в соответствии с четкими правилами, обеспечивая непротиворечивое, точное и компактное отображение свойств и отношений изучаемой предметной области (моделируемых объектов). В отличие от естественных языков формальным языкам присущи четко сформулированные правила семантической интерпретации и синтаксического преобразования используемых знаков, а также то, что смысл и значение знаков не изменяется в зависимости от каких-либо прагматических обстоятельств (например, от контекста). Большинство формальных языков (созданных конструкций) строится по следующей схеме. сначала выбирается алфавит, или совокупность исходных символов, из которых будут строиться все выражения языка; затем описывается синтаксис языка, то есть правила построения осмысленных выражений. Буквами в алфавите формального языка могут быть и буквы алфавитов естественных языков, и скобки, и специальные знаки и т. п. Из букв, по определенным правилам можно составлять слова и выражения. Осмысленные выражения получаются в формальном языке, только если соблюдены определенные в языке правила образования. Для каждого формального языка совокупность этих правил должна быть строго определена и модификация любого из них приводит чаще всего к появлению новой разновидности (диалекта) этого языка. Формальные языки широко применяются в науке и технике. В процессе научного исследования и практической деятельности формальные языки обычно используются в тесной взаимосвязи с естественным языком, поскольку последний обладает гораздо большими выразительными возможностями. В то же время формальный язык является средством более точного представления знаний, чем естественный язык, а следовательно, средством более точного и объективного обмена информацией между людьми. Формальные языки часто конструируются на базе языка математики. Веком бурного развития различных формальных языков можно считать XX век.

В математической логике и информатике формальный язык — это множество конечных слов (строк, цепочек) В математической логике и информатике формальный язык — это множество конечных слов (строк, цепочек) над конечным алфавитом. Понятие языка чаще всего используется в теории автоматов, теории вычислимости и теории алгоритмов. Научная теория, которая имеет дело с этим объектом, называется теорией формальных языков. В теории моделей (раздел математической логики, который занимается изучением связи между формальными языками и их интерпретациями, или моделями) язык соответствует не языку в информатике, а скорее алфавиту. Язык состоит из множеств символов, функций и отношений вместе с их арностью, а также множествопеременных. Каждое из этих множеств может быть бесконечным. Из языка вместе с универсальными логическими символами составляются логические высказывания. Формальный язык может быть определён по-разному, например: Простым перечислением слов, входящих в данный язык. Этот способ, в основном, применим для определения конечных языков и языков простой структуры. Словами, порождёнными некоторой формальной грамматикой (способ описания формального языка, то есть выделения некоторого подмножества из множества всех слов некоторого конечного алфавита. Различают порождающие и распознающие (или аналитические) грамматики — первые задают правила, с помощью которых можно построить любое слово языка, а вторые позволяют по данному слову определить, входит оно в язык или нет). Словами, порождёнными регулярным выражением (это формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. По сути это строка-образец , состоящая из символов и метасимволов и задающая правило поиска. ). Словами, распознаваемыми некоторым конечным автоматом. Словами, порождёнными БНФ-конструкцией (Форма Бэкуса—Наура формальная система описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории. БНФ используется для описания контекстно-свободных формальных грамматик. ). Если алфавит задан как {a, b}, а язык L включает в себя все слова над ним, то слово ababba принадлежит L. Пустое слово (то есть строка нулевой длины) допускается и часто обозначается как e, ε или Λ. Некоторые примеры формальных языков: множество всех слов над {a, b} множество , где n — неотрицательное число, а означает, что a повторяется n раз множество синтаксически корректных программ в данном языке программирования

Множество слов, входящих в состав языка формируют его лексику. Последовательность лексем, сформированных по правилам Множество слов, входящих в состав языка формируют его лексику. Последовательность лексем, сформированных по правилам языка, формируют правильную цепочку лексем или образуют выражение или предложение. Множество правил написания правильных цепочек лексем составляют синтаксис языка. А множество правил, определяющих смысл правильной цепочки, определяют его семантику. Самый распространенный язык БНФ. Состав: : : =присваивание. синтаксическая переменная языка. “. . ” лексема языка. синтаксические переменные соединены между собой союзом и. | синтаксические переменные соединены между собой союзом или. [. . ] содержание может отсутствовать. Основная формула Бэкуса-Наура: X: : =Y 1|Y 2|Yi где X – выражение, определяющееся только синтаксической переменной, Yi – выражение, определяемое набором синтаксических переменных правило формальных языков образуется в виде иерархии синтаксических конструкций. Элементы нижнего уровня образованы знаками базового набора или лексемами языка. Элементы следующего уровня образованы цепочками лексем и формируют выражение языка. Элементы самого верхнего уровня образованы цепочками выражений и формируют предложение. Vб – множество базового набора. 1. множество букв. V 1 : : = 2. множество цифр. V 2 : : = 3. множество символов. V 3: : =. Для обозначения вхождения в множество другого подмножества используют знак €. Каждую лексему языка можно записать в виде произведения базового набора. Множество лексем называется множеством терминальных символов. Это множество всегда счетно, т. к. к любой базовой цепочке всегда можно приписать другу. Множество лексем: ограничители(пробел, разделители, знак перехода на новую строку) и неограничители(имена файлов, переменные , процедуры, ключевые слова). Особое место приобретает множество, дополняющих неоднократные записи лексем при их описании. Они называются регулярными. Они позволяют формировать регулярные выражения для описания структур лексем.

Для связывания элементов множества терминальных и нетерминальных символов в выражениях или предложениях используют синтаксические Для связывания элементов множества терминальных и нетерминальных символов в выражениях или предложениях используют синтаксические правила. Их можно рассматривать как совокупность операторов, которые порождают последовательное преобразование одной правильной цепочки в другую => их называют правилами подстановки или продукциями. . Если правил несколько, их рекомендуется индексировать. Левая часть не может быть пустой цепочкой и она всегда содержит 1 или несколько нетерминальных символов. Правая может содержать пустые цепочки, но она не содержит нетерминальные символы. Имя синтаксической переменной языка, для которой необходимо выполнить синтаксический разбор цепочки терминальных символов согласно правилу, называется начальным символом и обозначается Y. Общая модель формальной грамматики: G= где P – правило разбора, Y – начальный символ и принадлежит VN, P={Pi |i=1, 2, 3. . }, VN ={A, B, C}, VT= “a”, ”b” . если для Y дана цепочка VT то формальная грамматика позволяет установить , является ли эта цепочка правильной и в случае положительном, , , …. Удается установить структуру этой цепочки и такая грамматика называется распознающей. Если не дана цепочка или дана только ее часть, то формальная грамматика оказывает лишь помощь в построении синтаксически правильной цепочки и она называется порождающей. Выделяют грамматику общего вида (типа 0, возможны любые правила), контекстно-зависимую (типа 1, левая часть может содержать один нетерминал, окруженный «контекстом» (последовательности символов, в том же виде присутствующие в правой части); сам нетерминал заменяется непустой последовательностью символов в правой части. ), КС-грамматику (контекстно-свободная или тип 2, левая часть состоит из одного нетерминала. ) и А-грамматику (автономная или тип 3). Нетерминал (нетерминальный символ) — объект, обозначающий какую-либо сущность языка (например: формула, арифметическое выражение, команда) и не имеющий конкретного символьного значения. Терминал (терминальный символ) — объект, непосредственно присутствующий в словах языка, соответствующего грамматике, и имеющий конкретное, неизменяемое значение (обобщение понятия «буквы» ). В формальных языках, используемых на компьютере, в качестве терминалов обычно берут все или часть стандартных символов ASCII — латинские буквы, цифры и спец. Символы