Jump to content

Божья коровка (программное обеспечение)

Божья коровка
Стабильная версия
1.1.0 [1] / 25 февраля 2021 г .; 3 года назад ( 25.02.2021 )
Репозиторий
Написано в OCaml и Python
Тип Статический анализ программы
Лицензия лицензия GPLv2
Веб-сайт божья коровка .gitlabpages .инрия .fr /сайт /

Coccinelle ( по-итальянски « божьи коровки» ) — утилита с открытым исходным кодом для сопоставления и преобразования исходного кода программ, написанных на C. программирования языке

Первоначально Coccinelle использовался для помощи в развитии ядра Linux , обеспечивая поддержку изменений в интерфейсах прикладного программирования библиотеки (API), таких как переименование функции , добавление аргумента функции, значение которого каким-то образом зависит от контекста, и реорганизация структуры данных .

Его также можно использовать для поиска дефектных шаблонов программирования в коде (т. е. фрагментов кода, которые с высокой вероятностью являются ошибочными, например, возможное разыменование нулевого указателя) без их преобразования. Поэтому роль coccinelle близка к роли инструментов статического анализа . Примерами такого использования являются приложения инструментаherodotos , который отслеживает предупреждения, генерируемые coccinelle . [2] [3]

Поддержку Coccinelle обеспечивает компания IRILL . Финансирование разработки было предоставлено Национальным агентством исследований (Франция), Датским исследовательским советом по технологиям и производственным наукам и INRIA .

Исходный код Coccinelle лицензируется на условиях версии 2 Стандартной общественной лицензии GNU (GPL).

Язык семантических патчей

[ редактировать ]

Исходный код, который необходимо сопоставить или заменить, указывается с использованием синтаксиса «семантического исправления», основанного на синтаксисе исправления . [4] Шаблон языка семантических исправлений ( SmPL ) напоминает унифицированный diff с C-подобными объявлениями. [5] [6]

@@
expression lock, flags;
expression urb;
@@

 spin_lock_irqsave(lock, flags);
 <...
- usb_submit_urb(urb)
+ usb_submit_urb(urb, GFP_ATOMIC)
 ...>
 spin_unlock_irqrestore(lock, flags);

@@
expression urb;
@@

- usb_submit_urb(urb)
+ usb_submit_urb(urb, GFP_KERNEL)
  1. ^ «Coccinelle: инструмент сопоставления и преобразования программ для системного кода» . coccinelle.gitlabpages.inria.fr . Проверено 9 марта 2021 г.
  2. ^ Паликс, Николас; Ловалл, Джулия ; Мюллер, Жиль (2010). «Отслеживание шаблонов кода в нескольких версиях программного обеспечения с помощью Herodotos» (PDF) . Материалы 9-й Международной конференции по аспектно-ориентированной разработке программного обеспечения (PDF) . АКМ. стр. 169–180. дои : 10.1145/1739230.1739250 . ISBN  9781605589589 . S2CID   1082611 .
  3. ^ Николя Паликс. «Николас Паликс: Геродот» .
  4. ^ Падиоле, Йоанн; Ловалл, Джулия ; Мюллер, Жиль (2007). «Семантические исправления, документирование и автоматизация сопутствующих изменений в драйверах устройств Linux» (PDF) . coccinelle.gitlabpages.inria.fr . Проверено 29 августа 2020 г.
  5. ^ Валери Хенсон (20 января 2009 г.). «Семантическое исправление с помощью Coccinelle» . Еженедельные новости Linux . Проверено 25 апреля 2011 г.
  6. ^ Вольфрам Санг (30 марта 2010 г.). «Эволюционное развитие семантического патча с использованием Coccinelle» . Еженедельные новости Linux . Проверено 25 апреля 2011 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 419533fa411cffaf45df1cd3c2026365__1722349560
URL1:https://arc.ask3.ru/arc/aa/41/65/419533fa411cffaf45df1cd3c2026365.html
Заголовок, (Title) документа по адресу, URL1:
Coccinelle (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)