М. А. КНЯЗЕВА, Д. А. ВОЛКОВ
Институт автоматики и процессов управления ДВО РАН, Владивосток
КОНЦЕПЦИЯ ПОТОКОВОГО АНАЛИЗА ПРОГРАММ, УПРАВЛЯЕМОГО ЗНАНИЯМИ
Проведен анализ основных проблем, возникающих в области построения оптимизирующих компиляторов. Предложена концепция потокового анализа программ в оптимизирующих компиляторах, управляемого знаниями.
Для оптимизации и генерации эффективного кода в компиляторах с языков программирования, осуществляется сбор информации о различных свойствах программы. Задача анализа информационных зависимостей, также известная как задача потокового анализа, достаточно хорошо освещена в литературе [1,2].
В работе [3] предложена концепция оптимизирующих компиляторов, управляемых базами знаний. В данной работе рассматривается концепция потокового анализа программ, управляемого базой знаний в таком компиляторе.
На рис. 1. представлена схема потокового анализа программ, управляемого знаниями.

Рис. 1. Схема потокового анализа управляемого знаниями
Входной информацией потокового анализа, управляемого знаниями являются: модель программы, методы потокового анализа и задание на потоковый анализ.
В процессе трансляции программа представляется в виде модели программы [4]. Такая модель не зависит от синтаксиса входного языка и отражает только те семантические свойства реальных программ, которые необходимы для оптимизации и трансляции. Это позволяет, во-первых, не привязывать реализацию к одному конкретному входному языку, поскольку тот может быть модифицирован в процессе использования, во-вторых, представлять программу в виде удобном для оптимизации, например в виде дерева и, в-третьих, отображать только необходимые с точки зрения оптимизации и трансляции языковые конструкции.
Знания о методах потокового анализа представляют собой совокупность всех формализованных знаний о методах потокового анализа. Эти знания выделяются и описываются при помощи специализированного языка для описания методов потокового анализа.
Задание на потоковый анализ представляет собой компактное описание именно тех знаний, из всего объема знаний о методах потокового анализа, которые необходимо применить в данной конкретной ситуации.
Для каждой задачи потокового анализа разработаны и опубликованы в литературе методы ее решения или по-другому, методы потокового анализа.
При использовании потокового анализа, управляемого знаниями, необходимо зафиксировать способ отображения информации, получаемой в процессе потокового анализа. Поскольку для потокового анализа модель программы уже является фиксированной, то один из вариантов представления информации о потоковом анализа – это добавление к этой модели атрибутов, смысл которых бы и заключался в отображении информации о потоковом анализе.
Работа выполнена при финансовой поддержке ДВО РАН, инициативный научный проект "Интернет - система управления информацией о преобразованиях программ".
Список литературы
1. Касьянов преобразования программ. М.: Наука, 1988.
2. Ульман Дж., Компиляторы: принципы, технологии и инструменты: Пер. с англ. М.: Издательский дом «Вильямс», 2001.
3. Князева компиляторы, управляемые базами знаний. // Информационные технологии. 2005. № 12. С. 42-48.
4. , , Купневич онтологии предметной области "Оптимизация последовательных программ". Ч.1. Термины для описания объекта оптимизации. // НТИ. Сер.№ 12. С. 23-28.


