compiler

  • ХабрахабрPhoto of Проверка компилятора GCC 10 с помощью PVS-Studio

    Проверка компилятора GCC 10 с помощью PVS-Studio

    Компилятор GCC написан с обильным использованием макросов. Очередная проверка кода GCC с помощью PVS-Studio вновь подтверждает мнение нашей команды, что макросы – это плохо. В таком коде тяжело разбираться не только статическому анализатору, но и программисту. Конечно, разработчики GCC уже привыкли к проекту и хорошо разбираются в нём. Но со стороны очень сложно что-то понять. Собственно, из-за макросов и не…

    Подробнее »
  • ХабрахабрPhoto of Проверка кода компилятора Ark Compiler, недавно открытого компанией Huawei

    Проверка кода компилятора Ark Compiler, недавно открытого компанией Huawei

    Во время презентаций летом 2019 года Huawei анонсировала технологию Ark Compiler. По заверениям представителей компании, этот проект с открытым исходным кодом позволяет существенно повысить плавность и отзывчивость Android и сторонних приложений. Новый интересный открытый проект по традиции должен пройти проверку качества кода с помощью PVS-Studio. Введение Впервые компилятор Huawei Ark был представлен вместе с запуском смартфонов Huawei P30 и P30…

    Подробнее »
  • ХабрахабрPhoto of [Из песочницы] Процесс компиляции программ на C++

    [Из песочницы] Процесс компиляции программ на C++

    Цель данной статьи: Я не преследую цель рассказать обо всем подробно в деталях, а только дать общее видение. В данной статье я хочу рассказать о том, как происходит компиляция программ, написанных на языке C++, и описать каждый этап компиляции. Также данная статья — это необходимое введение перед следующей статьей про статические и динамические библиотеки, так как процесс компиляции крайне важен…

    Подробнее »
  • ХабрахабрPhoto of Находим баги в LLVM 8 с помощью анализатора PVS-Studio

    Находим баги в LLVM 8 с помощью анализатора PVS-Studio

    Прошло более двух лет с момента последней проверки кода проекта LLVM с помощью нашего анализатора PVS-Studio. Давайте убедимся, что анализатор PVS-Studio по-прежнему является лидирующим инструментом по выявлению ошибок и потенциальных уязвимостей. Для этого проверим и найдём новые ошибки в релизе LLVM 8.0.0. Статья, которая должна быть написана Если честно, мне не хотелось писать эту статью. Неинтересно писать про проект, который…

    Подробнее »
  • ХабрахабрPhoto of Проверяем исходный код Roslyn

    Проверяем исходный код Roslyn

    Время от времени мы возвращаемся к проектам, которые уже проверяли ранее с помощью PVS-Studio и писали про это статьи. Делать это интересно по двум причинам. Во-первых, чтобы понять, насколько лучше стал наш анализатор. Во-вторых, чтобы отследить, обратили ли авторы проекта внимание на нашу статью, а также на отчет об ошибках, который мы им обычно предоставляем. Конечно, ошибки могут быть исправлены…

    Подробнее »
  • СофтPhoto of Устройство компилятора Swift. Часть 4

    Устройство компилятора Swift. Часть 4

    Я покажу, как можно осуществить генерацию LLVM IR из AST и что выдаёт настоящий фронтенд. Это последняя часть моего обзора компилятора Swift. Если вы не читали предыдущие части, то переходите по ссылкам: Генератор LLVM IR преобразует SIL в промежуточное представление LLVM. Для фронтенда — это завершающий шаг. Оно передаётся в бекенд для дальнейшей оптимизации и генерации машинного кода. Пример реализации…

    Подробнее »
  • ХабрахабрPhoto of ld -z separate-code

    ld -z separate-code

    30 в декабре 2018 года. Речь в этой статье пойдёт о небольшой security-фиче, добавленной в GNU ld к релизу 2. На русском языке это улучшение упоминалось на opennet с такой аннотацией: режим "-z separate-code", повышающий защищённость исполняемых файлов ценой небольшого увеличения размера и потребления памяти Чтобы объяснить, о какой проблеме безопасности идёт речь и в чём состоит решение, начнём с…

    Подробнее »
  • ХабрахабрPhoto of Каково делать Kotlin: интервью с Андреем Бреславом

    Каково делать Kotlin: интервью с Андреем Бреславом

    Но остаётся куда менее освещённой другая сторона: а как вообще выглядит процесс разработки языка? Дефицита технических материалов о Kotlin нет, узнать о корутинах или nullability можно много где. Каковы задачи у «самого главного человека»? Как принимаются решения? Остаётся ли у него в жизни время на что-либо ещё? 3, мы расспросили «самого главного» Андрея Бреслава не про корутины, а про совсем…

    Подробнее »
  • ХабрахабрPhoto of JavaParser. Корёжим код легко и непринуждённо

    JavaParser. Корёжим код легко и непринуждённо

    В мире существует множество клёвых маленьких библиотек, которые как бы и не знаменитые, но очень полезные. Идея в том, чтобы потихоньку знакомить Хабр с такими вещами. Сегодня расскажу о JavaParser. JavaParser — это набор инструментов для парсинга, анализа, трансформации и генерации Java-кода. Иначе говоря, если нужно взять кусок джавакода и как-то его покорёжить подручными методами и без необходимости в особых…

    Подробнее »


Кнопка «Наверх»