Cтраница 2
Они определяются в терминах порождающих грамматик. [16]
Показывается, что любой порождающей грамматики может быть построена эквивалент-даая ей грамматика, для которой существуют функции предшествования. Дается алгоритм нахождения этой грамматики. [17]
Этот подход к теории порождающих грамматик приводит к построению автоматной грамматики, представляющей синтез фраз языка как работу определенного логического устройства. Обратная задача - анализ языка - практически очень важная для языков программирования [39], решается на основании понимания распознавания как процесса, обратного синтезу. [18]
Как мы уже знаем, порождающие грамматики рассматриваются в рамках строго формализованной теории. Что же касается Т - грамматик, то здесь подобный уровень формализации пока не достигнут. Предлагавшиеся до сих пор трансформационные правила не сформулированы в терминах одной простой операции как правила порождающих грамматик с их операцией подстановки. Задача формализации трансформаций является весьма актуальной. [19]
Для нового языка нетрудно построить порождающую грамматику. [20]
Из приведенного примера видно, что порождающая грамматика не является алгоритмом. [21]
Если для какого-либо языка построена некоторая порождающая грамматика индуктивного типа, то будем говорить, что данный язык ( без учета семантики) является формальным. В теории формальных языков доказана следующая теорема. [22]
Алгоритм генерации ИЛС представляет собой интерпретатор порождающих грамматик, задаваемых на его входе в качестве исходной информации. [23]
Решая эти задачи с помощью готового аппарата порождающих грамматик, мы наталкиваемся на следующую принципиальную трудность: при решении синтаксических проблем часто можно с полным правом огрубить ситуацию, считая, что существует четкое разбиение всех текстов на множество отмеченных и дополнительное к нему множество неотмеченных. Однако в более тонких проблемах, в частности, в семантике, появляется размытая картина - наряду с текстами, безусловно осмысленными ( семантически отмеченными), есть еще больше текстов, об осмысленности которых можно спорить. Причем, уменьшая от текста к тексту, совсем немного степень осмысленности, мы за несколько шагов можем прийти к текстам, весьма далеким от правильно составленных. Точно так же, допуская перифразы с небольшим отклонением смысла, мы приходим за серию шагов к тексту, имеющему существенно иной смысл. [24]
Дается краткий лингвистический анализ простых вопросов в терминах порождающей грамматики. Вводятся понятия пресуппозиции вопроса, допустимого ответа, отказа от вопроса, уклонения. Предложение S является уклонением от вопроса Q, если S - пресуппозиция вопроса Q. Например, вопрос Q может быть таким: Что ел Джон. [25]
Дается краткий лингвистический анализ простых вопросов в терминах порождающей грамматики. Вводятся понятия пресуппозиции вопроса, допустимого; ответа, отказа от вопроса, уклонения. S является уклонением от вопроса Q, если S - пресуппозиция вопроса Q. Например, вопрос Q может быть таким: Что ел Джон. [26]
Если вместо распознавания рассматривать допускание, то тогда все порождающие грамматики могут трактоваться и как допускающие. При этом допускающая процедура состоит в том, что правила грамматики применяются к данной цепочке наоборот - справа налево. В цепочке отыскивается вхождение правой части некоторого правила и заменяется левой частью, и этот процесс продолжается, пока можно. Допускаемыми цепочками будут в точности те, которые могут быть свернуты указ-анным процессом к начальному символу. Это как раз те самые цепочки, которые при обычном использовании грамматики выводятся из начального символа. [27]
Грамматический разбор заключается в том, что правила дедуктивной порождающей грамматики применяют в обратном направлении. Для языков программирования эти правила являются подстановками, а их применение в обратном направлении заключается в том, что вместо каждой подстановки видаР - - Q, принадлежащей грамматике, производится подстановка Q - P. При этом в составе преобразуемой входной программы единственным образом ( если грамматика удовлетворяет определенным условиям) выявляются группы символов, соответствующие нетерминальным символам грамматики, являющимся названиями типов основных элементов входной программы. В конечном счете выявляются все основные элементы, которые генерирующими блоками транслятора переводятся в группы команд. Затем редактирующий блок производит распределение памяти для составляемой программы, присвоение истинных адресов ее командам и окончательное ее оформление. Грамматике, применяемой при грамматическом разборе, обычно придают удобный вид таблицы. Синтаксический контроль может выполняться блоком синтаксического анализа. [28]
Грамматический разбор заключается в том, что правила дедуктивной порождающей грамматики применяют в обратном направлении. Для языков программирования эти правила являются подстановками, а их применение в обратном направлении за ключается в том, что вместо каждой подстановки вида P - - Q, принадлежащей грамматике, производится подстановка Q - - P. При этом в составе преобразуемой входной программы единственным образом ( если грамматика удовлетворяет определенным условиям) выявляются группы символов, соответствующие нетерминальным символам грамматики, являющимся названиями типов основных элементов входной программы. В конечном счете выявляются все основные элементы, которые генерирующими блоками транслятора переводятся в группы команд. Затем редактирующий блок производит распределение памяти для сос-тавляемой программы, присвоение истинных адресов ее командам и окончательное ее оформление. Синтаксический контроль может выполняться блоком синтаксического анализа. [29]
В зависимости от вида правил выделяется ряд основных классов порождающих грамматик, Наиболее важны для лингвистич. [30]