Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

GNAT LLVM : un analyseur de code Ada pour LLVM
Le projet remplace DragonEgg, qui proposait d'utiliser GCC pour l'analyse du code et LLVM pour la génération des exécutables

Le , par dourouc05

101PARTAGES

18  0 
LLVM est, à la base, une infrastructure qui sert à faciliter la création de compilateurs. Le projet le plus connu est sûrement Clang, compilateur de langages de la famille C et C++ (Objective-C, extensions OpenMP, etc.). Flang a été récemment officialisé comme compilateur Fortran. Serait-ce bientôt le tour d'Ada ?

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.

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Yoratheon
Nouveau membre du Club https://www.developpez.com
Le 10/10/2019 à 15:49
Citation Envoyé par dourouc05 Voir le message
Le projet remplace DragonEgg, qui proposait d'utiliser GCC pour l'analyse du code et LLVM pour la génération des exécutables
Je ne pense pas que "remplacer" est le mot adapté ici. En réalité, l'idée d'utiliser DragonEgg à était étudier mais écarté, pour les raisons cité (vieux projet, et pour s'affranchir d'une couche supplémentaire avec GCC) CF le README.dragonegg.

On pourrait voir cela comme une autre solution permettant de générer du code. Ainsi, ils se retrouvent avec deux backends bien distincts, GCC et LLVM.

Et pour ceux qui se posent la question, cela ne change rien à l'offre GNAT Pro, qui restera basée sur GCC (cela à était annoncé à l'AdaCore tech day du 3 octobre à Paris).
0  0