Формирование семантических таблиц.pptx
- Количество слайдов: 12
Формирование семантических таблиц.
Семантические таблицы • • Семантическими таблицами будем называть массивы данных для блоков: I) программ семантического контроля, 2) программ непосредственного проектирования, 3) сервисных программ. Каждая такая программа ориентирована на некоторую собственную структуру исходных данных, которая может отличаться от структуры данных, записанных на входном языке системы проектиро вания. Задача программы формирования семантических таблиц состоит в выборке необходимых данных, описанных на входном языке, и представлении их в виде, требуемом программным модулем. Для формирования семантических таблиц используется метод описания структуры данных с помощью формирующих шаблонов.
Формирующие шаблоны • Для формирования семантических таблиц используется метод описания структуры данных с помощью формирующих шаблонов. Шабло ны, управляющие работой программы формирования семантических таб лиц, повторяют синтаксис исходной информации и, кроме того, со держат: • команды преобразования элементов синтаксических конструк ций из символьного вида в требуемое представление; • и команды за писи преобразованных элементов данных в семантические таблицы. • Набор команд формирующих шаблонов позволяет: • выделять информацию, соответствующую простым элементам языка; • осуществлять переходы на помеченные команды рассматривае мого шаблона и рекурсивные обращения (переходы с возвратом) к шаблонам фрагментов синтаксических конструкций.
Семантические таблицы • • • Программа формирования семантических таблиц строится как интерпретатор команд формирующих шаблонов. При таком подходе для получения необходимых семантических таблиц достаточно описать их с помощью формирующих шаблонов. Каждая команда формирующих шаблонов имеет следующие модифи кации, выполняющие выборку элемента без записи в формируемый массив и выборку элемента с записью в формируемый массив в виде: строки символов, числа в требуемом представлении. Для записи строк символов соответствующие элементы структур представляются полем длиной 4 байта или полем длиной 40 байтов. Размер поля указывается соответствующей командой шаблона. Для записи чисел используются четырехбайтовые поля. Последовательность выполнения команд шаблона должна соот ветствовать порядку следования простых элементов языка в разбирае мой синтаксической конструкции. Применение метода формирующих шаблонов позволяет разрабаты вать программные модули непосредственного проектирования незави симые от структуры представления исходных данных.
Данные для программ проектирования • • Семан тические структуры являются входными для программ проектирования. Как пра вило, разные программы проектирования используют различные структуры вход ных данных. Исходные данные для средств, осу ществляющих семантические преобразо вания, выбираются из базы данных в язы ковом представлении (БДЯП). Эти дан ные представляют собой задание на про ектирование, дополненное описаниями из библиотеки постоянных частей и, воз можно, результатами непосредственного проектирования (расстановки, назначе ния, трассировки). Поскольку данные, необходимые для работы конкретных проектных процедур, отличаются как по составу, так и по ви ду, необходимы средства, позволяющие преобразовывать информационные струк туры. Для этого каждый тип синтаксической конструкции описывается в виде шабло на, команды которого осуществляют не которые семантические преобразования. Такие шаблоны будем называть форми рующими или семантическими. Для по лучения требуемых информационных структур необходимо описать их при по мощи семантических шаблонов (См. Приложение 2).
Результат семантического разбора • • • Формирующие шаблоны позволяют по лучить таблицы, соответствующие струк турам языка, например, Visual Basic, в которых допускают ся соответствующие типы данных. На основе форми рующих шаблонов предложения исход ного текста преобразуются в заданные структуры. Семантические таблицы, содержащие введенною информацию, представляют собой два файла: файл с записями переменной длины, содержащий сформирован ные информационные структуры (файл каталога ИФ); файл с. записями постоянной длины, содержащий каталог файла информационных структур (файл каталога ИФ). Одна запись в базе данных, как правило, описывается некоторым множеством структур. Каждой структуре первого файла соответствует строка каталога, в которой указываются имя и номер записи в базе данных, которой соответствует эта структура, а также ряд дополнительных данных (табл. 6). . Результат формирования семантических таблиц описания геометрии Г 1 представлен, в таблице 7.
Таблица 6. Строка каталога файла информационных структур. Номер Ключ Длина Имя Имя шабло- Записи (номер) струк- шаб- Раздела Записи на ссылки в базе структ. туры лона данных в файле ИФ 1 2 3 4 5 6 7 4 б 4 б
сформированные при семантическом разборе <описания геометрии> Г 1. П 2 I J 4 ИДЕН ЭЛЕМ Г 1 КОНТ Л 2 I J+1 4 ИДЕН ЭЛЕМ Г 1 КОНТ П 1 I J+2 4 ИДЕН ЭЛЕМ Г 1 КОНТ I J+3 36 КОНТ ЭЛЕМ Г 1 ГЕОМ П 2 I J+4 4 ИДЕН ЭЛЕМ Г 1 КОНТ Л 1 I J+5 4 ИДЕН ЭЛЕМ Г 1 КОНТ П 1 I J+6 4 ИДЕН ЭЛЕМ Г 1 КОНТ I J+7 36 КОНТ ЭЛЕМ Г 1 ГЕОМ П 2 I J+8 4 ИДЕН ЭЛЕМ Г 1 КОНТ Л 3 I J+9 4 ИДЕН ЭЛЕМ Г 1 КОНТ П 1 I J+10 4 ИДЕН ЭЛЕМ Г 1 КОНТ I J+11 36 КОНТ ЭЛЕМ Г 1 ГЕОМ П 2 I J+12 4 ИДЕН ЭЛЕМ Г 1 КОНТ Л 4 I J+13 4 ИДЕН ЭЛЕМ Г 1 КОНТ Х Х Х У У У
ИДЕН ПОИД Команды семантической обработки операторов. Набор предлагаемых ко манд позволяет выделять информацию, соответствующую вершинам графа, осу ществлять переходы в графе или рекур сивный переход на подграф: команда выделения иденти фикатора из оператора языка и передача его в выходную структуру; команда пропуска идентифи катора во входной строке без передачи его в выходную структуру; ПОКХ команда обработки координа ты. X. В операторе выделяется число, преобразуется в двоичное с плавающей запятой. Полученное число складывается со значением базовой координаты X, ко торая выдается командой ПОБК. Полу ченный результат передается в выходную структуру; ПОКУ отличается от предыдущей тем, что сложение производится с базо вой координатой У; ВОПЧ отличается от ПОКХ и ПОКУ тем, что сложение с базовыми координа тами не производится; ПОЧС — команды обработки числа. Во входном операторе выделяется число, но в выходную структуру не пересылается; ПОБК команда обработки базовых координат. Из оператора выделяется чис ло, преобразуется в двоичное с плаваю щей точкой и помещается в магазин ба зовых координат. Передача результатов в выходную структуру не производится; КОНК команды конца семантиче ского шаблона. Осуществляет запись сформированной структуры в базу дан ных; ПОХS команды условного перехо да. Если во входном операторе текущий символ совпадает с символом, закоди рованным в позиции. S, то переходим на команду с номером 10*X+Y. При этом все пропущенные команды шабло на, формирующие информационные по ля в выходной структуре, передают в выходной массив признаки отсутствия информации. В противном случае раз бор продолжается со следующей коман ды; ИМЯК — выбранный идентифика тор помещается в каталог информаци онных структур; ИМЯЭ — команда аналогична ИДЕН; ЧИСТ команда чистки магазина, заполняемого ПОБК; ВХУS отличается от 11 XYS тем, что переход осуществляется при несов падении символа входной строки с сим волом, закодированным в позиции 5 ко манды. В; НХУS аналогична BXYS, но про пущенные команды шаблона признаки отсутствия информации не формируют; РХУS аналогична BXYS, но про пущенные команды шаблона признаки отсутствия информации не формируют;
Примеры формирования семантических таблиц. • • Под семантическими таблицами операторов языка понимаются последо вательные строки, состоящие из ячеек строго определенного формата, в каж дой из которых хранится набор слов (число, идентификаторы), определяющих входные данные для программ непосред ственного проектирования. При обработке операторов предпола гается, что выходные ячейки, сформиро ванные командами обработки идентифи каторов, представляют собой 40 байто вые поля, а для команд типа ВОПЧ, ПОКД, ПОКУ — четырехбайтовые поля. Признаком отсутствия информации в ячейках первого типа может служить 40 байтовое поле, состоящее из одних пробелов, в ячейках второ го типа — число 9999. При использовании предлагаемых ко манд необходимо соблюдать следующие правила: последовательность команд в шаблоне должна соответствовать синтак сису разбираемого типа оператора; все числа и идентификаторы, должны быть обработаны соответствующими им ко мандами; в формирующем шаблоне не должно быть замкнутых циклов; адре сация в командах условных (безуслов ных) переходов должна быть допусти ма в пределах данного шаблона. Рассмотрим правила использования команд для составления формирующих шаблонов на следующих примерах.
Пример использования шаблонов Из приведенных примеров следует, что информация в выходном операторе однозначно адресуема, а сам формат может гибко меняться набором команд формирующих шаблонов. Правила составления формирующих шаблонов для программирования семан тических таблиц. Формирующие шаблоны составляются в соответствии с нумера цией синтаксических шаблонов, т. е. но мер формирующего шаблона для опера тора ЯСТП должен быть равен номеру синтаксического для того же оператора. Ниже приводятся примеры формирую щих шаблонов для операторов ЯСТП и описание структур, ко торые формируются этими шаблонами.
Конец
Формирование семантических таблиц.pptx