Rus Eng
О компании  
Новости компании
Лицензии и сертификаты
Вакансии
Контакты
Публикации
White Paper
Продукты
Технологии
Разработчикам ПО
Производителям микроконтроллеров
Партнеры / Клиенты
Перспективные проекты
| | | |
Главная страница    О компании    Публикации    White Paper
White Paper

Языки программирования, компиляторы, языковые процессоры:
подход компании Интерстрон

6. Семантическое представление Си++ фирмы Интерстрон

Как уже говорилось, семантическое представление, генерируемое компилятором Си++ компании Интерстрон, содержит полную информацию, извлеченную компилятором из исходных текстов программы. СП содержит информацию о лексической и синтаксической структуре программы (в частности, координаты по исходному тексту всех ее структурных элементов). Однако наиболее существенная и принципиально важная черта СП - поддержка семантической информации. В СП содержится точное и полное знание о всех программных сущностях, определенных в программе, и их отношениях друг с другом. Семантическая информация включает характеристики программных сущностей (переменных, функций, классов и их членов, неклассовых типов), их отношения (области действия, схемы наследования, способы использования, структуры доступности/видимости и многое другое), а также структуры, описывающие потоки управления и потоки данных программы.

Будучи всеобъемлющим отображением исходной программы, СП может использоваться любой программой-клиентом, которой необходим доступ к исходной программой. Типичным и наиболее востребованным случаем служит генерация кода для некоторого целевого процессора. Однако, СП может с успехом использоваться и в целях статического анализа (например, в целях поиска критических мест, для вычисления метрик, для сертификации программы по заданным критериям), визуализации согласно определенным методикам (UML, BON и т.п.), интерпретации (например, в целях динамического тестирования) и так далее. Некоторые практически важные и востребованные операции над программами, которые можно реализовать с использованием СП, были отмечены в предыдущем разделе.

Технически СП фирмы Интерстрон представляет собой композицию трех видов взаимосвязанных структур: дерева программы, таблицы типов и таблицы имен. В совокупности эти структуры полностью описывают семантику исходной программы. Можно считать, что СП представляет собой оптимизированный вариант типичных структур периода компиляции. После завершения компиляции эти структуры сериализуются, образуя замкнутое и независимое хранилище (например, дисковый файл). Доступ к СП осуществляется посредством специально разработанного прикладного интерфейса (API). Описанная схема иллюстрируется рис. 4.

Программный интерфейс представляет собой библиотеку взаимосвязанных классов и функций Си++, которые в совокупности предоставляют доступ ко всей информации, находящейся в семантическом представлении. Интерфейс тщательно спроектирован, его структура отражает иерархию ключевых понятий входного языка; В дополнение к интерфейсу предлагается подробная документация, в которой, помимо описания собственно средств доступа, имеются примеры конкретных способов извлечения из СП семантической информации.

Необходимо отметить, что сама идея подобной архитектуры не нова. Так, для доступа к Ада-программам был определен так называемый семантический интерфейс (Ada Semantic Interface Specification, ASIS), который в настоящее время является стандартом ISO и реализован для нескольких Ада-компиляторов. Однако ничего подобного для языка Си++ предложено не было (известно об одном-двух академических проектах семилетней давности, которые не были доведены до уровня, позволяющего судить об их перспективности; уже долгое время они не развиваются). Тем самым, можно утверждать, что СП Си++ фирмы Интерстрон является в настоящее время единственным семантическим интерфейсом промышленного уровня, доказавшим свою пригодность в ряде практических разработок.


Рис. 4 Семантическое представление и его использование



< пред.                                                                 след. >


ЗАО "Интерстрон" 1998-08.06.2015, ООО "Интерстрон" 09.06.2015 по н.в. Все права защищены.
Москва, Дмитровское шоссе, 1/1
e-mail: interstron-info@mail.ru
web: www.interstron.ru
Тел.: +7 (495) 769-55-68