cproc - nowy kompaktowy kompilator dla języka C

Michael Forney, twórca serwera kompozytowego swc opartego na protokole Wayland, opracowuje nowy kompilator cproc, który obsługuje standard C11 i niektóre rozszerzenia GNU. Aby wygenerować zoptymalizowane pliki wykonywalne, kompilator wykorzystuje projekt QBE jako backend. Kod kompilatora jest napisany w języku C i jest rozpowszechniany na bezpłatnej licencji ISC.

Rozwój nie jest jeszcze zakończony, ale na obecnym etapie zaimplementowano obsługę większości specyfikacji C11. Do obecnie nieobsługiwanych funkcji należą tablice o zmiennej długości, preprocesor, generowanie plików wykonywalnych PIE (kod niezależny od pozycji) i bibliotek współdzielonych, wbudowany asembler, typ „long double”, specyfikator _Thread_local, typy lotne, literały łańcuchowe z przedrostkiem (L"..." ).

Jednocześnie możliwości cproc są już wystarczające do zbudowania samego siebie, mcpp, gcc 4.7, binutils i innych podstawowych aplikacji. Kluczową różnicą w stosunku do innych kompilatorów jest skupienie się na tworzeniu zwartej i nieskomplikowanej implementacji. Na przykład backend pozwala wygenerować kod, który demonstruje 70% wydajności zaawansowanych kompilatorów, ale proponowana funkcjonalność mieści się w granicach 10% dużych kompilatorów. Obsługuje budowanie dla architektur x86_64 i aarch64 na platformach Linux i FreeBSD z bibliotekami Glibc, bsd libc i Musl.

Źródło: opennet.ru

Dodaj komentarz