cproc - ένας νέος συμπαγής μεταγλωττιστής για τη γλώσσα C

Ο Michael Forney, προγραμματιστής του σύνθετου διακομιστή swc που βασίζεται στο πρωτόκολλο Wayland, αναπτύσσει έναν νέο μεταγλωττιστή cproc που υποστηρίζει το πρότυπο C11 και ορισμένες επεκτάσεις GNU. Για τη δημιουργία βελτιστοποιημένων εκτελέσιμων αρχείων, ο μεταγλωττιστής χρησιμοποιεί το έργο QBE ως backend. Ο κώδικας του μεταγλωττιστή είναι γραμμένος σε C και διανέμεται υπό την ελεύθερη άδεια ISC.

Η ανάπτυξη δεν έχει ακόμη ολοκληρωθεί, αλλά στο τρέχον στάδιο έχει υλοποιηθεί η υποστήριξη για το μεγαλύτερο μέρος των προδιαγραφών C11. Μεταξύ των λειτουργιών που δεν υποστηρίζονται αυτήν τη στιγμή είναι πίνακες μεταβλητού μήκους, προεπεξεργαστής, δημιουργία εκτελέσιμων αρχείων PIE (κώδικας ανεξάρτητης θέσης) και κοινόχρηστων βιβλιοθηκών, ενσωματωμένος συναρμολογητής, ο τύπος "long double", ο _Thread_local specifier, πτητικές τύποι, γράμματα συμβολοσειρών με πρόθεμα (Λ"..." ).

Ταυτόχρονα, οι δυνατότητες του cproc είναι ήδη επαρκείς για την κατασκευή του, mcpp, gcc 4.7, binutils και άλλων βασικών εφαρμογών. Η βασική διαφορά από άλλους μεταγλωττιστές είναι η εστίαση στη δημιουργία μιας συμπαγούς και απλής υλοποίησης. Για παράδειγμα, το backend σάς επιτρέπει να δημιουργείτε κώδικα που δείχνει το 70% της απόδοσης των προηγμένων μεταγλωττιστών, αλλά η προτεινόμενη λειτουργικότητα είναι εντός του 10% των μεγάλων μεταγλωττιστών. Υποστηρίζει δημιουργία για αρχιτεκτονικές x86_64 και aarch64 σε πλατφόρμες Linux και FreeBSD με τις βιβλιοθήκες Glibc, bsd libc και Musl.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο