М. А. КНЯЗЕВА, Д. А. ВОЛКОВ

Институт автоматики и процессов управления ДВО РАН, Владивосток

КОНЦЕПЦИЯ ПОТОКОВОГО АНАЛИЗА ПРОГРАММ, УПРАВЛЯЕМОГО ЗНАНИЯМИ

Проведен анализ основных проблем, возникающих в области построения оптимизирующих компиляторов. Предложена концепция потокового анализа программ в оптимизирующих компиляторах, управляемого знаниями.

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

В работе [3] предложена концепция оптимизирующих компиляторов, управляемых базами знаний. В данной работе рассматривается концепция потокового анализа программ, управляемого базой знаний в таком компиляторе.

На рис. 1. представлена схема потокового анализа программ, управляемого знаниями.

Рис. 1. Схема потокового анализа управляемого знаниями

Входной информацией потокового анализа, управляемого знаниями являются: модель программы, методы потокового анализа и задание на потоковый анализ.

В процессе трансляции программа представляется в виде модели программы [4]. Такая модель не зависит от синтаксиса входного языка и отражает только те семантические свойства реальных программ, которые необходимы для оптимизации и трансляции. Это позволяет, во-первых, не привязывать реализацию к одному конкретному входному языку, поскольку тот может быть модифицирован в процессе использования, во-вторых, представлять программу в виде удобном для оптимизации, например в виде дерева и, в-третьих, отображать только необходимые с точки зрения оптимизации и трансляции языковые конструкции.

НЕ нашли? Не то? Что вы ищете?

Знания о методах потокового анализа представляют собой совокупность всех формализованных знаний о методах потокового анализа. Эти знания выделяются и описываются при помощи специализированного языка для описания методов потокового анализа.

Задание на потоковый анализ представляет собой компактное описание именно тех знаний, из всего объема знаний о методах потокового анализа, которые необходимо применить в данной конкретной ситуации.

Для каждой задачи потокового анализа разработаны и опубликованы в литературе методы ее решения или по-другому, методы потокового анализа.

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

Работа выполнена при финансовой поддержке ДВО РАН, инициативный научный проект "Интернет - система управления информацией о преобразованиях программ".

Список литературы

1.  Касьянов преобразования программ. М.: Наука, 1988.

2.  Ульман Дж., Компиляторы: принципы, технологии и инструменты: Пер. с англ. М.: Издательский дом «Вильямс», 2001.

3.  Князева компиляторы, управляемые базами знаний. // Информационные технологии. 2005. № 12. С. 42-48.

4.  , , Купневич онтологии предметной области "Оптимизация последовательных программ". Ч.1. Термины для описания объекта оптимизации. // НТИ. Сер.№ 12. С. 23-28.