
GNAT est l'analyseur syntaxique de GCC pour le code Ada, mais il est codé de telle sorte que la dépendance à GCC est assez légère. Il a déjà été utilisé pour générer du bytecode Java (JGNAT) ou .Net (MGNAT), pour l'écriture de preuves Why3, etc. Cette fois-ci, il s'agit de lier GNAT à LLVM, un projet connu sous le nom de GNAT LLVM, sans aucune créativité. Cela permettrait d'utiliser toute l'infrastructure de LLVM avec du code Ada, notamment l'analyse statique du code ou la compilation à la volée (JIT). Le projet remplace DragonEgg, qui proposait d'utiliser GCC pour l'analyse du code et LLVM pour la génération des exécutables, mais ce projet est abandonné depuis 2014.
Techniquement, les développeurs de GNAT LLVM utilisent l'API C de LLVM aussi directement que possible (pas l'API C++, trop mouvante). Le code proprement dit est écrit en Ada et exploite LLVM 9.
Le code est d'ores et déjà disponible sur GitHub.
Source : AdaCore.
Vous avez lu gratuitement 704 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.