4
Краткое описание библиотеки анализа кода VivaCore Авторы: Андрей Карпов, Евгений Рыжков Дата: 12.01.2008 Аннотация Наша команда, занимаясь исследованиями в области статического анализа и работая над созданием инструмента Viva64, пришла к выводу, что большая часть разработанных структур и алгоритмов может быть выделена в библиотеку и использована сторонними разработчиками для создания новых программных продуктов. Эта библиотека получила название VivaCore. Назначение библиотеки VivaCore VivaCore предназначена для разработки систем в области статического анализа , тестирования и верификации кода программ на языке Си/Си++ [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 - это библиотека для анализа Си/Си++ кода, позволяющая производить разбор, как отдельных языковых конструкций, так и целых файлов. Функциональная схема библиотеки показана на рисунке ниже. Библиотека дает возможность произвести специальную предобработку исходных файлов, разбить текст программы на токены, построить дерево разбора и осуществить по нему навигацию. Библиотека имеет механизм метапрограммной обработки, что

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

анализа кода VivaCore

Авторы: Андрей Карпов, Евгений Рыжков

Дата: 12.01.2008

Аннотация

Наша команда, занимаясь исследованиями в области статического анализа и работая над

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

алгоритмов может быть выделена в библиотеку и использована сторонними разработчиками для

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

Назначение библиотеки VivaCore

VivaCore предназначена для разработки систем в области статического анализа, тестирования и

верификации кода программ на языке Си/Си++ [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 - это библиотека для анализа Си/Си++ кода, позволяющая производить разбор, как

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

показана на рисунке ниже. Библиотека дает возможность произвести специальную

предобработку исходных файлов, разбить текст программы на токены, построить дерево разбора

и осуществить по нему навигацию. Библиотека имеет механизм метапрограммной обработки, что

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

позволяет написать свое расширение языка Си/Си++, а затем транслировать метаконструкции в

конструкции языка Си/Си++. На разных стадиях обработки исходного кода и по завершению

работы библиотека VivaCore может сохранять различную информацию и преобразованный текст

программы в формате XML или ином виде.

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

Рисунок 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