Открытый, расширяемый инструмент проверки правил кодирования может стать частью GCC.

Разработчики, задействованные в проекте GlobalGCC представят на саммите разработчиков GCC 2008 открытый расширяемый инструмент автоматической проверки правил кодирования C++ для GCC и надеются что он войдет в основную ветку GCC и будет расширен и на остальные языки. Проект особенно интересен тем что в отличие от известных коммерческих аналогов (Parasoft, Klocwork, Coverity), его можно адаптировать под собственные правила кодирования.

Модифицированный предоставленными патчами компилятор GCC строит по программе базу знаний в виде Пролог-утверждений и затем программа на Прологе производит валидацию стиля кодирования в соответствии с правилами. В настоящий момент на Прологе реализована часть правил HICPP (High-Integrity C++), реализуются остальные правила стандарта правил кодирования и ведутся работы над созданием специализированного языка описания правил кодирования CRISP (Coding Rules In Sugared Prolog).

В ходе тестирования были проанализированы проекты Bacula, CLAM, Firebird, IT++, OGRE, Orca, Qt. Результаты тестирования показали очень высокую скорость работы инструмента на распространенных ПК (единицы секунд тестирования сотен тысяч строк кода) и хорошую повторимость результатов.

GlobalGCC это международный консорциум, созданный в рамках программы ITEA (Информационная технология для прогресса Европы), чтобы добавить в GCC функции:

  • Статическую проверку кода, направленную на выявление неявных ошибок (например, если функция f() вызывается из g(), которая в свою очередь вызывается из h(x) с параметром "x" больше нуля, тогда можно предположить о наличии в 345 строке файла foo.c возможности деления на ноль).
  • Проверку правил кодирования
  • Глобальную оптимизацию


Сообщает
Opennet.ru



Опубликовал admin
30 Май, Пятница 2008г.



Программирование для чайников.