Вопросы и ответы по библиотеке VivaCore (VivaCore FAQ)
1. Вопросы и ответы по библиотеке
VivaCore (VivaCore FAQ)
Авторы: Андрей Карпов, Евгений Рыжков
Дата: 09.12.2009
Аннотация
В документе собраны некоторые вопросы и ответы по библиотеке анализа Си/Си++ кода VivaCore
компании ООО "СиПроВер".
Что такое VivaCore?
VivaCore - это открытая библиотека для работы с Си и Си++ кодом. Библиотека представляет собой
проект с открытым кодом, написанным на языке Си++. VivaCore построена на основе библиотеки
OpenC++ (OpenCxx).
Не следует путать VivaCore с профессиональными многофункциональными парсерами Си/Си++
кода. Если пользователю нужен front-end парсер кода, полностью поддерживающий
современный стандарт языка Си++ и позволяющий создавать свой компилятор под
специфическую платформу, то ему стоит обратить свое внимание на GCC или дорогие
коммерческие решения.
В чем отличие библиотеки VivaCore от OpenC++?
В библиотеку VivaCore внесены следующие усовершенствования, по сравнению с библиотекой
OpenC++:
1. Поддержан классический язык Си.
2. Проделана работа по поддержке специфики синтаксиса языка Си++, используемого при
разработке в среде Visual Studio 2005/2008/2010.
3. Поддержаны некоторые новые ключевые слова и иные конструкции, имеющиеся в новых
стандартах языка.
4. Реализовано вычисление значений литеральных констант.
5. Библиотека адаптирована и оптимизирована для работы на 64-битных системах.
6. Исправлено большое количество ошибок и недочетов.
7. Создан механизм начальной предобработки исходного текста, позволяющий реализовать
некоторые специфические модификации кода.
8. Поддержано кодирование сложных типов, занимающих в кодированном виде более 127
символов.
9. Создан простой проект (для Visual Studio 2010), демонстрирующий основные принципы
использования библиотеки VivaCore.
10. Реализована поддержка стандарта C++0x на уровне, на котором она осуществлена в Visual
Studio 2010. Реализована поддержка лямбда-выражений, auto, decltype, static_assert,
nullptr и так далее.
2. Для чего предназначена библиотека VivaCore?
Библиотека VivaCore может быть интересна компаниям и организациям, которые создают или
планируют создавать инструменты для работы с кодом. С ее помощью могут быть разработаны
приложения в следующих областях:
• рефакторинг кода;
• статические анализаторы общего и специализированного назначения;
• динамические анализаторы кода;
• расширения языков Си/Си++, в том числе для поддержки метапрограммирования;
• автоматизированное тестирование кода;
• трансформации кода, например, для оптимизации;
• подсветку синтаксиса;
• системы построения документации по коду;
• высокоточное определение изменений в исходном коде или анализа эволюции
изменений;
• поиск дублирующегося кода на уровне грамматических конструкций языка;
• подсчет метрик;
• поддержку стандартов кодирования;
• инструменты, облегчающие миграцию кода на другие программные и аппаратные
платформы;
• автоматическую генерацию кода;
• визуализаторы кода, системы построения диаграмм зависимостей;
• форматирование кода;
• автоматическое протоколирование результатов испытаний программ;
• другое.
Каковы лицензионные условия использования библиотеки
VivaCore?
Библиотека VivaCore разработана компанией ООО "Системы программной верификации" (OOO
"Program Verification Systems").
Лицензия на библиотеку VivaCore позволяет свободно использовать, копировать, распространять
и модифицировать ее в бинарном виде или в виде исходного кода, как для коммерческого, так и
для некоммерческого использования без каких-либо отчислений авторам библиотеки.
Необходимо лишь указать авторов исходных библиотек (OpenC++ и VivaCore).
Для каких систем предназначена библиотека VivaCore?
С одной стороны, библиотека анализа Си++ кода ориентирована на анализ кода без учета
специфики какой-либо операционной системы или аппаратной платформы. Но с другой стороны,
VivaCore поставляется как проект для Visual Studio 2010, и соответственно наиболее просто
собрать ее в Windows-окружении. Обратим внимание, что для сборки можно использовать как
полные версии Visual Studio 2010, так и Express-версии.
3. Можете ли вы на заказ разработать специализированный вариант
библиотеки VivaCore или решение на ее основе?
Да, можем.
Библиографический список
Библиотека VivaCore. http://www.viva64.com/ru/vivacore-library/
Андрей Карпов, Евгений Рыжков. Сущность библиотеки анализа кода VivaCore.
http://www.viva64.com/art-2-1-696420215.html