fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

8.8K
active users

#clangquery

0 posts0 participants0 posts today
Habr<p>Разрабатываем собственный анализатор C++ программы в виде плагина для Clang</p><p>Есть много проектов, целью которых является превратить С++ более "безопасный" язык программирования. Но внесение изменений в синтаксис языка обычно нарушает обратную совместимость со старым кодом, который был написан до этого. Недавно вышла новая версия библиотеки memsafe для языка С++, которая превращает его в Rust с помощью плагина Clang добавляет в С++ безопасное управление динамической памятью и контроль инвалидации ссылочных типов данных во время компиляции приложения. Но данная статья не о библиотеке, а об особенностях разработки анализатора программы на С++ в виде плагина для Clang. Можно считать, что это подведение итогов по результатам сравнения нескольких разных способов создания плагина для компилятора С++ , а так же очередной Хабрахак для хранения результатов экспериментов и публикации итоговых выводов, которые я решил сохранить не только для себя, но и в виде статьи на Хабре, что бы результатами моего труда могли воспользоваться и другие хорошие люди :-), которым так же может потребоваться погрузиться в дебри парсинга исходного текста программ.</p><p><a href="https://habr.com/ru/articles/900224/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/900224/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/clang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clang</span></a> <a href="https://zhub.link/tags/clangquery" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clangquery</span></a> <a href="https://zhub.link/tags/plugin" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>plugin</span></a> <a href="https://zhub.link/tags/memsafe" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>memsafe</span></a> <a href="https://zhub.link/tags/c" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>c</span></a>++ <a href="https://zhub.link/tags/attribute" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>attribute</span></a></p>
Habr<p>[Перевод] Анализ AST и рефакторинг кода в Clang</p><p>В продолжение темы кастомизации компилятора С++ публикую перевод еще одной интересной статьи от Eli Bendersky AST matchers and Clang refactoring tools . Инструментарий Clang вызывает большой интерес и внимание к разработке в последние годы. Наконец-то у нас есть удобный, точный, с открытым исходным кодом и хорошо поддерживаемый фреймворк для программного анализа и рефакторинга кода C++ и это я нахожу это очень захватывающим! Прекрасным результатом этого быстрого темпа разработки является то, что постоянно появляются новые API и инструменты. Например, некоторое время назад разработчики инструментария Clang выяснили, что людям, выполняющим обходы AST, приходится писать много повторяющегося кода, чтобы найти нужные им узлы AST, поэтому они придумали отличный новый API под названием AST matchers .</p><p><a href="https://habr.com/ru/articles/871296/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/871296/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/clang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clang</span></a> <a href="https://zhub.link/tags/llvm" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>llvm</span></a> <a href="https://zhub.link/tags/RefactoringTool" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RefactoringTool</span></a> <a href="https://zhub.link/tags/clangapplyreplacements" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clangapplyreplacements</span></a> <a href="https://zhub.link/tags/libTooling" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>libTooling</span></a> <a href="https://zhub.link/tags/ClangTool" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ClangTool</span></a> <a href="https://zhub.link/tags/clangquery" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clangquery</span></a></p>