Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    24 929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 24 929
    Points : 170 576
    Points
    170 576
    Par défaut GNAT LLVM : un analyseur de code Ada pour LLVM
    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.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2014
    Messages : 23
    Points : 31
    Points
    31
    Par défaut
    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).

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/06/2015, 12h45
  2. Réponses: 3
    Dernier message: 06/09/2005, 11h27
  3. Réponses: 2
    Dernier message: 08/04/2004, 12h11
  4. Analyseur de code (statistique)
    Par Boons dans le forum Choisir un environnement de développement
    Réponses: 9
    Dernier message: 13/08/2003, 13h22
  5. [VB6] Code source pour modifier MsgBox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/02/2003, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo