|
Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика, 2015, номер 4, страницы 57–65
(Mi vagtu402)
|
|
|
|
КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
Использование абстрактного цифрового автомата для получения универсального промежуточного представления исходного кода программ
М. В. Зубов, А. Н. Пустыгин Челябинский государственный университет
Аннотация:
Для выполнения статического анализа предложено использовать универсальные многоуровневые промежуточные представления. Были формализованы модели следующих представлений: для анализа архитектуры проекта – модель представления уровня классов, для анализа функциональных модулей – потока управления. Необходимо формализовать метод получения таких представлений для соответствия предложенной модели. Это позволяет единообразно добавлять новые языки путем создания стандартного генератора универсального промежуточного представления. Предлагается использовать абстрактный цифровой автомат с магазинной памятью. В качестве базового способа преобразования текста в машинные данные используется синтаксический анализ. Такой конечный автомат обрабатывает последовательность сигналов, описывающих входное дерево разбора, и формирует последовательность сигналов, описывающих дерево промежуточного представления. Хранение в памяти предыдущих состояний автомата дает возможность анализировать произвольную вложенность входного дерева. Введение специального свойства для входных и выходных сигналов позволяет описать дерево в виде последовательности узлов в соответствии с его обходом в глубину. Для программной реализации такого подхода был выбран язык Java, промежуточное представление строилось также для Java. Каждое состояние автомата реализовано в виде активного объекта, обрабатывающего входной поток сигналов. Реализуя такие шаблоны проектирования, как «цепочка ответственности», «состояние» и «стратегия», состояния образовывали таблицу переходов автомата Мили и магазинную память. Для хранения входных и выходных данных был выбран формат XML. Тестирование путем проверки преобразования синтаксических конструкций языка в текст универсального промежуточного представления на собственном коде и проектах с открытым исходным кодом показало полное соответствие реализации предложенным моделям.
Ключевые слова:
статический анализ, промежуточное представление, абстрактный автомат, конечный автомат, программирование, исходный код.
Поступила в редакцию: 20.08.2015 Исправленный вариант: 03.10.2015
Образец цитирования:
М. В. Зубов, А. Н. Пустыгин, “Использование абстрактного цифрового автомата для получения универсального промежуточного представления исходного кода программ”, Вестн. Астрахан. гос. техн. ун-та. Сер. управление, вычисл. техн. информ., 2015, № 4, 57–65
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/vagtu402 https://www.mathnet.ru/rus/vagtu/y2015/i4/p57
|
|