Skip to content

Development Guide

Nikita Kataev edited this page Oct 10, 2019 · 2 revisions

Анализатор разрабатывается на языке программирования С++11, использование более новых стандартов в данный момент не допускается. Все комментарии, размещенные в коде и сопровождающие фиксации в репозитории должны быть написаны на английском языке. Комментарии к фиксациям должны начинаться с маркера, обозначающего принадлежность загружаемых изменений, например, [TSAR] или [TSAR, CMake] для анализатора и [BCL] для изменений связанных с базовыми конструкциями (Base Construction Library (BCL)).

Все конструкции относящиеся к TSAR должны располагаться в пространстве имен tsar, детали реализации можно скрыть в пространстве имен detail или неименованном пространстве имен внутри *.cpp файлов. Если создаются конструкции относящиеся к LLVM, например проходы анализа и преобразований, то они должны располагаться в пространстве имен llvm.

При разработке применяется Google C++ Style Guide в комбинации c LLVM Coding Standards и некоторыми модификациями. Основные правила приведены в здесь.

Инструкция по сборке анализатора в Microsoft Windows и в Unix-подобных системах приведена здесь.

Документацию по языку С++ можно найти в следующих источниках:

  • С++ Wiki ,также доступная на русском языке, но чуть менее полная.
  • Стандартные библиотеки и язык C++ - документация в Microsoft MSDN.
  • C++ 11 FAQ от Бьярна Страуструпа - краткое описание (на русском языке) возможностей, добавленных в стандарте С++ 11.
  • Описание стандарта С++ на английском языке.
  • Бьерн Страуструп. Программирование. Принципы и практика с использованием C++ (обновлено для С++11/С++14) // 2-е издание. Изд-во: Вильямс, 2016. 1328 с.
  • Скотт Мейерс. Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ // 3-е издание. Изд-во: ДМК Пресс, 2014. 300 с.
  • Скотт Мейерс. Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14 // Изд-во: Вильямс, 2015. 304 с.

Полезная информация по LLVM может быть получена с сайта http://llvm.org: