Cтраница 4
Основная задача синтаксического анализа состоит в отыскании разбора ( вывода) для заданного предложения входного языка. [46]
Однако блоки синтаксического анализа составляют не более 20 - 30 % компилятора, поэтому для полного решения проблемы автоматического создания трансляторов необходимо разработать практичный стандартный способ описания семантики языков программирования, допускающий формальное преобразование в язык машины. [47]
В результате синтаксического анализа исходная ATNL-программа трансформируется в совокупности кустов ( рис. 5.19), к каждому из которых обеспечен прямой доступ. [48]
Заключительным этапом синтаксического анализа является приведение структуры словосочетания к каноническому виду. При этом выполняются следующие операции: 1) прилагательные ставятся перед теми существительными, которые они определяют, и упорядочиваются по возрастанию номеров слов; 2) существительные, соединенные сочинительным союзом, располагаются по возрастанию их словарных номеров ( при этом в случае необходимости изменяется расположение слов относительно союза); 3) группы слов, соединенные сочинительным союзом и управляемые существительными, располагаются таким образом, чтобы управляемые слова были упорядочены по возрастанию их номеров; 4) код главного слова словосочетания выносится на первое место; 5) в соответствии с произведенными трансформациями производится перенумерация слов в словосочетании и перекодировка схемы связей между ними. [49]
Обобщаются методы синтаксического анализа, использующие прецедентные соотношения. Вводится понятие определяющего символа, устанавливаются соотношения прецедентности между определяющими символами и анализируются некоторые свойства этих соотношений в контекстно-свободных грамматиках. Выделяется новый класс прецедентных, грамматик, в котором прецедентные грамматики Флойда и Вирса-Вебера являются частными случаями. [50]
Любые средства синтаксического анализа состоят из двух частей: базы знаний о конкретном языке и собственно алгоритма синтаксического анализа, т.е. набора стандартных операторов, обрабатывающих текст на основе этих знаний. Источником знаний ( грамматических) являются данные, полученные в результате морфологического анализа, а также различные таблицы, которые априорно заполнены стандартным образом и представляют собой результат эмпирической обработки текстов на ЕЯ человеком с целью выделения определенных закономерностей, необходимых для проведения синтаксического анализа. При практической реализации синтаксического анализа стараются добиваться полной независимости правил переработки данных таблиц от их содержимого, чтобы изменение в случае необходимости этого содержимого не влекло за собой перестройку самого алгоритма. [51]
Кроме блока синтаксического анализа по признакам классический транслятор содержит ряд генерирующих блоков, каждый из которых переводит элементы определенного вида в группы команд машины, и блок редактирования, который производит распределение памяти для составляемой программы, присвоение ее командам истинных адресов и окончательное ее оформление. Предварительным обычно является блок синтаксического контроля, до трансляции выявляющий синтаксические ошибки, возможные виды которых при таком методе трансляции определяют умозрительно или на основе эксперимента. [52]
Рассматривается вопрос многопариантного синтаксического анализа на основе грамматик зависимостей Тсньсра. [53]