cproc — новый компактный компилятор для языка Си

Майкл Форни (Michael Forney), разработчик композитного сервера swc на базе протокола Wayland, развивает новый компилятор cproc, поддерживающий стандарт C11 и некоторые расширения GNU. Для генерации оптимизированных исполняемых файлов в компиляторе в качестве бэкенда применяется проект QBE. Код компилятора написан на языке Си и распространяется под свободной лицензией ISC.

Разработка ещё не завершена, но на текущей стадии реализована поддержка большей части спецификации C11. Среди пока неподдерживаемых возможностей — массивы переменной длины, препроцессор, генерация исполняемых файлов PIE (position independent code) и разделяемых библиотек, inline-ассемблер, тип «long double», спецификатор _Thread_local, volatile-типы, строковые литералы с префиксом (L»…»).

При этом возможностей cproc уже достаточно для сборки самого себя, mcpp, gcc 4.7, binutils и других базовых приложений. Ключевым отличием от других компиляторов является ориентация на создание компактной и не усложнённой реализации. Например, бэкенд позволяет генерировать код, демонстрирующий 70% производительности от продвинутых компиляторов, но при этом предложенная функциональность укладывается в 10% от больших компиляторов. Поддерживается сборка для архитектур x86_64 и aarch64 на платформах Linux и FreeBSD с библиотеками Glibc, bsd libc и Musl.

Источник: opennet.ru

Добавить комментарий