Compilateurs

Compilateurs multiarchitecture principaux

En 2024, il y a trois compilateurs d’intérêt principal. Il sont capables de cibler de multiples architectures.

GCC : Le GNU C compiler

https://gcc.gnu.org 🌍⤴

Peut être considéré comme le compilateur principal, voire canon, du langage C. Il sert à compiler les projets open-source du projet GNU, notamment le noyau Linux et de nombreux autres projets libres.

Il est utilisable sur windows via mingw , msys ou cygwin , il n’est pas réputé pour produire du code machine aussi efficace qu’un compilateur windows natif tel que MSVC, pas recommandé pour produire du code critique sur cette architecture.

MSVC : Le compilateur Microsoft officiel

https://visualstudio.microsoft.com/fr/vs/ 🌍⤴

Le compilateur qui fabrique des exécutables windows. Produit du code hautement optimisé pour ce système d’exploitation. N’implémente pas toute la syntaxe du c99 , notamment les VLA .

Il propose de nombreuses extensions non standard qui sont indispensables pour fabriquer un logiciel windows. Un logiciel orienté windows sera difficilement compilable sur une autre autre architecture, hormis via un emulateur comme wine

Clang : part du projet LLVM

https://clang.llvm.org 🌍⤴

Considère le C comme un dialecte du LLVM. Est utilisé par l’écosystème MacOS dont de nombreuses librairies utilisent des extensions propre à ce compilateur: pour travailler sur Mac il est donc indispensable.

Considère le C comme un précurseur du langage Swift. Origine des modificateurs de pointeur _Nullable , _Non_nullable, etc.

Compilateurs pour architecture

Ces compilateurs sont vendus par les fabricants de materiel pour produire du code machine qui profite pleinement des dernières instructions binaires (OP codes) implémentés. Le code produit exploite au maximum la puissance des processeurs récents d’une architecture donnée, mais il n’est pas rétrocompatible avec les anciennes versions de l’architecture, ni compatible avec les architectures concurrentes.

Architecture intel: le ICC

Basé sur LLVM et compile un dialecte du C, le SYCL* Produit du code qui exploite les capacités de vectorisation et de parallelisation des derniers processeurs intel. Bien que multiarchitectures, il produit du code aux performances sans equivalent sur les architectures Intel (x86, x64).

Il est l’origine des modificateurs near et far sur les pointeurs, repris par MSVC, aujourd’hui disparus.

Site web : https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html#gs.93vnlx 🌍⤴ Description commerciale : https://marketplace.visualstudio.com/items?itemName=intel-corporation.dpcpponline 🌍⤴ Depot : https://github.com/intel/llvm 🌍⤴

Architecture AMD: AOCC

Site web: https://www.amd.com/fr/developer/aocc.html 🌍⤴

Architecture ARM: Arm Compiler

Concerne notamment les apple silicon. Basé sur LLVM.

Site web : https://developer.arm.com/documentation/101458/2404/Get-started/Get-started-with-Arm-C-C---Compiler 🌍⤴

Compilateurs d’intérêt

Portable C compiler : PCC

Etait le compilateur de-facto du langage C avant GCC. Contrairement au compilateur écrit par Dennis Ritchie pour compiler UNIX sur un systeme PDP, le PCC avait une architecture plus modulaire moins liée au PDP, ce qui facilita le portage d’UNIX vers differentes architectures, et joua un rôle important dans le succès du C dans les années 70 et 80.

Turbo C compiler

Compilateur architecture 486 payant populaire durant la période MS Dos, coutant entre 300 et 800 dollars selon les fonctionnalités attendues.

Propose un EDI extrêmement avancé et sans égal à son époque.

Les raccourcis clavier qu’il utilise sont encore ajourd’hui utilisés dans de nombreux EDI.

Borland C compiler

Compilateur C payant populaire, qui a succédé à Turbo C. Payant et généralement supplanté par MSVC, il n’est plus en vente aujourd’hui.

Watcom C compiler

Compilateur de haute performance, relativement abordable, réputé pour produire du code machine à la performance sans égale dans les années 90. Populaire dans les jeux vidéo. Nombreuses extensions de syntaxe de ce compilateur font que pour compiler des jeux développés dans les années 90 et aujourd’hui tombés dans le domaine public ne peuvent être compilés qu’avec ce compilateur.

Miracle C compiler

Le « Miracle C compiler » fonctionne sous MS Windows (3.1, 95, 98, et NT) et compile pour MS DOS. Il est simple et facile à utiliser, conseillé pour les débutants. Sa version payante est beaucoup moins chère que d’autres compilateurs C contemporains.

Dans sa version gratuite une fenêtre demande d’activer une license à chaque compilation.

Il est fourni avec un EDI . Il pèse 250 Ko, ce qui en fait un outil de développement C léger.

Il est actif durant le période MS-Dos et les premières versions de Windows, jusque windows vista. Le site web a fermé en 2023.