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

Комментарии[править]

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