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
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.
- orienté UNIX/linux
- gratuit et open source
- sans EDI, orienté makefile
- utilisable via wsl/msys/cygwin/mingw sur windows
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 .
- gratuit, proriétaire, version payante avec fonctionalités d’analyse et couverture du code.
- EDI intégré.
- taillé windows, utilisable via wine sur plateformes GNU.
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
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.
- gratuit
- open source
- multi plateforme, orienté mac
- sans EDI, orienté makefile
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.
- gratuit
- basé sur llvm
- oriente proceseur intel
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
- basé sur llvm
- gratuit
- propriétaire
Site web: https://www.amd.com/fr/developer/aocc.html 🌍⤴
Architecture ARM: Arm Compiler
Concerne notamment les apple silicon. Basé sur LLVM.
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
- orienté windows
- leger
- gratuit à utiliser, version payante avancée comme étant moins chere que d’autres compilateurs windows contemporains
- maintenu depuis le PC 386 vers 1996, jusqu’à windows vista
- coutait 10 dollars a la version 1, 25 dollars a la derniere version
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.
- http://www.nuceng.ca/download/download.htm 🌍⤴ description tierce du compilateur
- https://web.archive.org/web/19970525041331/http://www.ncf.carleton.ca/~bg283/ 🌍⤴ Version du site officiel vers 1996
- https://web.archive.org/web/20030621144311/http://c-compiler.com/ 🌍⤴ Version du site officiel vers 2003
- https://web.archive.org/web/20230608184316/http://c-compiler.com/ 🌍⤴ Dernière version archivée du site, en juin 2023