﻿# Вопросы и ответы по библиотеке VivaCore \(VivaCore FAQ\)

В документе собраны некоторые вопросы и ответы по библиотеке анализа Си/Си\+\+ кода VivaCore компании ООО "СиПроВер"\.

## Что такое VivaCore?

VivaCore \- это открытая библиотека для работы с Си и Си\+\+ кодом\. Библиотека представляет собой проект с открытым кодом, написанным на языке Си\+\+\. VivaCore построена на основе библиотеки OpenC\+\+ \(OpenCxx\)\.

Не следует путать VivaCore с профессиональными многофункциональными парсерами Си/Си\+\+ кода\. Если пользователю нужен front\-end парсер кода, полностью поддерживающий современный стандарт языка Си\+\+ и позволяющий создавать свой компилятор под специфическую платформу, то ему стоит обратить свое внимание на GCC или дорогие коммерческие решения\.

## В чем отличие библиотеки VivaCore от OpenC\+\+?

В библиотеку VivaCore внесены следующие усовершенствования, по сравнению с библиотекой OpenC\+\+:

1. Поддержан классический язык Си\.
1. Проделана работа по поддержке специфики синтаксиса языка Си\+\+, используемого при разработке в среде Visual Studio 2005/2008/2010\.
1. Поддержаны некоторые новые ключевые слова и иные конструкции, имеющиеся в новых стандартах языка\.
1. Реализовано вычисление значений литеральных констант\.
1. Библиотека адаптирована и оптимизирована для работы на 64\-битных системах\.
1. Исправлено большое количество ошибок и недочетов\.
1. Создан механизм начальной предобработки исходного текста, позволяющий реализовать некоторые специфические модификации кода\.
1. Поддержано кодирование сложных типов, занимающих в кодированном виде более 127 символов\.
1. Создан простой проект \(для Visual Studio 2010\), демонстрирующий основные принципы использования библиотеки VivaCore\.
1. Реализована поддержка стандарта C\+\+0x на уровне, на котором она осуществлена в Visual Studio 2010\. Реализована поддержка лямбда\-выражений, auto, decltype, static\_assert, nullptr и так далее\.

## Для чего предназначена библиотека VivaCore?

Библиотека VivaCore может быть интересна компаниям и организациям, которые создают или планируют создавать инструменты для работы с кодом\. С ее помощью могут быть разработаны приложения в следующих областях:

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

## Каковы лицензионные условия использования библиотеки VivaCore?

Библиотека VivaCore разработана компанией ООО "Системы программной верификации" \(OOO "Program Verification Systems"\)\.

Лицензия на библиотеку VivaCore позволяет свободно использовать, копировать, распространять и модифицировать ее в бинарном виде или в виде исходного кода, как для коммерческого, так и для некоммерческого использования без каких\-либо отчислений авторам библиотеки\. Необходимо лишь указать авторов исходных библиотек \(OpenC\+\+ и VivaCore\)\.

## Для каких систем предназначена библиотека VivaCore?

С одной стороны, библиотека анализа Си\+\+ кода ориентирована на анализ кода без учета специфики какой\-либо операционной системы или аппаратной платформы\. Но с другой стороны, VivaCore поставляется как проект для Visual Studio 2010, и соответственно наиболее просто собрать ее в Windows\-окружении\. Обратим внимание, что для сборки можно использовать как полные версии Visual Studio 2010, так и Express\-версии\.

## Можете ли вы на заказ разработать специализированный вариант библиотеки VivaCore или решение на ее основе?

Да, можем\.

## Библиографический список

1. [Библиотека VivaCore](https://pvs-studio.ru/ru/pvs-studio/)\.
1. Андрей Карпов, Евгений Рыжков\. [Сущность библиотеки анализа кода VivaCore](https://pvs-studio.ru/ru/blog/posts/a0013/)\.