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

21 августа 2021 года

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

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

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

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «cproc — новый компактный компилятор для языка Си», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.