The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..." +/
Сообщение от Orduemail (ok), 15-Дек-17, 17:51 
Конкретно с этим случаем ведь не нужен никакой особый межмодульный анализ. Достаточно повесить атрибут на функцию. Это может сделать автор кода или статический анализатор. Причём последний может это делать даже не правкой сорцов, а правкой своей собственной базы тегов, которую можно хранить в формате типа расщиренного ctags/etags (единственное, что анализатор от этого станет двупроходным). Вероятно, можно и другие атрибуты хранить, типа non-null, для функции возвращающей гарантированно не нулевой указатель. Или что-нибудь о том, как функция обходится с переданными ей указателями -- может быть она на них free вызывает, или, скажем, сохраняет в какой-нибудь структуре данных со временем жизни большим, чем время жизни стекового фрейма этой функции. Или функция полагается на то, что переданные ей аргументы не нули. А может быть она функция хорошая, и пользуется указателями не создавая никаких экзистенциальных рисков.

То есть, таким образом, статический анализатор, де факто, расширит систему типов языка, привнесёт в неё то, что ему удобно, причём не вынося этими вопросами мозги клиенту, потому что тот не будет сталкиваться с этой расширенной системой типов, он будет иметь дело с варнингами анализатора, которые вылезут из нарушений правил скрытой от него системы типов. А прошаренный клиент может освоить эту скрытую систему типов, и начать расставлять атрибуты типов специально оформленными комментариями.

И тут ведь открываются любопытные перспективы. Начиная от того, что исследования того, как создать такую систему типов может быть полезным для развития разработчиков PVS-Studio, что само по себе даст конкуретное преимущество, и заканчивая тем, что если это исследование не сведётся к чтению уже существующих исследований возможностей типизации, но найдёт что-то своё, то эти находки можно оформить в виде статей, а через это, можно, например, кандидатскую защитить, PhD получить, или просто впихнуть упоминание PVS-Studio в computer science статью, которую будут читать все, кто в теме.

Я это не к тому излагаю, чтобы "научить как надо писать статические анализаторы" -- не, мне просто самому интересно, насколько точно моё видение перспектив отражает реальность.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..., opennews, 14-Дек-17, 13:42  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру