Статья: Сетевой метод компиляции программ языка функционально-логического программирования S-FLOGOL

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

После описанного выше преобразования программы в сетевую форму производится так называемая «чистка» первичной сетевой грамматики. То есть из множества построенных сетей исключаются те сети, отношения которых далее не будут использоваться при вычислении указанного пользователем запроса к системе.

На этом первый этап компиляции завершается. Второй этап компиляции предназначен для непосредственного формирования результирующей сетевой грамматики, предназначенной для вычисления запроса. На данном этапе выполняется последовательный вызов элементов сорта GR с передачей на вход уникальных номеров вызовов и получением результирующих сетей, содержащих в себе терминальные элементы, не подлежащие дальнейшей конкретизации, и нетерминальные (с точки зрения результирующей грамматики) элементы с уникальными именами, определяющие необходимые вызовы отношений, участвующих в формировании сети.

Первым выполняется вызов элемента сорта GR с нулевым уникальным номером, определяющий отношение, указанное пользователем в качестве запроса к системе. Полученная сеть добавляется в результирующий набор и формируется список уникальных имен, содержащихся в данной сети, которые помещаются в очередь на вычисление. Затем производится выбор первого элемента из очереди и выполняется следующий вызов элемента сорта GR с уникальным номером, равным номеру выбранного элемента. Полученная сеть добавляется в результирующий набор, а имена ее нетерминальных элементов также помещаются в очередь. Процесс продолжается итеративно до тех пор, пока на очередном шаге полученная сеть не будет содержать нетерминальных элементов и очередь вызовов будет пуста.

После завершения компиляции полученный набор сетей преобразуются в сетевую грамматику, в качестве аксиомы которой выступает сеть, определяющая указанное пользователем отношение запроса. Далее полученная сетевая грамматика возвращается в специализированный графический редактор системы программирования, предназначенный для работы направленными отношениями, заданными в сетевой форме [5], в котором пользователь имеет возможность просмотреть результат компиляции запроса в графическом виде и внести необходимые корректировки. Затем, выбрав нужный режим вычисления, пользователь запускает запрос на выполнение, результаты которого рассматриваются как решение поставленной задачи.

Литература

1. Фальк В.Н. Теория направленных отношений и ее приложения // Дисс. … докт. техн. наук. М: - МЭИ. -2001.

2. Кутепов В.П., Фальк В.Н. Направленные отношения: теория и приложения // Изв. РАН. Техническая кибернетика, 1994. №4,5.

3. Котляров А.В. Построение интерпретаторов и компиляторов. СПб: Наука и техника. 2001. - 224 стр.

4. Бебчик Ал.М. Контекстно-зависимый структурный редактор выражений системы функционально-логического программирования высокого уровня. //Международный форум информатизации-2002: Доклады международной конференции "Информационные средства и технологии". 14-16 октября 2003г., в 3-х т.т. Т3.- М.: Янус-К, 2003. - 221с.

5. Бебчик Ан.М. Особенности визуализации объектов графического интерфейса FLOGOL-системы функционально-логического программирования. // Международный форум информатизации-2002: Доклады международной конференции "Информационные средства и технологии". 14-16 октября 2003г., в 3-х т.т. Т3.- М.: Янус-К, 2003. - 221 с.

Источник: https://otherreferats.allbest.ru/download/1223131/