Краткое описание библиотеки анализа кода VivaCore

176 views

Published on

Наша команда, занимаясь исследованиями в области статического анализа и работая над созданием инструмента Viva64, пришла к выводу, что большая часть разработанных структур и алгоритмов может быть выделена в библиотеку и использована сторонними разработчиками для создания новых программных продуктов. Эта библиотека получила название VivaCore.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
176
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Краткое описание библиотеки анализа кода VivaCore

  1. 1. Краткое описание библиотекианализа кода VivaCoreАвторы: Андрей Карпов, Евгений РыжковДата: 12.01.2008АннотацияНаша команда, занимаясь исследованиями в области статического анализа и работая надсозданием инструмента Viva64, пришла к выводу, что большая часть разработанных структур иалгоритмов может быть выделена в библиотеку и использована сторонними разработчиками длясоздания новых программных продуктов. Эта библиотека получила название VivaCore.Назначение библиотеки VivaCoreVivaCore предназначена для разработки систем в области статического анализа, тестирования иверификации кода программ на языке Си/Си++ [2, 3, 4, 5]. Так как язык Си++ является одним изсамых сложных для анализа, создание инструментальных средств для работы с ним зачастуюприводит к большим временным затратам на механизм работы с кодом. Библиотека VivaCoreпозволяет ускорить выполнение этой части проекта и дает возможность разработчикамсосредоточиться на создании непосредственно инструмента, а не на реализации алгоритмовразбора кода.Другими словами, библиотека VivaCore предназначена для экономии времени при разработкепрограммных систем, связанных с обработкой исходных текстов программ.Сферы применения библиотеки VivaCoreБиблиотека может быть интересна организациям, которые создают или планируют создаватьинструменты для работы с кодом. Кратко перечислим возможные области для создания новыхинструментальных средств на основе библиотеки VivaCore: • Software reengineering tools: refactoring, source code transformation, code optimization; • Quality assurance tools: software metrics, code standard checking, coverage analysis, code analyzers; • Source code documentation; • Software migration tools: platform and operation systems migration.VivaCore с точки зрения разработчикаVivaCore - это библиотека для анализа Си/Си++ кода, позволяющая производить разбор, какотдельных языковых конструкций, так и целых файлов. Функциональная схема библиотекипоказана на рисунке ниже. Библиотека дает возможность произвести специальнуюпредобработку исходных файлов, разбить текст программы на токены, построить дерево разбораи осуществить по нему навигацию. Библиотека имеет механизм метапрограммной обработки, что
  2. 2. позволяет написать свое расширение языка Си/Си++, а затем транслировать метаконструкции вконструкции языка Си/Си++. На разных стадиях обработки исходного кода и по завершениюработы библиотека VivaCore может сохранять различную информацию и преобразованный текстпрограммы в формате XML или ином виде.
  3. 3. Рисунок 1 - Компоненты VivaCore.VivaCore является развитием и расширением открытой библиотеки OpenC++ [6]. Хотя OpenC++ неявляется полноценным парсером и не поддерживает современный стандарт языка Си++, на ееоснове создан ряд интересных инструментов. Например: среда исполнения OpenTS [7] для языкапрограммирования T++ (разработка Института программных систем РАН), инструмент Synopsis дляподготовки документации по исходному коду [8], статический анализатор кода Viva64 [ 1].Поскольку OpenC++ на данный момент не развивается, то VivaCore можно назвать ее приемником.Не следует путать VivaCore с профессиональными многофункциональными парсерами Си/Си++кода. Если пользователю нужен полноценный парсер переднего плана (front-end), полностьюподдерживающий современный стандарт и позволяющий создавать свой компилятор подспецифическую платформу, то ему стоит обратить свое внимание на GCC или дорогиекоммерческие решения. Например, такие решения предоставляет Semantic Designs [9].Но если компания разрабатывает инструмент, требующий классического анализа Си/Си++ кода, торациональным решением будет использование удобной специализированной библиотеки кода,которой и является VivaCore.Библиографический список 1. Evgeniy Ryzhkov. Viva64: what is it and for whom is it meant? 2. http://viva64.com/art-1-1-2081052208.html 3. Wikipedia. Static code analysis. http://www.viva64.com/go.php?url=12 4. Scott Meyers and Martin Klaus. A First Look at C++ Program Analyzers. http://www.viva64.com/go.php?url=13 5. Jack Ganssle. The value proposition - unfulfilled. http://www.viva64.com/go.php?url=15 6. Walter W. Schilling, Jr. and Mansoor Alam. Integrate Static Analysis Into a Software Development Process. http://www.viva64.com/go.php?url=14 7. OpenC++ library. http://www.viva64.com/go.php?url=16 8. What is OpenTS? http://www.viva64.com/go.php?url=17 9. Synopsis: A Source-code Introspection Tool. http://www.viva64.com/go.php?url=18 10. Semantic Designs site. http://www.viva64.com/go.php?url=19

×